Hallo, ich habe mit einem alten USB-Handydatenkabel (PL2303) und einem PIC16F628, sowie ein 868MHz TX-Modul von ELV einen FS20 Sender gebaut. Das ganze funktioniert auch soweit, nur ich würde gerne aus Stromverbrauchsgründen den PIC in den Sleep-Mode legen, so dass er nur bei Bedarf (Daten an UART RX) aufwacht. Nun habe ich schon hier gelesen, dass die UART im async-Mode kein Wake-Up hat und man RX auf einen ext. Interrupt-Pin brücken soll. Ggf. muss man beim Start der Übertragung noch ein Dummy-Zeichen senden. Doch alles hat bei mir leider nicht funktioniert: RB0-Interrupt einstellen bsf STATUS, RP0 ; auf Bank 1 umschalten bcf OPTION_REG, INTEDG ; 1-0-Flanke an RB0 bcf STATUS, RP0 ; auf Bank 0 zurückschalten bcf INTCON, INTE ; RB0-interrupt aus [..] sleepmode BCF INTCON, INTF ; RB0 zuruecksetzen bsf INTCON, INTE ; RB0-interrupt an sleep nop nop nop bcf INTCON, INTE ; RB0-interrupt aus return Ich polle dabei PIR1,RCIF (UART-Daten angekommen) 255 mal und calle dann den sleepmode. RB0 habe ich mit RB1 (UART-RX) verbunden. RB0 ist natürlich auch als Eingang gestellt (BSF TRISB,0 auf Bank1). Alternativ habe ich auch mal eine Steuerleitung (RTS?) vom Handy-Datenkabel an RB0 gelegt (statt RB1). Diese Leitung geht auch auf 0V, wenn Daten gesendet werden, sonst bleibt sie auf 3,3V (nachgemessen!). Beides funktioniert nicht. Ich habe auch mal ein Dummy-Byte vor meinen eigentlichen Daten gesendet. Auch das klappt nicht! Muss man die UART vielleicht irgendwie komplett neu initialisieren, wenn man aus dem Sleep-Mode zurückkehrt? Hat sowas vielleicht schon mal jemand mit einem PIC16F628 gemacht, also UART-RX und Sleepmode? Danke im voraus, Kermit
Ich habe mal gerechnet und denke, dass es die Mühe einen funktionierenden Sleep-Mode zu integrieren nicht wert ist! Ich habe 10mA Betriebs Standbystrom des PIC16F628a angenommen (es sind sicher weniger - er wird mit 4MHz internal clock und 3,3V betrieben). Das macht im Jahr wohl nicht mal eine halbe kWh aus (=10Cent). Ich werde mir gleich mal ein USB-Zwischenkabel bauen, um den gesamten Strom zu messen (PIC + 868MHz-Sendemodul werden beide über den PL2303 mit 3,3V gespeist).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.