Jak obliczyć przepustowość CC1000 przy maksymalnej szybkości 76,8 kBaud?

CC1000 baud=bit/s ??





Poprzedni Następny
Wiadomość
Spis treści
From: "Krzysztof" <krysss1981_at_nospam_poczta.onet.pl>
Subject: CC1000 baud=bit/s ??
Date: Tue, 7 Feb 2006 11:05:08 +0100


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



Poprzedni Następny
Wiadomość
Spis treści
From: "PitLab" <pitlab_at_nospam_wp.pl>
Subject: Re: CC1000 baud=bit/s ??
Date: Tue, 7 Feb 2006 11:45:48 +0100


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ę.
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.


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).
Sygnał taktujący taktuje wysyłane bity bez względu czy to są bity danych czy
sterujące.


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.
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.

--
Piotrek.
http://www.pitlab.pl



Poprzedni Następny
Wiadomość
Spis treści
From: "Krzysztof" <krysss1981_at_nospam_poczta.onet.pl>
Subject: Re: CC1000 baud=bit/s ??
Date: Tue, 7 Feb 2006 12:13:02 +0100



To zależy od sposobu kodowania danych....
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.

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!






Poprzedni Następny
Wiadomość
Spis treści
From: "PitLab" <pitlab_at_nospam_wp.pl>
Subject: Re: CC1000 baud=bit/s ??
Date: Tue, 7 Feb 2006 12:31:16 +0100


To zależy od sposobu kodowania danych.... [..]
Kodując manchesterem uzyskujesz dobre pod kątem detekcji dane, ale
przepływność jest dwukrotnie mniejsza.
- 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.
Tak, manchester jest robiony wewnątrz scalaka, więc na zewnątrz wychodzi
dwukrotnie mniej.

Czyli pomiędzy poszczególnymi bitami będę
miał 1/38400 sekundy na wyrobienie się z detekcją preambuły itd. itp.
26us - mnóstwo czasu ;-)

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!
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ć.

--
Piotrek.
http://www.pitlab.pl



Poprzedni Następny
Wiadomość
Spis treści
From: "Krzysztof" <krysss1981_at_nospam_poczta.onet.pl>
Subject: Re: CC1000 baud=bit/s ??
Date: Tue, 7 Feb 2006 14:57:15 +0100



Użytkownik "PitLab" <pitlab_at_nospam_wp.pl> napisał w wiadomości
news:dsa0ea$3a4$1_at_nospam_node1.news.atman.pl...
SPI to chyba do interfejsu sterującego, danych tym nie wyślesz.

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



Poprzedni Następny
Wiadomość
Spis treści
From: "PitLab" <pitlab_at_nospam_wp.pl>
Subject: Re: CC1000 baud=bit/s ??
Date: Tue, 7 Feb 2006 16:04:05 +0100


SPI to chyba do interfejsu sterującego, danych tym nie wyślesz.
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.

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?

--
Piotrek.
http://www.pitlab.pl



Poprzedni Następny
Wiadomość
Spis treści
From: "Krzysztof" <krysss1981_at_nospam_poczta.onet.pl>
Subject: Re: CC1000 baud=bit/s ??
Date: Tue, 7 Feb 2006 16:16:48 +0100



Użytkownik "PitLab" <pitlab_at_nospam_wp.pl> napisał w wiadomości
news:dsactk$8e6$1_at_nospam_node1.news.atman.pl...
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?

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.



Poprzedni Następny
Wiadomość
Spis treści
From: "PitLab" <pitlab_at_nospam_wp.pl>
Subject: Re: CC1000 baud=bit/s ??
Date: Tue, 7 Feb 2006 16:34:11 +0100


Jeżeli tak, to problem polega na takim zaprogramowaniu SPI aby pracował
na
odpowiedniej prędkości. [...]
Hmmm źle się zorumieliśmy.
To CC1000 byłoby podczas transmisji przez SPI układem nadrzędnym !

OK masz rację.

--
Piotrek.
http://www.pitlab.pl



Poprzedni Następny
Wiadomość
Spis treści
From: Waldemar Krzok <waldemar.krzok_at_nospam_charite.de>
Subject: Re: CC1000 baud=bit/s ??
Date: Tue, 07 Feb 2006 11:47:29 +0100


Krzysztof wrote:
Witam!

W dokumentacji trasceiver'a CC1000 napisano, ze jego maksymalna "data rate"
wynosi 76,8 kBaud.
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