PIC16F690: UART wake up // pull up rezistory

  1. Pokud máš standartní UART, pak R2 musí jít na VCC nebo stačí mít aktivovaný pull-up na RB6. V klidovém stavu by měla být UART linka v log. 1 a nemůžeš jí odporem stahovat na GND. Externí přerušení na probuzení procesoru musíš nastavit na sestupnou hranu. Kromě toho, pokud RB6 budeš mít nastavený jako vstupní, s aktivovaným pull-upem a použitý čistě jenom na probuzení procesoru, můžeš vynechat i ten R1 a piny propojit přímo. Musel bys s tím ale počítat i na druhý straně a před vysíláním nastavit data linku do log. 1, chvilku počkat (mezera 2-3 bity bohatě postačí), aby se mezitím probral i tenhle procesor a můžeš začít vysílat.

  2. Interní pull-upy se u tlačítek používají zcela běžně. U AVRka je interní pull-up na IO pinech cca 30k. U PICů to předpokládám bude hodnota podobná, ale to by se mělo dát vyčíst z datasheetu.

Teď jsem si teprve přečetl Tvojí poznámku, že nepotřebuješ data z UARTu. Pokud jenom potřebuješ monitorovat, jestli je nebo není aktivita na DATA lince UARTu, pak vůbec nepotřebuješ ten RB5 mít nakonfigurovaný jako UART RX a k němu z druhýho pinu pull-up. Stačí Ti jeden vstupní pin s aktivovaným pull-upem a musí umět vyvolat přerušení (ideálně) při sestupné hraně = START bit, neboli začátek přenosu. Pokud by neuměl probudit procesor na sestupnou hranu (což nepředpokládám), pak náběžná hrana může přijít s prvním datovým bitem, ale může přijít také až se STOP bitem, neboli až po odvysílání celého prvního bytu.