| |
| | #1 (permalink) Top |
| User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| ai ai ai
mi rispondo da solo, ... in giro c'è gente veramente più pazza! ecco www.pacca.it - Cavetto FBUS per cellulari Nokia questo tipo è riuscito a realizzare il sistema che stavo cercando di impiantare, devo ammettere con una idea semplice ma geniale, si è costruito con plexiglas un parallelepipedo a dimensione di batteria! Geniale !! semplicemente Geniale!! detto questo però mi sono reso conto che il nokia 1616 è inutilizzabile perchè nasconde i connettori sotto la sim, quindi va bene Nokia ma non il 1616. Altro problema, spazzolando il datasheet del 16F876 non trovo la velocità di 115,200bps ...che è la velocità usata da Nokia per l' F-BUS Embedtronics - Nokia F-Bus Protocol made simple Qualcuno ha qualcosa da dire in merito? oppure misteri della fede? a dopo |
| | |
| | #2 (permalink) Top |
| User |
Basta usare la formula appropiata per settare il registro del divisore SPBRG, avendo cura di settare anche il birt BRGH. la formula è: Baud Rate = FOSC/(16 (X + 1)) risolta per X: X=((FOSC/Baud Rate)/16) - 1 nel caso di FOSC = 16MHz e Baud rate = 115.200 avrai SPBRG = 8 ( errore di br accettabile, divisore teorico sarebbe 7,68) Se hai FOSC = 4 MHz non puoi usare i 115.200 Baud.
__________________ Peace & Love Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein) |
| | |
| | #3 (permalink) Top | |
| User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| !!!
si è vero c'è una formula, devo andarla a rivedere.. e applicarla, l'avevo rimossa, o meglio ricordavo erroneamente che SPBRG influiva in modo standard con le velocità espresse nella tabella, invece esso può generare dei valori di bps opportuni, comppresi ovviamente nel range descritto dalla tabella. ogni tanto un ripasso, non fa male! comunque pian piano cercherò di costruire quest soluzione che è veramente interessante, ma quante applicazioni si possono fare ? a dopo e grazie Citazione:
| |
| | |
| | #4 (permalink) Top | |
| User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| ok
.... sono andato a leggere il datasheet allora Fosc=16.000.000 baud Rate = 115.00 = _______________ 16( X +1) per cui 1 16 * X + 16 __________ =__________________ 115.200 16.000.000 16.000.000 __________ - 16 = 16 * X 115.200 16.000.000 _____________ - 16 115.200 HBRG X= ___________________ = 7.68 16 ma deve essere un numero intero quindi 8 però in realtà se facciamo gli stessi calcoli usando 4.000.000 e un baud rate di 9600 X = 25,04 che arrotondato con 25 rappresenta un dato quasi esatto, con una differenza meno di 0.06 in questo caso invece abbiamo uno scarto di 0.32 , ben più grande... forse e ripeto fors,e potrebbe essere meglio usare un 20 Mhz magari otteniamo un' arrotondamento meno aggressivo? faccio una prova... Citazione:
| |
| | |
| | #5 (permalink) Top |
| User |
Più è alta la frequenza del quarzo minore è l'errore percentuale del generatore di baud-rate. La massima precisione però non è strettamente necessaria, la USART hw dei PIC, se non ricordo male, fa 3 (5?) campionamenti per ogni bit quindi il rischio di perdita dati è decisamente ridotto. Come standard io tendo ad usare la massima frequenza di funzionamento dei PIC, usando oscillatori esterni ed il PLL interno, l'uso di un oscillatore esterno garantisce una migliore precisione di frequenza, anche con variazioni di temperatura, inoltre libera un piedino del micro che io in genere dedico per il debug.
__________________ Peace & Love Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein) |
| | |
| | #6 (permalink) Top | |
| User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| ok
ok allora vado a prendere adesso un quarzo da 20 Mhz poi faccio il calcolo per ottenere il HBRG corretto per avere i 115200 baud.. che dici.. ogni sera per un motivo o l'altro sto scendendo a catania centro... è un casino ogni volta! a dopo fausto Citazione:
| |
| | |
| | #7 (permalink) Top | |
| User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| Occhio
ho comprato due quarzi uno da 20 e l'altro da 16 Mhz, il risultato è che funzionano solo nelle velocità indicate nel datasheet, per cui la mia considerazione iniziale era corretta, per avere USaRT hardware da 115200 occorre passare al 18F2320 e quarzo da 40 Mhz a pagina 200 trovi la soluzione. quindi non mi resta che passare alla UART software se voglio rimanere con 16F876. Ho com test solo la TX.. perchè a me interessa in futuro inviare SMS.. quindi quei calcoli vanno bene ma solo nell'ambito delle velocità prestabilite. a dopo Citazione:
| |
| | |
| | #8 (permalink) Top | |
| User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| Funzionaa
allora ci siamo questo primo ste è superato, il pic 16F876 con quarzo da 16 Mhz trasmette ee riceve a 115200 quindi conpatibile con l' FBUS dei cellulari. ![]() ti chiedo scusa, , la mia "supposta" era errata, per scrupolo ho rifatto la prova ci siamo funziona con un applicazione in JAva che legge e scrive su seriale.. devo vedere forse nel'Hyper terminal avevo qualche impostazione errata. Adesso ho sonno vado a dormire.. il set delle variabili eccolo:MOVLW 8 MOVWF SPBRG MOLW b'00100100' MOVWF TXSTA MOVLW b'1001000' MOVWF RCSTA insomma nel registro TXSTA il bit BRGH=1 8 in SPBRG come da calcolo, daltronte 57600 x 2 = 115200 era quasi scontato che da 16 si passi a 8 !!! Ho già realizzato la sagoma in plexiglas per connettermi al cellulare, dovrei usare un alcatel.. ha i pinout fuori dalla sim.. per cui lunediì ci rimettero mani, girando per i negozi stasera ho notato che tutti i nuovi Nokia hanno i pin sotto la sim... insomma strateggico, per non farsi fregare.. ...bha , ...adesso mi riposo per qualche giorno. ti ringrazio, se non avessi avuto il tuo sprono mi sarei rassegnato, su quello che leggevo nel datasheet... invece un tarlo in testa mi diceva, "prova figliuolo, prova, chi sa se quel buonomo nel forum di barone rosso la racconta giusta... abbi fiducia figliuolo ..prova" ok a dopo fausto Citazione:
| |
| | |
| | #9 (permalink) Top |
| User Data registr.: 21-01-2004 Residenza: Milano
Messaggi: 989
|
Visto che hai i due quarzi, ti conviene usare quello da 20 Mhz, dato che con 20Mhz e 0x0A come divisore ottieni 113.636 con un errore pari a 1,37%, mentre con 16Mhz e 0x08 come divisore ottieni 111,111 con il 3.6% di errore. Michele
__________________ __________________________________________________ The worst day flying is better than the best day working. |
| | |
| | #10 (permalink) Top | |
| User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| uart da 115.200 come fare?
oppure andare a realizzare una UART software da 115.200 con quarzo da 4 Mhz qui c'è un esempio: il calcolo dovrebbe essere fatto come segue 1.000.000 / 115.200 = 8.6 uS quindi potremmo arrotondare con 9 uS per cui dobbiamo far passare tra un bit e l'altro 9 uS oppure se utilizziamo un quarzo da 20 Mhz 43,4 ovvero 43 uS secondo me è ideale questa soluzione che adopera il 20 Mhz cosa ne pensate? txbyte movwf temp movlw d'10' ; 1 start + 8 data + 1 stop movwf cnt bcf status,c ;start bit movf portb,w txloop andlw 0ff-(1<<seroutbit) skpc iorlw 1<<seroutbit movwf portb sec rrf temp ; carry shifted in as stop bit decfsz cnt goto txloop return Citazione:
| |
| | |
![]() |
| Bookmarks |
| Strumenti discussione | |
| Visualizzazione | |
| |
Discussioni simili | ||||
| Discussione | Autore discussione | Forum | Commenti | Ultimo Messaggio |
| Connessione tra due PC tramite modem GSM - HELP ! | cyborgmax | Software | 21 | 29 giugno 10 22:48 |
| Pic, mio caro Pic.... | fai4602 | Circuiti Elettronici | 7 | 24 novembre 03 19:34 |