Arduino: Moduli za serijsku komunikaciju Ne možemo se oteti utisku da smo napravili veliki propust što u okviru SK Labsa jedan od prvih tekstova Arduino serijala nismo posvetili modulima za serijsku komunikaciju između PC računara i hardvera koji podržava taj standard prenosa podataka. Uređaji tog tipa su veoma često u upotrebi sa platformom Arduino i sličnim hardverom, ali se u njihovoj primeni često pojavljuju problemi i nije lako pronaći kvalitetne savete na tu temu. Situaciju donekle ispravljamo sa ovim tekstom. Serijski interfejs je najstarija vrsta hardverskog protokola koja je ostala u upotrebi do današnjih dana. Prvi oblici ovog standarda nastali su početkom davnih šezdesetih godina prošlog veka i imali su široku primenu na polju povezivanja periferijskih uređaja, kao što su računarski terminali, teleprinteri, štampači, a nešto kasnije su na red došli i modemi. Najraširenija verzija standarda nosi oznaku RS-232C i definisana je pre skoro pedeset godina, tačnije 1969. Na početku su se najčešće koristili D-Sub (D-subminiature, u obliku slova „D”) konektori sa 25 iglica (DB-25), a oni su posle zamenjeni konektorima sa devet iglica, čija je oznaka DE-9 (mada se često može videti i netačni naziv DB-9), koji nisu imali neke manje korišćene signale originalnog standarda. Ova vrsta portova je sve do pre sedam, osam godina bila čest gost na matičnim pločama personalnih računara, ali se sada viđaju veoma retko, pošto se serijska konekcija ostvaruje emulacijom virtuelnog COM porta preko USB interfejsa.
Tehnološki napredak je učinio da brzine koje nudi klasični serijski interfejs postanu neupotrebljive na PC računarima, ali su i dalje ostale odličan izbor za komunikaciju sa uređajima koji ne zahtevaju velike obime podataka. Zato je serijski prenos i dalje dobro zastupljen na platformama koje za svoju osnovu koriste mikrokontrolere. Standard RS-232 (CCITT V.24) propisuje da je maksimalna brzina prenosa 115200 boda (baud, Bd), dok maksimalno rastojanje iznosi 15 metara, ali sa mnogo manjim brzinama. To se odnosi na kablove kapacitivnosti 2500 pikofarada, dok upotrebom UTP kabla 5e kategorije kapacitivnosti 55 pikofarada možemo dostići daljine od preko 60 metara.
Napomenućemo kako postoje dva tipa serijskih uređaja, poznata kao DTE (Data Terminal Equipment) i DCE (Data Communication Equipment, Data Circuit Terminating Equipment). Ukoliko pin 2 ima funkciju prijema, a pin 3 slanja, u pitanju je DTE, dok se u obrnutom slučaju radi o DCE-u. Najpoznatiji uređaji DCE varijante su modemi, dok DTE obuhvata štampače, terminale i serijske portove PC računara.
U najvećem broju slučajeva, za povezivanje sa Arduinom i sličnim uređajima dovoljno je koristiti samo dve linije za podatke i liniju za uzemljenje, kao što je i prikazano na ilustraciji. Moduli Integrisana kola koja omogućavaju serijsku komunikaciju nazivaju se UART (Universal Asynchronous Receiver-Transmitter), pa se i adapteri o kojima govorimo u ovom tekstu često nazivaju USB to UART interfejsi. Na tržištu postoji nekoliko modela UART čipova koji su vrlo česti na modulima za serijsku komunikaciju i o njima ćemo ovde pisati malo opširnije. Treba odmah pomenuti da su problemi u radu sa najjeftinijim vrstama adaptera skoro neizbežni. S obzirom na to da se dobar deo UART čipova na Dalekom istoku izrađuje bez legalne licence, proizvođači pokušavaju da se zaštite izbacivanjem novih verzija drajvera koji ne funkcionišu na kopijama ili prestaju sa podrškom za krivotvorene čipove i počinju da proizvode nove modele, tako da izostaje podrška za novije operativne sistema. Na korisnicima ostaje izbor da li da plate dosta novca za uređaj koji im neće praviti nikakve glavobolje ili da za bagatelnu sumu pazare nešto od čega će osedeti. WCH CH340G Ovaj UART je poznat po tome što ga praktično svi najjeftiniji klonovi Arduina Uno R3 imaju na sebi umesto čipa Atmega16U2, a to omogućava spuštanje troškova proizvodnje za više od jednog dolara (cena čipa je oko 30 američkih centi), što ugrubo iznosi trećinu cene modela sa istoka. Za razliku od Atmega16U2, koji je punokrvni mikrokontroler sa 16 kilobajta fleš skladišta i 512 bajtova SRAM-a, CH340G sadrži samo logiku za obavljanje poslova karakterističnih za UART čipove. U radu sa naponom od pet volti troši 12-30 miliampera struje, dok u stanju mirovanja ta vrednost iznosi 150-200 mikroampera. Pored napona od pet volti, čip može da radi i sa naponom od 3,3 volta i tada je potrošnja struje znatno manja. Dolazi u SO-16 kućištu.Kao što vidimo na ilustraciji, projektovanje uređaja sa ovim čipom uopšte nije složen posao. Za serijsku komunikaciju koristimo pinove 1 (GND),2 (RxD) i 3 (TxD), dok se za povezivanje sa USB magistralom koriste pinovi 5 i 6. Skraćenice XI i XO predstavljaju ulazno i izlazno mesto za povezivanje kristal rezonatora od 12 megaherca. Signali sa znakom „#” na kraju imaju funkciju kontrole toka komunikacije. Nakon priključivanja adaptera na USB port računara, uređaj neće biti prepoznat, pošto Windows nema drajvere za njega. Taj problem se rešava preuzimanjem fajla CH341SER.EXE sa sajta proizvođača goo.gl/wPtPEv. Reč je o drajverima za nešto napredniju seriju UART čipova, ali oni ovde rade naš posao. U slučaju da drajver nije moguće instalirati preko preuzetog fajla, biće potrebno raspakovati ga nekim od arhivatora koji to podržavaju (recimo, 7z ili WinRAR), a zatim preko Device Managera izabrati neprepoznati uređaj, pokrenuti ručno ažuriranje drajvera i izabrati lokaciju raspakovane datoteke CH341SER.EXE. Posle toga možemo dobiti upozorenje da Windows ne može proveriti izdavača drajvera i tom prilikom biramo opciju da drajver ipak želimo instalirati. Generalno govoreći, CH340G UART nije toliko problematičan na Windows računarima kao neki drugi modeli, ali ni sa njim nisu isključene manje poteškoće prilikom postavljanja drajvera. Uz modul standardno dolazi džamper za određivanje napona. Dobra je ideja prilikom kupovine izabrati modele sa DTR pinom, preko kojeg možemo resetovati uređaj. Sa cenom od 75 američkih centi, ovi moduli predstavljaju solidan izbor.CP2102 Čip CP2102 američke kompanije Silicon Labs je stari poznanik svih onih koji se po prirodi posla oslanjaju na upotrebu serijskog interfejsa. Reč je o UART čipu, koji se više ne proizvodi, a kao njegova zamena su stigli modeli sa oznakom CP2102N i CP2104. Podržava rad sa naponima od pet i 3,3 volta, a regulator koji kontroliše napajanje je sastavni deo integrisanog kola. Unutar malenog čipa našlo se i mesto za kvarcni oscilator sa taktom od 48 megaherca, što maksimalno redukuje broj komponenti potrebnih za dizajniranje interfejsa. Integralno kolo sadrži jedan kilobajt EEPROM memorije, u koju je moguće zapisati podatke o proizvođaču, serijski broj i naziv proizvoda, datum proizvodnje i praktično sve ostalo što nekome može pasti na pamet. Potrošnja struje tokom rada iznosi 22-25 miliampera, dok je u režimu suspenzije ta vrednost 80-100 mikroampera. Za razliku od prethodno opisanog modela koji podržava brzine prenosa do dva miliona boda, CP2102 je duplo sporiji i omogućuje prenos u opsegu od 300 do jedan megabod. Ukratko, bodi su jedinice kojima se izražava broj prenesenih simbola u jedinici vremena i u većini slučajeva nisu isto što i jedinica bit/s. Ukoliko brzina prenosa iznosi npr. 1200 boda i pri tome je svaki simbol predstavljen sa dva bita, to je ekvivalentno brzini od 2400 bitova u sekundi. U slučaju da se za reprezentaciju simbola koristi samo jedan bit, jedinica bod/s jeste jednaka jedinici bit/s.Integrisano kolo ima ulazni bafer veličine 576 bajtova, dok je veličina izlaznog bafera 640 bajtova. Čip dolazi u QFN-28 pakovanju dimenzija 5x5 milimetara. Upravo ovaj poslednji podatak predstavlja problem za ugradnju pomenutih čipova na štampanu pločicu u okviru kućnih hardverskih projekata. Površinsko lemljenje integrisanih kola pomenutog formata nije nemoguće, ali zahteva dosta veštine.Zanimljiva je i mogućnost da uz pomoć programa koji se naziva CustomUSBDriverWizard izvršimo prilagođavanje postojećih drajvera za svoje potrebe. Na jednostavan način je moguće izmeniti VID i PID vrednosti, koje se koriste za identifikaciju hardvera, kao i ostale parametre koji, iako koriste postojeći drajver, izgledaju kao da pripadaju nekom novom uređaju. Ni u ovom slučaju Windows neće automatski pronaći drajvere za naš modul, ali se taj problem lako rešava preuzimanjem aktuelnih drajvera sa sajta proizvođača.Cene ovih adaptera su za nekih 40-50% veiše u odnosu na model CH340G. S obzirom na to da praktično ne postoje problemi u vezi sa drajverom i da najveći broj modela dolazi sa podrškom za DTR signal, ta razlika u ceni je definitivno opravdana. PL-2303 Razne varijante UART-a tajvanske kompanije Prolific se nalaze na tržištu još od početaka trećeg milenijuma i nisu nepoznanica za ljude koji se bave elektronikom. Reč je o rasprostranjenom integralnom kolu koje karakteriše niska cena, ali i to da često zadaje dosta glavobolja onima koji nisu upoznati sa njegovim problemima i njihovim rešenjima. Iako postoji veći broj varijanti ovog čipa (X, HX, XA, SA, RA, EA, TA, TB), najjeftiniji serijski moduli kao po pravilu dolaze u varijanti HX. Da bi se stvar dodatno zakomplikovala, postoje četiri revizije integralnog kola sa oznakama A, B, C i D.Revizije A i B zahtevaju eksterni oscilator od 12 megaherca, dok je kod preostala dva modela on ugrađen u integralno kolo (C 48 megaherca i D 96 megaherca). Kod varijanti B, C i D u čipu se nalazi OTPROM (One-Time Programming ROM) skladište, u koje je uz pomoć posebnog softvera moguće jednokratno upisati željene podatke, dok kod modela revizije A za tu namenu postoje dva pina koja se mogu povezati sa eksternim IIC EEPROM skladištem. Referentni nivo logičke jedinice se kod svih verzija određuje dovođenjem napona na pin VDD_232. Izlaz pina 17 ima funkciju napajanja za USB primopredajnik, dok se povezivanje sa USB magistralom postiže preko pinova 15 (D+) i 16 (D-).Signali koji završavaju sa „_N” su aktivni kada je na njima napon logičke nule. Modeli A i C imaju po dva, a B i D po četiri GPIO porta, ali je u ovom slučaju naziv izabran pretenciozno pošto su funkcije tih pinova daleko prostije od funkcija GPIO portova mikrokontrolera. Ovaj UART standardno ima dva FIFO bafera od po 256 bajtova, ali postoji i mogućnost da programskim putem izlazni bafer smanjimo na 128 bajtova i istovremeno uveličamo izlazni bafer do 384 bajta. Maksimalna brzina prenosa kod revizije A ograničena je drajverom na 128000 boda. Srednja potrošnja čipa u aktivnom stanju iznosi 20 miliampera, dok je u režimu očekivanja 500 mikroampera.Proizvođač je još od 2012. godine prekinuo proizvodnju čipova serije X i HX revizije A, a oni se (pogađate) nalaze u najvećem broju najjeftinijih modula na tržištu. Da bi zagorčali život falsifikatorima (a bogami i neopreznim kupcima), u novijim verzijama drajvera izostaje podrška za ove modele. Poslednji drajver koji omogućava uspešan rad sa Windowsom 10 x64 (pa i ostalim Majkrosoftovim 64-bitnim operativnim sistemima) nosi oznaku 3.4.25.218 od davnog 7. jula 2011. godine. Na internetu je potrebno pronaći datoteku PL2303_Prolific_DriverInstaller_v1.5.0.exe i nakon njenog pokretanja upotrebiti opciju za udaljavanje prethodnih verzija drajvera (ukoliko su oni postojali). Nakon toga je potrebno ponoviti proceduru i završiti je sa instalacijom drajvera. Tu nije kraj problemima, pošto postoji velika mogućnost da prilikom apgrejda Windowsa 10 dođe do „sletanja” drajvera i ponovnog pojavljivanja greške „Kod 10”. Za povratak na prethodno stanje potrebno je odraditi proceduru koju preporučuje Majkrosoft i nalazi se na linku goo.gl/eNCBxt. PL-2303 dolazi u SSOP-28 i QFN-32 pakovanjima, s tim da je prvo mnogo zastupljenije.Ovaj UART se na tržištu pojavljuje u mnoštvu različitih vidova. Osim standardnih modula koji se proizvode u obliku omanje štampane pločice (više modaliteta), vrlo često se mogu pronaći i u obliku kablova koji se priključuju na USB port, dok sa druge strane imaju četiri tzv. Dupont konektora ženskog tipa, što može pokazati kao vrlo praktično u pojedinim situacijama. Isto tako je zanimljiva i varijanta kabla koji na drugom kraju ima klasični RS-232 DE-9 konektor, o kojem smo govorili na početku teksta.Treba da napomenemo da je taj konektor najčešće muškog tipa, pa je uz njega često potrebno koristiti takozvani konektor za promenu pola. Cene ovih uređaja se kreću od 55 američkih centi za verzije na štampanoj pločici, nešto manje od jednog dolara za verziju sa Dupont konektorima i malo preko dva dolara za verziju sa devetopinskim konektorom.Dvostruko su skuplje varijante sa čipom PL2303TA, koji je došao da zameni čipove revizije A, ali sa njima bi (ukoliko nije u pitanju trik lukavih prodavaca) trebalo da bude manje problema sa drajverima. FT232R Kompanija FTDI je specijalizovana u proizvodnji čipova za serijsku komunikaciju. Njeno sedište je u Škotskoj i visoko se kotira među profesionalcima, a o kvalitetu njihovih proizvoda dovoljno govori činjenica da je IBM njihove čipove svojevremeno ugrađivao u svoje računare.Moduli zasnovani na čipu FT232 sa sobom najčešće donose neuobičajeno veliki broj izvoda na štampanoj pločici, ali su obično samo na njih šest zalemljeni konektori. Najvećem broju korisnika će to biti dovoljno, ali po potrebi možemo da zalemimo dva reda dodatnih pinova i da na taj način dobijemo modul koji je moguće postaviti na breadboard radi udobnijeg povezivanja. Na gornjoj strani modula nalaze se iglice sa džamperom za određivanje radnog napona. Prednji pinovi su postavljeni tako da najčešće pokrivaju nazive signala ispisane na štampanoj pločici, pa zbog toga ovde prilažemo tabelu sa njihovim funkcijama. FT232RL ima bafer veličine 128 bajtova za prijem i 256 bajtova za slanje, pri čemu se koristi posebna tehnologija za povećanje propusnog opsega. UART radi sa sedam ili osam bitova podataka i sa jedan ili dva stop bita. Dva kilobajta EEPROM-a je, slično nekim prethodno predstavljenim čipovima, namenjeno zapisivanju proizvoljnih podataka, ali i za određivanje pojedinih radnih karakteristika uređaja. Kristal za generisanje radnog takta je ugrađen u kućište čipa. Postoji podrška za izlazne napone od 1,8, 2,8, 3,3 i pet volti. Integralno kolo dolazi u 28-pinskom SSOP pakovanju i obezbeđuje brzine prenosa podataka u opsegu od 300 do tri megaboda. Potrošnja čipa iznosi devet miliampera. Postoji i varijanta u QFN-32 pakovanju pod nazivom FT232RQ.
Pinovi 12, 13 i 14, 22 i 23 mogu biti konfigurisani po potrebi, a funkcija im se određuje upisivanjem podataka u EEPROM. Ovaj model generalno ima sličan raspored pinova i signala kao čip PL2303, tako da ovde važi mnogo toga što je pomenuto kada smo pisali o tom modelu. Reč je o vrlo dobrom UART-u, ali da ne bi bilo sve tako idilično, potrudio se sam proizvođač, pa je 2014. godine objavio drajvere koji su prepoznavali falsifikovane čipove i fizički ih onesposobljavali! To je rađeno tako što bi se u ugrađenom EEPROM-u promenio PID broj uređaja na PID_0000 i na taj način uređaj učinio neprepoznatljivim za Windows. Ovo je izazvalo burne negativne reakcije kod korisnika, pa je inkriminisani drajver povučen, ali se proizvođač nije mirio sa gubitkom profita, pa je 2016. godine izdao nove drajvere koji su sa vremena na vreme putem interfejsa slali tekst da se radi o neoriginalnom hardveru. Adapter je moguće ponovo osposobiti menjanjem EEPROM-a preko programa MProg, čiji je autor sam FTDI, ali je reč o mnogo opsežnoj proceduri koja izlazi izvan okvira ovog teksta. Napomenućemo još da je potrošnja struje kod dalekoistočnih kopija četiri puta veća nego kod originala i iznosi 35 miliampera.Autor teksta za tri godine korišćenja adaptera sa FT232RL čipom (plaćenim 1,8 dolara) nikada nije imao nikakve probleme i mogao bi o ovom UART-u govoriti samo najbolje. Verovatno se radi o originalnoj verziji čipa, ali je to u najnižem rangu cena uvek problematično pitanje. Cene modula prikazanih na ilustraciji se kreću negde oko dva dolara, što ih čini nešto skupljim u odnosu na ovde predstavljene konkurente, ali ukoliko izbegnemo potencijalne nevolje sa drajverom, rad sa njime se može opisati kao udoban. • • • Od početka priče o Arduinu, strateški smo orijentisani ka korišćenju najjeftinijih komponenti kako bi svi zainteresovani bili u mogućnosti da uživaju u druženju sa zanimljivim svetom elektronike. Mogli smo mirne duše da pišemo i o, recimo, modulima u koje je ugrađen UART Microchip MCP2200, čija je cena preko 15 dolara, ali smo svesni da bi i pored izostanka problema u radu broj kupaca takvih interfejsa bio mnogo manji. Daleki istok je uradio svoje i spustio cene do nivoa nepristojnosti, na opšte zadovoljstvo svih nas. Jeste da sa takvim uređajima neiskusni korisnici mogu imati mnogo problema, ali će i oni uz malo muke odraditi svoj posao. Prilikom nabavke preko interneta je mudro ne naručivati modele sa najnižom cenom, već tražiti one malo skuplje, i to od prodavaca sa većim brojem prodatih modula i tekstom gde se tvrdi da je korišćen originalni UART. To ne znači da ste izbegli falsifikovani čip (i probleme koji dolaze sa njim), ali je dobar orijentir. Autor teksta je u praksi najzadovoljniji adapterima zasnovanim na čipovima CP2102 i FT232RL. Nešto malo više problema je bilo sa pločicama na koje je ugrađen CH340G, ali se i to lagano rešava sa procedurom koju smo opisali u tekstu. Najviše problema je uvek bilo sa čipom PL-2303, ali postavljanjem navedenog drajvera, sve dolazi na svoje mesto. Igor S. RUŽIĆ | | |