Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 12 gennaio 12, 13:14   #1 (permalink)  Top
User
 
L'avatar di faustog_2
 
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
faustog_2 non è collegato   Rispondi citando
Vecchio 12 gennaio 12, 13:44   #2 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.604
Invia un messaggio via MSN a ElNonino
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)
ElNonino non è collegato   Rispondi citando
Vecchio 12 gennaio 12, 13:50   #3 (permalink)  Top
User
 
L'avatar di faustog_2
 
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:
Originalmente inviato da ElNonino Visualizza messaggio
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.

faustog_2 non è collegato   Rispondi citando
Vecchio 12 gennaio 12, 15:35   #4 (permalink)  Top
User
 
L'avatar di faustog_2
 
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:
Originalmente inviato da ElNonino Visualizza messaggio
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.

faustog_2 non è collegato   Rispondi citando
Vecchio 12 gennaio 12, 16:30   #5 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.604
Invia un messaggio via MSN a ElNonino
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)
ElNonino non è collegato   Rispondi citando
Vecchio 12 gennaio 12, 16:39   #6 (permalink)  Top
User
 
L'avatar di faustog_2
 
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:
Originalmente inviato da ElNonino Visualizza messaggio
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.

faustog_2 non è collegato   Rispondi citando
Vecchio 12 gennaio 12, 23:50   #7 (permalink)  Top
User
 
L'avatar di faustog_2
 
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:
Originalmente inviato da ElNonino Visualizza messaggio
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.

faustog_2 non è collegato   Rispondi citando
Vecchio 13 gennaio 12, 00:33   #8 (permalink)  Top
User
 
L'avatar di faustog_2
 
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" e così provo pure in java e scopro che ok,

ok a dopo
fausto


Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
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
faustog_2 non è collegato   Rispondi citando
Vecchio 13 gennaio 12, 00:51   #9 (permalink)  Top
User
 
L'avatar di MSchiepp
 
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.
MSchiepp non è collegato   Rispondi citando
Vecchio 12 gennaio 12, 13:44   #10 (permalink)  Top
User
 
L'avatar di faustog_2
 
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:
Originalmente inviato da faustog_2 Visualizza messaggio
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
faustog_2 non è collegato   Rispondi citando
Rispondi

Bookmarks



Strumenti discussione
Visualizzazione

Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


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



Tutti gli orari sono GMT +2. Adesso sono le 00:31.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2026
www.baronerosso.it - www.toymagazine.it