Il pin RX del pic andrà collegato al pin TX del modulo bluetooth e viceversa.
Lista componenti:
1 PIC 16F628A
2 condensatori da 22pF
1 Quarzo 20MHZ
1 Res. 1/4W 220Ohm
1 Led
1 Modulo bluetooth seriale (tipo linvor, RN, ecc. ecc. configurato a 2400 baud)
Il firmware è stato sviluppato in PICBASIC con l'ambiente MICROCODE STUDIO.
Lato PC è stato utilizzato il Serial Communicator dell'ambiente di sviluppo.
Il pic è configurato per lavorare con oscillatore esterno a 20MHZ con MCLR disattivato.
Per utilizzare il quarzo esterno da 20mhz occorre comunicarlo al compilatore (DEFINE OSC 20); successivamente è necessario modificare il file 16F628A.INC nella cartella PBP commentando la riga seguente __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF con il punto e virgola ';' altrimenti in fase di linking viene segnalato l'errore "Overwriting previous address contents (2007)".
@ __config _HS_OSC & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _BODEN_ON & _LVP_OFF
DEFINE OSC 20
DEFINE HSER_RCSTA 90H
DEFINE HSER_TXSTA 20H
DEFINE HSER_BAUD 2400
A VAR BYTE
A=0
LED VAR PORTA.1
output Led
Main
high Led
pause 500
LOW Led
pause 500
HSEROUT ["Value ", DEC A, 13, 10]
A = A + 1
GOTO Main
Di seguito il circuito sperimentale funzionante e alimentato direttamente dal programmatore PICKIT3 via ICSP.
Il programma Serial Communicator connesso alla porta COM3 virtuale creata dall'accoppiamento bluetooth tra PC e scheda (LINVOR) in ricezione dei dati inviati dal PIC.
Il collegamento nel Serial Communicator è effettuato a 2400baud, 8 bit di dati, no parity, 1 stop bit.
Questa deve essere la stessa configurazione della porta COM3 (lato PC).
Per la trasmissione a 115200baud occorre impostare il modulo BT con il comando AT+BAUD8
e nel programma PICBASIC indicare:
...
DEFINE HSER_SPBRG 10 ; 115200 @ 20 Mhz
DEFINE HSER_RCSTA 90h ; Hser receive status init
DEFINE HSER_TXSTA 24h ; Hser transmit status init
DEFINE HSER_CLROERR 1 ; Hser clear overflow automatically
...
Per altre velocità di connessione in modalità asincrona (vedi valore indicato in HSER_SPBRG) fare riferimento alle tabelle del datasheet 16F628A a pagina 76.
Firmware: 16f628_hserout2400.hex , 16f628_hserout115200.hex