PabloX - elektrotechnika

  • Zväčšiť veľkosť písma
  • Predvolená veľkosť písma
  • Zmenšiť veľkosť písma

Programovanie Arduina cez RS232

Tlačiť PDF
Užívateľské hodnotenie: / 5
SlabéDobré 
Potreboval som programovať Arduino cez klasický RS232 port z dôvodu potreby použitia prevodníka ETHERNET - RS232.
foto

Použil som konkrétne Moxa nPort 5150. Existuje aj možnosť priameho programovania cez Ethernet (Arduino OTA), tu ale nefunguje ladenie cez sériový port a dlhé oneskorenia programu robili viac problémov ako úžitku.

Na prevod úrovní RS232-TTL som použil klasické zapojenie s obvodom MAX232, ktorý upravuje signály Rx, Tx a DTR (reset procesora) na TTL úroveň. NIKDY nepripájajte Arduino priamo na RS232 port, došlo by k jeho zničeniu!

schema

Schéma zapojenia (kliknite pre zväčšenie). Kondenzátory C2-C5 sú podľa datasheetu obvodu MAX232, 1-10uF/25V.

foto
Dosku s MAX232 som použil z nejakého programátora.

Poznámky k autoresetu procesora:

1. keďže obvod MAX232 invertuje signály, nefungoval autoreset procesora cez 100nF kondenzátor zapojený medzi pin 9 obvodu MAX232 a RESET pin Arduina (klasické Arudino zapojenie s prevodníkom USB-UART). Na zahraničnom fóre som našiel riešenie - doplniť ešte 1k rezistor medzi RESET procesora a ZEM (kondenzátor nechať zapojený tiež). Toto ale fungovalo IBA pri doske s ATMEGA328 (Arduino NANO).

2. u dosky Arduino MEGA2560 vyššie uvedené riešenie nefungovalo. Bolo nutné doplniť invertor tvorený 1 hradlom obvodu 7404, ktoré je zapojené podľa schémy vyššie. Tu je tiež jedno úskalie - pri odpojenom programovacom konektore alebo zatvorenom porte treba rozpojiť prepojku RST EN, inak bude RESET trvalo v log 0 a procesor nepobeží. Pri ladení cez Arduino IDE si stačí nechať otvorený monitor sériového portu a po skončení ladenia rozpojiť prepojku.
Posledná úprava Pondelok, 12 December 2022 22:22  

Bannery

Štatistiky


TOPlist