Hlavní stránka‎ > ‎

USB/RF transciever 9,6 Kbit/s (USB)

Vyšlo v časopise AR Praktická Elektronika č.7/2008 
 
 
 
 
 
 
 
 
 
 
 
 
Jedná se o zařízení, které  vysílá nebo přijímá sériová data rychlostí 9600 b/s.

Tato data dále postupují přes USB port do počítače nebo z něj ve stavu v jakém byla vytvořena.

Aby zařízení mělo smysl, musejí být tyto transcievry nejméně dva nebo více.

 

                                                                              Obrázky, Schémata a DPS jsou ZDE.

 

Transciever se skládá ze dvou hlavních částí. První částí je UHF vícekanálový transciever (modul), který se stará o všechny potřebné procedury, vysílání a příjem dat, a druhou částí je obvod převádějící data z USB na UART v 5-ti voltové logice.

 

Popis Transcievru TDL2A

 

Jak jsem již zmínil jedná se o poloduplexní RF transciever,  tzn., že data jsou buď jen přijímána nebo vysílána.

S daty se pracuje v pásmu ISM 433MHz, modulací 16kbit/s, dvoustavovou FSK a výstupním výkonem 10mW.

TDL2A se postará o preambuli, synchronizaci, vyvážení jedniček a nul a zabezpečení přenosu. Uživatel dostává pouze platná data.

Pro vytvoření malé sítě jsou tyto moduly vybaveny osmi adresami a pěti oddělenými frekvenčními kanály.

Příjem dat je indikován LED diodou.

 

 

Zapojení pinů - TDL2A

Pin

Jméno

Funkce

18

GND

GND

17

Vcc

5V (stabilizované napájecí napětí)

16

ENABLE

Zapnutí modulu

15

SETUP

Nastavení modulu

14

TXD

Vysílaná data, 5V-ti voltová logika

13

NC

Nezapojen

12

RXD

Přijímaná data, 5V-ti voltová logika

11

STATUS

Indikace zaneprázdnění modulu

10

GND

GND

 

 

 

 

Příjem a vysílání dat TDL2A

 

Pro vysílání dat jednoduše data pošlete na vstup TXD.

Pro příjem dat dalším zařízením buď přijmeme data očekáváním, přerušením nebo kontrolou stavu vývodu STATUS.

Data jsou bufferována 32 byteovou pamětí.

Data jsou vysouvána v nastavení: COM: 9600 b/s UART, 8 bit data, bez parity, 1 start bit, 1 nebo 2 stopbity.

 

 

Nastavení adresy a frekvenčního kanálu TDL2A

 

Defaultní nastavení modulu z výroby je: ADDR0 a CHAN0.

Pro změnu adresy zapíšeme do modulu znaky „ADDR0“ až  ADDR7,<CR>.

Pro změnu kanálu zapíšeme do modulu znaky „CHAN0“ až „CHAN4“ <CR>.

 

Před zápisem příkazů adres nebo kanálu si musíme uvědomit, že se příkaz skládá kompletně ze znaků.

Dále je zapotřebí nastavit pin SETUP do log 0.

př.: ADDR0 vypadá takto: „65 68 68 82 48 “ DEC

Za každým zapsaným znakem musíme počkat cca 15ms.

Konec příkazu potvrdíme <CR> = 13 DEC.

Na správně zapsaný příkaz modul odpoví např.: „ADDR0.“.

Uložení nastavení modulu provedeme příkazem: „SETPROGRAM“ <CR> jinak po vypnutí napájení modul přejde do defaultního nastavení.

 

Příklad kompletního nastavení modulu:“ ADDR0 <CR> CHAN0 <CR> SETPROGRAM<CR>“. =

          65 68 68 82 48 13 67 72 65 78 48 13 83 69 84 80 82 79 71 82 65 77 13“ DEC

 

Na tento složený příkaz modul odpoví:“ ADDR0.CHAN0.SETPROGRAM~.”.

 

 

 

Frekvence kanálů TDL2A

 

433.925MHz – CHAN0 (defaultní kanál)

