CC1000 baud=bit/s ??

Feb 07, 2006 8 Replies

Witam!



W dokumentacji trasceiver'a CC1000 napisano, ze jego maksymalna "data rate" wynosi 76,8 kBaud. Czy kto¶ mo¿e mi powiedzieæ ile wynosi w takim razie jego przepustowo¶æ w bit/s ? Wed³ug mnie to 76800 bit/s ale mo¿liwe, ¿e siê mylê. Informacja ta potrzebna mi jest do obliczenia czêstotliwo¶ci sygna³u taktuj±cego DCLK, który zmienia siê wraz z ustawion± poprzez rejestry szybko¶ci± przesy³u danych (w kBodach).



Dziêki temu bêdê wiedzia³ ile instrukcji bêdê móg³ wykonaæ pomiêdzy ka¿dym przychodz±cym bitem. Jest mi to baaardzo potrzebne.



Z góry dziêkujê za odpowied¼ Podrawiam



To zale¿y od sposobu kodowania danych. Kodowanie jest potrzebne po to aby zapewniæ zrównowa¿on± liczbê zer i jedynek w strumieniu danych. Bez tego mog± byæ problemy w dekodowaniu. Gdyby¶ nie stosowa³ kodowania to rzeczywi¶cie osi±gniesz tak± prêdko¶æ, jednak moga byæ problemy z odbiorem gdy wy¶lesz wiele zer lub jedynej jedna po drugiej. Koduj±c manchesterem uzyskujesz dobre pod k±tem detekcji dane, ale przep³ywno¶æ jest dwukrotnie mniejsza. Przesy³aj±c dane w trybie UART dochodz± bity startu i stopu wiêc na 8 bitów uzytecznych danych dochodz± 2 bity steruj±ce. Jako¶æ danych jest kiepska, podobnie jak przy braku kodowania.

Sygna³ taktuj±cy taktuje wysy³ane bity bez wzglêdu czy to s± bity danych czy steruj±ce.

S± te¿ inne sposoby kodowania informacji zapewniaj±ce dobr± jako¶æ strumienia i maj±ce wiêksz± gêsto¶æ upakowania danych ni¿ manchester. W tej chwili nie pamiêtam szczegó³ów.

no to źle napisali. W bodach mierzy się prędkość krokową, a nie przepustowość, więc podstaw bps zamiast Baud i będzie pasowało.

Waldek

- Zgadzam siê! Zapomnia³em w³a¶nie dodaæ, ¿e koduje Manchester'em. Czyli je¶li ustawiam prêdko¶æ 76,8 kBaud to na DCLK bêdê mia³ sygna³ o czêstotliow¶ci 38,4 kbit/s. Czyli pomiêdzy poszczególnymi bitami bêdê mia³ 1/38400 sekundy na wyrobienie siê z detekcj± preambu³y itd. itp.

Swoj± drog±, mo¿e kto¶ u¿ywa³ w CC1000 komunikacjê poprzez SPI? Mówiê oczywi¶cie o interfejsie danych a nie steruj±cym. Wówczas mia³bym praktycznie 8 razy wiêcej czasu!

Tak, manchester jest robiony wewn±trz scalaka, wiêc na zewn±trz wychodzi dwukrotnie mniej.

26us - mnóstwo czasu ;-)

SPI to chyba do interfejsu steruj±cego, danych tym nie wy¶lesz. Je¿eli chcesz wykorzystaæ mechanizmy sprzêtowe to w kontrolerze sk³adaj manchester i wysy³aj sprzetowo w trybie UART. Obawiam siê jednak ¿e w ten sposób nie przyspieszysz. Jednak stosujac jakie¶ bardziej wyuzdane techniki kodowania strumiena danych mozna siê nad tym zastanowiæ.

U¿ytkownik "PitLab" snipped-for-privacy@wp.pl napisa³ w wiadomo¶ci news:dsa0ea$3a4$ snipped-for-privacy@node1.news.atman.pl...

Wy¶lê, wy¶lê! Nawet w nocie katalogowej uk³adu CC1000 jest o tym mowa. Problem polega tylko na zsynchronizowaniu bajtowym odbieranych danych. Niby wiem mniej wiêcej jak to zrobiæ ale szukam kogo¶, kto zna dok³adniej algorytm tej synchronizacji.

Pozdrawiam

Je¿eli tak, to problem polega na takim zaprogramowaniu SPI aby pracowa³ na odpowiedniej prêdko¶ci. W swoim kontrolerze prêdko¶æ SPI ustalam przez podzielnik zegara g³ównego (2,4,8,16). Trzeba by ustaliæ zegar na ok. 0,6 MHz co nie ma sensu. Mo¿e inne kontrolery maj± wieksze mo¿liwo¶ci konfiguracji?

U¿ytkownik "PitLab" snipped-for-privacy@wp.pl napisa³ w wiadomo¶ci news:dsactk$8e6$ snipped-for-privacy@node1.news.atman.pl...

Hmmm ¼le siê zorumieli¶my. To CC1000 by³oby podczas transmisji przez SPI uk³adem nadrzêdnym ! Z tego wzglêdu odpada ustalanie prêdko¶ci data rate SPI. Dane synchronizowane by³yby sygna³em podawanym na SCK mikrokontrolera (sygna³ DIO z CC1000).

W nocie katalogowej CC1000 jest to dok³adniej opisane.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required