TX pin can be set manually, BUT THIS IS ONLY MASKING THE PROBLEM, NOT A REAL SOLUTION.
See Richard's post #33 and onwards for details.
------------------------------------------------------Code:UsartTX var LatC.6 UsartTX = 1 TXSTA.5 = 0
16F1937
Gutted my program to try to figure this out.
Code:#CONFIG __CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF __CONFIG _CONFIG2, _WRT_OFF & _VCAPEN_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_LO & _LVP_OFF #ENDCONFIG DEFINE OSC 32 SPLLEN CON %1 ' PLL enable IRCF CON %1110 ' to enable 8 MHz SCS CON %00 ' system clock determined by FOSC OSCCON = (SPLLEN << 7) | (IRCF << 3) | SCS DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1 Define HSER_BAUD 115200 DEFINE HSER_CLROERR 1 ' Clear overflow automatically DEFINE HSER_SPBRGH 0 DEFINE HSER_SPBRG 68 BAUDCON.3 = 1 ' Enable 16 bit baudrate generator ANSELA = %00000000 ANSELB = %00000000 'ANSELC = %00000000 ' ...not available ANSELD = %00000000 ANSELE = %00000000 TRISA = %00000000 TRISB = %00000000 TRISC = %00000000 TRISD = %00000000 TRISE = %00000000 BlinkLED VAR LatB.5 Pause 500 hserout ["Hello world", 10] TXSTA.5 = 1 ' TXEN: Transmit Enable bit hserout ["TEST", 10] while TXSTA.1 = 0 ' Check TRMT: Transmit Shift Register Status bit wend TXSTA.5 = 0 ' <----- Causes Framing error after last byte ! Mainloop: BlinkLED = 1 BlinkLED = 0 goto mainloop end
Checking on Logic Probe, the line remains LOW after the last HSEROUT (4K7 pull-up on pin).
Yet processing is normal if I comment TXSTA.5 = 0.





Bookmarks