433.285MHz – CHAN1

433.605MHz – CHAN2

434.245MHz – CHAN3

434.565MHz – CHAN4

 

 

Anténa TDL2A

 

Nejsnazší anténou je kousek drátu o délce 16,4 cm od vývodu modulu pin č. 2.

 

 

FT232RL

 

V této aplikaci je obvod použit jako převodník USB/UART.

Pro jeho správnou funkci je zapotřebí nakopírovat potřebné ovladače VCP buď do složky spouštěného programu, nebo do složky Windows.

Tyto ovladače můžete stáhnout zde.  

Napájení

 

O napájení celého zařízení se  stará USB port, který  dodává 5V,  43mA při vysílání a 37mA při přijímání dat.

 

Oživení a konstrukce

Stavba transcievru v provedení USB vyžaduje pevnou ruku a výborný zrak, protože obvod FT232RL je použit v pouzdře SSOP 28.

Před osazením SMD součástek připájíme konektor USB, který je možné získat vypreparováním ze starého kabelu od PC myši.

Připojení konektoru je zřejmé z obr.
 
 
 
 
 
 

Na druhé straně DPS osadíme modul TDL2A a anténu.

Před prvním připojením výrobku k PC doporučuji nakopírovat potřebné ovladače a knihovny do již dříve popsaných umístění.

Po úspěšném odzkoušení můžeme zařízení zatavit do kousku termobužírky a nakonec vyříznout špičkou lámacího nože malý otvor pro SMD LED.

Rozměr DPS RF/ USB je 29 x 47mm.

Rozměr DPS RF/ RS232 je 32 x 65mm.

 

 

 

Jak to vlastně funguje

 

Data přicházející vzduchem nebo naopak jsou zpracována transcievrem TDL2A, který je předá převodníku USB/UART  FT232RL.

Dále data proudí do PC přes USB port. Obvod FT232RL je v počítači za pomoci ovladačů VCP přihlášen jako virtuální COM port.

Na tento virtuální COM se obracíme za pomoci knihovny PORT.DLL.    

Podrobnější popis knihoven a ovladačů VCP najdete na stránkách www.asix.cz nebo www.ftdichip.com

 Popis knihovny PORT.DLL najdete v knize „Využití rozhraní PC“.

 

 

Příklad části programu pro nastavení adresy a kanálu s uložením do EEPROM v TDL2A (Assembler- připojení k procesoru PIC)

 

;***************************************************************************

;                                                              RF MODEM SETINGS

;***************************************************************************

RF_M_S

                               bcf           RFM_Se                 //Nastavení pinu “SETUP“ obvodu TDL2A do log 0, nastavovací mód

                               call          Cek15m                  //Čekací smyčka                    

 

                               movlw     'C'

                               call          RS_TX                   //Vyslání znaku „C“ = 67 DEC po UART sběrnici (pin RXD)

                               call          Cek15m

                               movlw     'H'

                               call           RS_TX

                               call          Cek15m

                               movlw     'A'

                               call          RS_TX

                               call          Cek15m

                               movlw     'N'

                               call          RS_TX

                               call          Cek15m

 

                               movfw    CHA_RF_M          //Číslo kanálu (0 – 4)

                               call          RS_TX

                               call          Cek15m

 

                               movlw     13

                               call          RS_TX                   //Vyslání ukončovacího znaku  <CR> = 13 DEC

                               call          Cek15m

 

                               movlw     'A'

                               call           RS_TX

                               call          Cek15m

                               movlw     'D'

                               call           RS_TX

                               call          Cek15m

                               movlw     'D'

                               call           RS_TX

                               call          Cek15m

                               movlw     'R'

                               call          RS_TX

                               call          Cek15m

 

                               movfw    ADR_RF_M          //Číslo adresy (0 – 7)

                               call            RS_TX

                               call          Cek15m

 

                               movlw     13

                               call          RS_TX

                               call          Cek15m

 

                               movlw     'S'

                               call          RS_TX

                               call          Cek15m

                               movlw     'E'

                               call          RS_TX

                               call          Cek15m

                               movlw     'T'

                               call          RS_TX

                               call          Cek15m

                               movlw     'P'

                               call          RS_TX

                               call          Cek15m

                               movlw     'R'

                               call          RS_TX

                               call          Cek15m

                               movlw     'O'

                               call          RS_TX

                               call          Cek15m

                               movlw     'G'

                               call          RS_TX

                               call          Cek15m

                               movlw     'R'

                               call          RS_TX

                               call          Cek15m

                               movlw     'A'

                               call          RS_TX

                               call          Cek15m

                               movlw     'M'

                               call          RS_TX

                               call          Cek15m 

 

                               movlw     13

                               call          RS_TX                  

                               call          Cek15m

 

                               bsf           RFM_Se                 //Nastavení pinu “SETUP“ obvodu TDL2A do log 1, normální vysílací mód mód

                               Return

       

 

 

