Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

RC5 i zmniejszenie nośnej

WiesioShow
-
-
Posty:25
Rejestracja:18 maja 2007, o 16:26
Lokalizacja:Koszalin
RC5 i zmniejszenie nośnej

Postautor: WiesioShow » 31 sty 2008, o 14:08

Chciałbym przesłać kod rc5 drogą radiową i posiadam odpowiednie moduły nadajnika i odbiornika niestety maksymalna prędkość transmisji tych urządzeń to około 2 kb/s, zaś nośna RC5 to ponad 30 kHz. Ma ktoś pomysł jak zmniejszyć nośną RC5 ?

szymel
-
-
Posty:212
Rejestracja:16 sty 2005, o 16:42
Lokalizacja:Włocławek

Postautor: szymel » 31 sty 2008, o 18:39

A po co Ci nośna z RC5, przecież masz własną - nadajnik :?:
Z RC5 wykorzystaj tylko sposób kodowania bitów , czyli kod Manchaster. Niech 1T będzie równe np. 1ms , a da Ci to 500bps.

Piotrek

WiesioShow
-
-
Posty:25
Rejestracja:18 maja 2007, o 16:26
Lokalizacja:Koszalin

Postautor: WiesioShow » 31 sty 2008, o 20:44

Chętnie bym użył RC5 bo by mi znacznie uprościł kod, procedurki wszak są. A robiąc od podstaw Manchester troszkę dużo by mi to zajęło, no chyba że już ktoś coś takiego pisał. Pewnie poza samą reprezentacją bitów, to by się jeszcze przydały: preambuła, adres i dane (a to właśnie zapewnia RC5).

WiesioShow
-
-
Posty:25
Rejestracja:18 maja 2007, o 16:26
Lokalizacja:Koszalin

Postautor: WiesioShow » 2 lut 2008, o 17:01

A może ktoś stosował jakiś protokół do transmisji radiowej na modułach soytera, i ma jakiś kod w bascomie.

WiesioShow
-
-
Posty:25
Rejestracja:18 maja 2007, o 16:26
Lokalizacja:Koszalin

Postautor: WiesioShow » 4 lut 2008, o 19:35

Przerobiłem troszkę kod generujący rc5, który znalazłem na internecie (w zasadzie pozbyłem się tylko nośnej 36 kHz) i otrzymałem coś takiego:

Kod: Zaznacz cały

$regfile = "attiny2313.dat" $crystal = 8000000 Dim Rc5_address As Byte Dim Rc5_command As Byte Dim Rc5_bit_nr As Byte Dim Toggle_bit As Boolean Config Pind.1 = Output Declare Sub Logic_0 Declare Sub Logic_1 Toggle_bit = 0 Rc5_address = 0 Rc5_command = 11 '------------------------------------------------------------------------------- Do Logic_1 'first start bit Logic_1 'second start bit If Toggle_bit = 0 Then Logic_0 Else Logic_1 'toggle bit For Rc5_bit_nr = 4 To 0 Step -1 '5 bit address, msb first If Rc5_address.rc5_bit_nr = 0 Then Logic_0 Else Logic_1 Next For Rc5_bit_nr = 5 To 0 Step -1 '6 bit command, msb first If Rc5_command.rc5_bit_nr = 0 Then Logic_0 Else Logic_1 Next 'frame gap delay Portd.1 = 0 Waitms 100 Loop End '------------------------------------------------------------------------------- Sub Logic_0 Portd.1 = 1 Waitus 883 Portd.1 = 0 Waitus 884 End Sub Sub Logic_1 Portd.1 = 0 Waitus 883 Portd.1 = 1 Waitus 884 End Sub
Sygnał na oscyloskopie niby wygląda tak jak ma wyglądać, jednak teraz mam problem z jego odkodowaniem po stronie odbiorczej. Komenda getrc5 pokazuje, że nadano adres 255 i komendę 127 niezależnie od tego co faktycznie nadano. Nie jest to wina transmisji radiowej, gdyż próbowałem również bezpośrednio połączyć oba mikrokontrolery i wystąpiła ta sama reakcja. Wie ktoś może, gdzie leży błąd ?

WiesioShow
-
-
Posty:25
Rejestracja:18 maja 2007, o 16:26
Lokalizacja:Koszalin

Postautor: WiesioShow » 19 lut 2008, o 23:18

Oki już wszytko działa - okazało sie ze negator na tranzystorku po stronie odbiorczej pomógł.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 37 gości