Příklad části programu pro nastavení adresy a kanálu s uložením do EEPROM v TDL2A (Delphi – připojeno k PC přes USB VCL nebo COM)

 

OPENCOM('COM1, 9800,N,8,1');                     //COM si musíme vybrat (COM1 – COMn)

 

REALTIME(true);                                                              

 

RTS(1);                                                                 //Nastavení pinu “SETUP“ obvodu TDL2A do log 0, nastavovací mód

SENDBYTE(Integer('A'));

DELAY(10);

znaky := ( Char(READBYTE));                                          //Odpověď modulu TDL2A na jeden znak příkazu

 

SENDBYTE(Integer('D'));

DELAY(10);

znaky := concat(znaky,(Char(READBYTE)));

 

SENDBYTE(Integer('D'));

DELAY(10);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('R'));

DELAY(10);

znaky := concat(znaky,( Char(READBYTE)));

 

 

SENDBYTE(Form2.ComboBox2.ItemIndex + 48);             //Číslo adresy (0-7)

DELAY(10);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(13);

DELAY(10);

znaky := concat(znaky,( Char(READBYTE)));

 

DELAY(10);

Form1.Memo2.Lines.Add( znaky);                      //Kompletní odpověď modulu TDL2A na příkaz

 

 

//******************************************

 

SENDBYTE(Integer('C'));

DELAY(50);

znaky := ( Char(READBYTE));

 

SENDBYTE(Integer('H'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('A'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('N'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

 

SENDBYTE(Form2.ComboBox1.ItemIndex + 48);             //Číslo kanálu (0-4)

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(13);

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

DELAY(10);

Form1.Memo2.Lines.Add( znaky);

 

 

 

//*****************************************

SENDBYTE(Integer('S'));

DELAY(50);

znaky := ( Char(READBYTE));

 

SENDBYTE(Integer('E'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('T'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('P'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

 

SENDBYTE(Integer('R'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('O'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('G'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('R'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('A'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(Integer('M'));

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

SENDBYTE(13);

DELAY(50);

znaky := concat(znaky,( Char(READBYTE)));

 

Form1.Memo2.Lines.Add( znaky);

//*****************************************

 REALTIME(false ) ;

RTS(0);                                                                 //Nastavení pinu “SETUP“ obvodu TDL2A do log 1, normální vysílací mód mód

 

Ostatní

 

Dále uvádím i alternativní zapojení s převodníkem Max 232 - TTL/RS232. Tato verze se připojuje jen do COM portu, vyžaduje vlastní napájení a vystačí si pouze s knihovnou PORT.DLL.

 

Seznam součástek pro USB/RF

 

U1 - TDL2A

U2 - FT232RL

D1 - SMD LED zelená

R1 - 300ohm

C1 a 3 – 100nF

C2 – 4,7 uF

USB konektor jsem vypreparoval ze starého kabelu od myši

 

Seznam součástek pro alter. RS232/RF

U1 – TDL2A

U0 – Max232

D1 – zelená LED 3mm

R1 – 300ohm

C1-4 – 1uF/50V

U2 – konektor D-SUB9

J1 - jack