Folosind un adaptor usb-to-com pentru a conecta ECM-ul mașinii la un computer. Instalarea driverului CP210x USB la UART Bridge VCP Conectarea și instalarea CP2102

Revizuirea convertorului USB la UART TTL pe CP2102

De ce este nevoie?

Programați diverse controlere Arduino și non-Aduino, primiți informații către computer de la tot ce are o interfață serială cu logică TTL.
Îl folosesc în proiectele mele cu , și .

Cum este diferit de alte dispozitive similare?

Un pin DTR suplimentar, care poate fi conectat direct la intrarea RESET pe controlerele care nu au USB pe placă. După aceasta, nu mai este nevoie să apăsați butonul RESET în timpul programării. Acest lucru este foarte convenabil pentru mine atunci când controlerul este ascuns în adâncurile ambarcațiunii mele și accesul la buton poate fi foarte dificil.

Suport de producător, compatibilitate cu driverele și software-ul original, spre deosebire de FTDI fals, care

Pini suplimentari (găuri pentru contacte) de pe placă, de exemplu, permițându-vă să puneți USB în modul de economisire a energiei.

O oportunitate interesantă este să schimbi VID-ul, PID-ul și textul cu care placa este recunoscută, să-ți asamblați propriul driver cu parametrii necesari, ceea ce este destul de interesant în proiectele comerciale. Voi vorbi mai departe despre asta.

Pentru cei interesați, vă rugăm să faceți clic mai jos

Am comandat o mulțime de lucruri mici de pe Ebay pentru o recompensă pentru o recenzie, inclusiv pentru 1,79 USD

Mărfurile au călătorit timp de 54 de zile. Ei bine, m-am obișnuit deja cu poșta noastră, care nu se poate spune despre cursul de schimb dolar la rublă (((

Pachet obișnuit galben. Înăuntru sunt eșarfele în pungi transparente sigilate. Totul este ca de obicei.

Placa are găuri suplimentare unde puteți lipi pinii pentru control suplimentar al modemului și comutarea USB în modul SUSPENDAT

Caracteristici

  • Chip CP2102 de la
  • Rata de schimb de date prin UART 300Bit/sec - 1Mbit/sec
  • Citiți tampon 576 de octeți, scrie 640 de octeți
  • Suport USB 2.0 12Mbps
  • Suport mod USB SUSPENDAT
  • Regulator de putere încorporat 3.3V 100mA
  • EEPROM cu parametri de configurare 1024 octeți
  • Sistem de operare acceptat Windows 8/7/Vista/Server 2003/XP/2000, Windows CE, Mac OS-X/OS-9, Linux, Android
  • Abilitatea de a personaliza parametrii plăcii și driverului pentru proiectele dvs
  • Dimensiuni placa 26,5 x 15,6 mm
Dimensiunea plăcii diferă puțin de
Fotografia arată o comparație cu alte convertoare USB/UART



Înainte de a utiliza placa, trebuie să instalați

Pentru a vă conecta la controler aveți nevoie de 5 fire:
GND - GMD
VCC - V5.0 (V3.3) în funcție de placa utilizată
TX - RX
RX - TX
RESET controler - DTE


Acum controlerul poate fi programat fără a apăsa butonul RESET.

Placa este recunoscută în sistem ca
Silicon Labs CP210X Pod USB la UART (COM35)

Uneori, în proiectele comerciale este necesar ca dispozitivul să aibă propriul nume comercial la programare. Cipul CP2102 și placa de pe acesta oferă oportunități excelente pentru acest lucru

Mai întâi, descărcați și rulați „> (am avut nevoie și să descarc Java Runtime pentru a lansa utilitarul)

Acum puteți modifica următoarele setări:

  • ID-ul furnizorului (VID). ID producator. Valoarea implicită este 10С4 (format hexazecimal). În acest caz, aparține SiLabs.
  • ID-ul produsului (PID). ID produs. Valoarea implicită este EA60 (format hexazecimal). În acest caz, se referă la toate podurile CP210x. E
  • Putere maxima. Consumul maxim de curent solicitat de puntea de pe magistrala USB. Valoarea implicită este 32 (format hexazecimal). Valoarea maximă 500mA
  • Atributele consumului de energie. Cura de slabire. Alimentat prin magistrală (alimentare magistrală USB) sau Autoalimentat (alimentare de la o sursă externă).
  • Versiune de lansare. Număr de emitere. Valoarea implicită este 1,0. Câmpurile pot lua valori 1-99 în părți întregi și fracționale.
  • Număr de serie. Număr de serie. Valoarea implicită este „0001” (format text). Câmpul poate accepta orice valoare text de până la 64 de caractere. Necesar pentru a conecta mai multe dispozitive la un computer
  • Șir de produs. Câmpul poate accepta orice valoare text de până la 126 de caractere. Acest identificator este afișat în sistemul de operare atunci când bridge-ul CP210x este conectat pentru prima dată la computer și ajută utilizatorul să aleagă driverul corespunzător.
  • Blocare personalizată a datelor. Protejarea datelor de configurare.

Când schimbați VID și PID, este necesar să reconstruiți driverele, deoarece driverul standard este configurat pentru VID și PID Silicon Labs

Și după un asistent de dialog simplu obținem o distribuție a driverului cu setul necesar de VID și PID și numele dorit în sistem

Concluzie

Această placă este unul dintre cele mai ieftine convertoare USB/UART care nu utilizează cipuri contrafăcute.
Are un pin DTR care vă permite să trimiteți automat RESET pentru a încărca software-ul în controler
Vă permite să personalizați VID, PID și drivere pentru proiectele dvs
Recomand sa cumperi

Adaptorul de port RS232 pentru magistrala serială universală (USB to UART Bridge) este un dispozitiv USB de mare viteză conceput pentru conectarea dispozitivelor periferice care respectă standardul TIA/EIA232.

Adaptorul se bazează pe controlerul Silicon Labs CP2102 și este destinat utilizării în sisteme echipate cu magistrală USB. Conectarea dispozitivelor periferice se realizează folosind un conector DB9 standard.

  • suport pentru specificațiile USB 2.0;
  • set complet de semnale de interfață RS232;
  • Amplitudinea semnalului RS232 nu este mai slabă de ±5,5V;
  • Alimentat cu magistrala USB.

Instalarea și conectarea adaptorului

  1. Înainte de a instala și conecta adaptorul CP2102, asigurați-vă că dispozitivele externe sunt deconectate și conectate la bucla de masă.
  2. Apoi, conectați dispozitivul extern la conectorul DB9.
  3. Instalați adaptorul într-un conector USB liber, verificând vizual fixarea plăcuțelor de contact până când se opresc în conector.
  4. alimentarea dispozitivului I/O, sistemul este gata de funcționare.

Când instalați adaptorul CP2102, rețineți că specificația USB este conectabilă la cald, dar nu se aplică perifericelor I/O seriale. Când lucrați cu adaptorul, trebuie să conectați numai echipamente periferice deconectate! Nerespectarea acestor reguli poate duce la defectarea componentelor sistemului computerului!

Instalarea unui driver bazat pe sistemele de operare Windows

După conectarea adaptorului CP2102 la conectorul USB în sistemul de operare Windows 2K/XP, acesta este detectat după cum urmează:

Acum trebuie să descărcați driverul CP210x USB la UART. Să începem să-l instalăm:

În timpul operațiunii de preinstalare, utilizatorul poate specifica directorul în care vor fi stocate driverele de dispozitiv CP210x:


Dacă sistemul de operare solicită informații despre locația driverelor de dispozitiv, utilizatorului i se va cere să specifice calea către acestea. Modelul software al adaptorului CP2102 constă dintr-un dispozitiv compozit și o punte USB la UART, fiecare dintre acestea fiind descrisă de propria sa inf-fişier.

Prin urmare, în timpul procesului de detectare automată, sistemul de operare solicită ambele fișiere secvenţial.

Driverele de adaptoare trebuie să fie oferite sistemului pentru instalare din directorul specificat în timpul procesului de preinstalare, cu excepția cazului în care utilizatorul a furnizat altfel. Inițial, sistemul de operare instalează drivere pentru dispozitivul USB compozit:

Dacă versiunea actuală a driverelor USB Composite Device nu este acceptată de un certificat digital Microsoft, utilizatorul este avertizat cu următorul mesaj:

Calea către fișierele necesare pentru dispozitivul compozit este selectată pe baza condițiilor de preinstalare:

Următoarea etapă de instalare este driverele de punte USB la UART. Ca și în pasul anterior, se recomandă instalarea automată.

Dacă versiunea actuală a driverelor USB to UART Bridge Controller nu este confirmată de un certificat digital Microsoft, utilizatorul este avertizat cu un mesaj. Calea către fișierele necesare este selectată pe baza condițiilor de preinstalare:

După instalare, controlerul magistralei serial universale CP210x USB Composite Device și portul serial COM3, implementate folosind controlerul CP210x USB to UART Bridge, apar în proprietățile sistemului, iar lista de dispozitive ia următoarea formă:

Gata, driverul este instalat!

Acest material este publicat pentru prima dată, fiind oferit cu amabilitate pentru publicare pe site-ul nostru de către companie IC Book Labs și este proprietatea exclusivă a acestei companii. Reproducerea fără permisiunea scrisă a deținătorului drepturilor de autor este interzisă.


După cum se știe, pentru diagnosticarea și reprogramarea sistemelor auto, în special ECM, este utilizată o linie de diagnosticare K-Line 12 V (ISO 9141), compatibilă electric cu interfața serială RS232 utilizată în calculatoarele personale. Dar, la împerecherea unei mașini cu un computer, apare o problemă din cauza faptului că schimbul cu sistemele auto se realizează la viteze de 200 și 10400 baud, care nu sunt tipice pentru computere. Acest articol discută o soluție simplă la această problemă pentru adaptoarele USB-la-COM folosind software-ul furnizat în mod standard de dezvoltatori.


Controlul vitezei de transmisie

Rata de transmisie pentru interfața serială depinde de divizorul instalat. Valoarea divizorului este determinată de conținutul registrului Baud Rate Divisor. Analiza arhitecturii controlerului și calculele simple arată că nu există obstacole în calea utilizării vitezelor de 200 și 10400 baud care ne interesează. Deci care este problema?


La scrierea sistemelor de operare, drivere și diverse programe de aplicație pentru întreținerea interfeței seriale, de dragul simplificării, a fost utilizată o gamă standard de viteze, devenită tradițională pentru computerele personale: 300, 600, 1200, ..., 115200 baud. Vitezele de 200 și 10400 baud utilizate de linia de diagnosticare a vehiculului nu sunt incluse în acest interval.

Sarcina noastră este să oferim suport pentru ratele de transmisie care sunt acceptate de controlerele FT232 și CP2102, dar care nu sunt acceptate de software-ul „clasic”. Ideea este de a redefini vitezele standard cu noi valori, de exemplu înlocuind 14400 baud cu 10400 baud. După această modificare, o solicitare de activare a modului de 14400 baud va avea ca rezultat activarea modului de 10400 baud. Ideea este că adăugăm viteză nouă, menținând în același timp o interfață compatibilă cu software-ul existent. În principiu, orice viteză dintr-o serie dată poate fi folosită pentru înlocuire.

Viteze de suprareglare pentru controlerul CP2102

Să luăm în considerare realul implementarea celor descrise ideile de mai sus pentru compatibilitatea controlerului USB la COM CP2102 cu controlerul sistemului electronic de control al motorului (ECM) al vehiculului. După cum sa menționat mai sus, pentru linia de diagnosticare K-Line 12 V, vitezele tipice sunt 200 și 10400 baud.

Din fericire, producătorul controlerului CP2102 a oferit posibilitatea controlului flexibil al modurilor de operare și a echipat dispozitivul său cu o utilitate pentru realocarea cursurilor de schimb, așa că astăzi nu avem nevoie de un dezasamblator și depanator, acțiunile noastre vor fi foarte simple și vor fi redus la utilizarea utilitarului standard furnizat de Silicon Labs.

De asemenea, rețineți că rezultatul acțiunilor noastre va fi modificarea conținutului tabelului care stochează valorile divizoarelor de frecvență pentru vitezele acceptate. Acest tabel se află în memoria internă nevolatilă a cipului CP2102, astfel încât modificările vor fi salvate atunci când alimentarea este oprită sau dispozitivul reprogramat este transferat pe alt computer. Pentru majoritatea aplicațiilor, această opțiune este mai convenabilă decât, de exemplu, efectuarea de modificări la driver. Pentru a asigura compatibilitatea cu linia de diagnosticare a vehiculului și cu software-ul utilizat pentru a monitoriza starea ECM, trebuie să facem următoarele înlocuiri: 14400 la 10400 și 300 la 200 baud.

Deci, să lansăm utilitarul CP210 xBaudRateAliasConfig.exe. Apare fereastra CP210 x Baud Rate Configuration. Dacă sunt conectate mai multe dispozitive CP2102, în linia de sus Dispozitive conectate trebuie să selectați dispozitivul pe care îl vom reprograma. Dacă dispozitivele au fost conectate după lansarea utilitarului, ar trebui să utilizați butonul Reîmprospătare pentru a actualiza lista de adaptoare activate.

Faceți clic pe butonul Obțineți configurație și obțineți o listă cu ratele de transmisie acceptate pentru dispozitivul selectat.

Dacă se folosește un adaptor USB-to-COM, lista este generată automat dacă mai multe, apoi după selectarea dispozitivului, asigurați-vă că faceți clic pe butonul Obține configurație, altfel va fi vizualizat un tabel care nu corespunde curentului; adaptorul selectat anterior!

Coloana din stânga de sub simbolul # indică numărul limită de viteză condiționată. Coloanele High și Low din coloana Application Requested Baud Rate Range conțin limitele superioare și inferioare ale intervalului de viteză asociat cu acest mod. Dacă un parametru solicitat de software se încadrează în acest interval, acesta este utilizat în modul curent. Pentru a susține viteza cerută de software, se folosește modul în care se încadrează această viteză. Coloanele Desired și Actual din coloana UART Baud Rate arată rata baud programată pentru acest mod. Dorit - valoare ideală (de obicei din gama standard de viteze). Actuală este valoarea reală, care, datorită caracteristicilor schemelor de sincronizare a controlerului, nu este întotdeauna egală cu cea ideală.

Faceți dublu clic pe linia corespunzătoare modului de editat. Introduceți valoarea necesară a cursului de schimb - Rata baud dorită. Aceasta actualizează automat rata de transmisie reală. Din punctul de vedere al standardului de interfață serială, este acceptabilă o abatere de ±3%. Precizia de setare a vitezei controlerului CP2102 satisface această cerință. Linia de editare 19. Rata baud inițială este de 14400 baud.


Introduceți o nouă valoare - 10400 baud, faceți clic pe OK și anularea este setată!


Linia de editare 28. Rata inițială de transmisie este de 300 de baud.


Introduceți o nouă valoare - 200 baud, faceți clic pe OK și anularea este setată.

După ce au fost făcute toate modificările, nu uitați să faceți clic pe butonul Set Configuration din fereastra CP210 x Baud Rate Configuration și să verificați dacă valorile dorite și reale din liniile editate s-au schimbat.

Folosind utilitarele de diagnosticare a portului serial, puteți verifica rezultatele acțiunilor efectuate prin setarea cursurilor de schimb care corespund celor suprascrise și comparând cursurile setate și măsurate.

În plus, observăm că butonul Avansat vă permite să reglați fin parametrii. Pentru a înlocui, trebuie să bifați caseta de selectare Suprascriere recomandată.

Parametrii Prescaler (factor de divizare pentru prescaler) și Reload (valoare de încărcat în contorul divizorului principal de frecvență) determină Baud Rate în conformitate cu următoarea formulă:

Baud Rate = ( 24.000.000 /Prescaler) / (65536 -Reîncărcare)

Rețineți că controlerul CP2102 acceptă viteze de până la 1.000.000 baud în modul de date pe 7 și 8 biți și 921.600 baud în modul de date pe 5 și 6 biți, pentru schimbul full-duplex. Dacă viteza este setată peste limitele specificate, controlerul poate funcționa defectuos.

Timeout-ul la schimbul de date prin USB este controlat prin editarea parametrului USB Receive Timeout. Valoarea timeout-ului în secunde este determinată de formula:

Timeout = ( 65536 – Reîncărcare) / 500.000

Timeout-ul specificat este utilizat la transferul datelor primite prin interfața serială prin USB către un computer. Acesta definește perioada de timp în care controlerul așteaptă datele de intrare. Dacă nu se primesc date într-o perioadă specificată, controlerul încheie transferul USB. Valoarea tipică de expirare este de 1 ms. Managementul timeout vă permite să stabiliți un compromis atunci când sunt îndeplinite două criterii reciproc contradictorii:

1 . Minimizarea întârzierii întreținerii unui dispozitiv USB de către un computer, ceea ce în acest caz crește viteza de răspuns a programului de diagnosticare la evenimentele din obiectul diagnosticat.

2. Minimizarea încărcării computerului prin transferul de pachete de date goale prin USB, care are loc atunci când nu se primesc date prin interfața serială. Performanța generală depinde de asta.
Cu cât timeout-ul este mai mare, cu atât dispozitivul „nu adoarme” mai mult în absența datelor, adică pentru a îmbunătăți primul criteriu, timeout-ul ar trebui mărit, iar pentru al doilea, redus.

Viteze de suprareglare pentru controlerul FT232

Să luăm în considerare rezolvarea unei probleme similare pentru unul dintre produsele concurente - controler FT232 Compania FTDI. Spre deosebire de exemplul de mai sus, aici va trebui să edităm fișierul de configurare a driverului portului serial FTDIPORT.INF. Structura acestui fișier este descrisă în, procedura de editare a câmpurilor care setează rata de transmisie pentru un port serial este descrisă în. Prin urmare, de dragul compactității prezentării, în descrierea noastră atenția se concentrează numai asupra acelor parametri care trebuie modificați. De asemenea, rețineți că acest exemplu corespunde uneia dintre mai multe opțiuni pentru reprezentarea parametrilor, toate opțiunile posibile sunt listate în , .

Găsim următoarea intrare în fișierul FTDIPORT.INF:


HKR„„ConfigData”, 1 .01 .00 .3 F.3 F.10 .27 .88 .13 .C4 .09 .E2 .04 .71 .02 .38 .41 .9 c.80 .4 E.C0 .34 .00 , 1 A.00 .0 D.00 .06 .40 .03 .80 .00 .00 ,d0 .80

Secvența, începând cu al șaselea parametru, conține perechi de octeți, fiecare setând coeficientul de divizare a frecvenței pentru divizor care determină cursul de schimb pe interfața serială. Fiecare pereche corespunde unei anumite viteze. Să luăm în considerare prima pereche de parametri 10 a.m., 27 p.m..

1 . Deoarece doi octeți adiacenți ai unui cuvânt de 16 biți sunt scrieți începând cu octetul cel mai puțin semnificativ, pentru a obține un număr de 16 biți, aceștia trebuie să fie schimbați: 10 , 27 corespunde 2710 h, h - înseamnă că numărul este scris în sistem numeric hexazecimal.

2. Convertim numărul de 16 ari 2710 h în sistem binar.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0
2 7 1 0

3. Interpretăm valoarea binară rezultată. Cei doi biți cei mai semnificativi ai numărului de 16 biți, și anume biții 15, 14, determină partea fracțională a coeficientului de divizare a frecvenței conform următorului tabel:

Pic 15 Pic 14 Partea fracțională a divizorului
0 0 0
0 1 0 .5
1 0 0 .25
1 1 0 .125

În cazul nostru, partea fracțională a divizorului este zero. Câmpul de biți 13 –0 al unui număr de 16 biți este numeric egal cu partea întreagă a divizorului, să facem conversia de la hexazecimal la zecimal 2710 h = 10.000.

4 . Frecvența de ceas la intrarea divizorului este de 3 MHz = 3.000.000 Hz. Rata baud va fi egală cu frecvența divizorului de intrare împărțită la factorul de divizare.

Baud Rate = 3.000.000 / 10.000 = 300 baud.

Deci prima pereche de valori setează viteza la 300 baud. Să presupunem că trebuie să redefinim această viteză la 10400 baud. Să calculăm factorul de divizare necesar (Divizor):

Divizor = 3 .000 .000 / 10 .400 = 288 ,46

Cea mai apropiată valoare disponibilă este 288,5. Trebuie să setăm partea întreagă a divizorului egală cu 288 , fracționar egal 0 ,5 . Conform tabelului 2, biții 15,14 vor fi egali cu 01 b, b înseamnă că numărul este scris în sistemul numeric binar. Să convertim 288 în hexazecimal: 288 =120 h. Această valoare trebuie plasată în câmpul de biți 13 –0. Combinăm biții 15 –14 și 13 –0, obținem 4120 h.

Pentru a redefini o viteză de la 300 baud la 10400 baud, intrarea ar trebui să arate astfel:


HKR„„ConfigData”, 1 .01 .00 .3 F.3 F.20 .41 .88 .13 .C4 .09 .E2 .04 .71 .02 .38 .41 .9 c.80 .4 E.C0 .34 .00 , 1 A.00 .0 D.00 .06 .40 .03 .80 .00 .00 ,d0 .80

Să vă reamintim că, dacă driverul de dispozitiv FT232 este deja instalat, pentru ca modificările să aibă efect, software-ul dispozitivului trebuie să fie complet dezinstalat și reinstalat din directorul în care se află fișierul INF editat. Din cauza naturii sistemului de operare, este posibil ca funcția de actualizare a driverului sau ștergerea dispozitivului din managerul de dispozitive să nu producă rezultate.

Surse de informare.

6,3 USD (în prezent 1,43)

Am cumpărat un Arduino Pro Mini complet cu un adaptor USB-UART pe un cip CP2102 în urmă cu 1,5 ani (prețurile pentru ei au scăzut semnificativ de atunci) și au stat pe raftul meu în tot acest timp. Toată lumea nu a putut să facă ceva cu acest controler. Un rol important în acest sens l-a jucat faptul că flasharea unei schițe în Arduino Pro Mini, deși nu este dificilă, este puțin mai dificilă decât în ​​Arduino UNO, Mega sau Nano.

Și așa am decis să folosesc acest controler într-unul dintre proiectele mele, încă rămâne inactiv.

Arduino Pro Mini DETALII

ATmega168 sau 328

Tensiune de operare

3,35 -12 V (model 3,3 V) sau 5 - 12 V (model 5 V)

Pini I/O digitale

14 (dintre care 6 oferă ieșire PWM)

Pini de intrare analogică

Curent DC per pin I/O

16 KB (din care 2 KB utilizate de bootloader)

8 MHz (model 3,3 V) sau 16 MHz (model 5 V)

S-a întâmplat să am un model de 16MHz de 5 volți pe un cip ATmega 328 După cum sa dovedit la analiza datelor de pe Internet, există plăci de control care nu au semnalul DTR. În cazul meu, totul este cablat corect. Setul a inclus un convertor USB-UART.

Platforma conține 14 intrări și ieșiri digitale (dintre care 6 pot fi utilizate ca ieșiri PWM), 6 intrări analogice, un rezonator, un buton de resetare și găuri de montare a pinului. Un bloc de șase pini poate fi conectat la o placă convertor USB-UART.

Arduino Pro Mini este foarte asemănător ca caracteristici tehnice și parametri cu Arduino Nano. Au aceeași dimensiune în lățime, dar lungimea Arduino Pro Mini este cu aproximativ 1 cm mai mică.

10 mm este mult. Dar dacă lipiți pinii pentru conectarea USB-UART în placă, toate avantajele acestei plăci față de Nano dispar. În acest moment, Arduino Pro Mini costă cu 0,25 USD mai puțin decât Arduino Nano. Este imaterial. Nu mai există avantaje și dezavantaje, ci doar dezavantaje.

Și principalul dezavantaj este încărcarea mai complexă a schițelor.

Există mai multe moduri de a flash-o schiță.

O modalitate este de a folosi un Arduino UNO ca USB-UART. Există o mulțime de instrucțiuni pe Internet despre cum să faci acest lucru, așa că nu mă voi opri asupra lor.

A doua modalitate este să utilizați adaptorul USB-UART în sine. Îl am și pe cel „corect”, așa că am decis să îl folosesc. Cum funcționează adaptorul? Arduino comunică cu cipul convertor printr-un UART obișnuit și se conectează la computer prin USB. Computerul recunoaște adaptorul conectat ca port COM.

Încărcarea schiței pe Arduino Pro Mini, așa cum s-a dovedit mai târziu, nu este deloc dificilă. Trebuie doar să conectați firele de la setul de 5 pini de pe adaptor și Arduino:

(Convertor)<->(Arduino)

DTR<->GRN
TXD<->RXI
RXD<->TXO
GND<->GND
5V<->VCC

Pe Arduino Pro Mini, semnalul DRT este etichetat GRN. Nu a fost ușor să ghicim ce a fost, mai ales că pe unul dintre site-uri un consilier „amabil” a scris că GRN trebuie conectat la GND. Ei bine, internetul este o mare groapă de gunoi și nu este prima dată când sunt convins că cei mai dispuși să dea sfaturi pe forumuri nu sunt cei care înțeleg cu adevărat subiectul în discuție. Deci, GRN este DTR.

Pentru cei care nu știu ce este DTR:
Terminal de date gata (DTR) - semnal de control in protocol de date seriale, transmis de la echipamentul terminal (DTE) la echipamentul de recepțiepentru a indica faptul că terminalul este pregătit pentru comunicare.

În Arduino, semnalul DTR inițiază semnalul de resetare în momentul în care schița începe să fie transferată.

Posibilă în locul conexiunii DTR<->GRN conectează adaptorul DTR printr-un condensator de 0,1 uF pentru a reseta Arduino Pro Mini. Funcționează și așa, testat. Este prin condensator. În ciuda faptului că este scris pe forumuri și multe site-uri pe care trebuie să le conectați direct DTR și RESET, cu o conexiune directă schița nu este transferată. Cel puțin nimic nu a funcționat pentru mine cu o conexiune directă.

Teoretic, pe măsură ce scriu pe internet, puteți înregistra o schiță fără DTR apăsând pe resetare de pe placa controlerului exact în momentul în care începe înregistrarea. Am încercat de mai multe ori să prind acest moment, dar nu am reușit. Nu mi-am antrenat abilitățile pentru a încerca să resetez la momentul potrivit, este mai ușor să ai încredere în cipul convertor CP2102 pentru a furniza semnalul de resetare.

Dar nu toate CP2102 sunt create egale. Există o mulțime de falsuri ieftine vândute pe eBay și AliExpress cu care oamenii se luptă și adesea trebuie să le modifice pentru a putea înregistra o schiță în Arduino Pro Mini. În aceste adaptoare, semnalul DTR de la pinul 28 al chipului CP2102 nu este direcționat. Unele au marcajele Rx și Tx amestecate. De aceea, pe forumurile online există atât de multe instrucțiuni care se contrazic și uneori pur și simplu induc în eroare cititorii. Am petrecut aproximativ două ore citind aceste prostii (nu am vrut să reinventez roata, m-am gândit că voi economisi timp) și încercând să scriu o schiță în controler folosind aceste instrucțiuni. Ca rezultat, toate instrucțiunile s-au dovedit a fi nefuncționale pentru adaptorul meu CP2102. S-a dovedit a fi cel „corect”, în care au fost aplicate marcajele corecte și toate semnalele au fost direcționate corect.

A fost suficient doar să conectezi toate firele și totul a funcționat.

Prin urmare, dacă vă confruntați cu necesitatea de a înregistra o schiță în Arduino Pro Mini prin USB-UART, verificați mai întâi dacă semnalul DTR este direcționat pe placa Arduino Pro Mini. Am citit ca sunt placi pe care nu este dirijata. În acest caz, puteți utiliza opțiunea de conectare a semnalului DTR de la placa adaptorului USB-UART la pinul RESET al Arduino Pro Mini printr-un condensator de 0,1-0,15 µF.

În al doilea rând, verificați dacă semnalul DTR este conectat la vreun pin de pe placa adaptorului USB-UART. Pinul poate fi și chiar semnat ca DTR, dar nu este conectat la pinul 28 al cipul CP2102. Dacă pinul 28 al acestui microcircuit nu este conectat nicăieri, trebuie să asigurați conexiunea acestuia la pinul DTR. Dacă pinul 28 este conectat undeva în circuit, această pistă trebuie tăiată și conectată direct la pinul DTR.

Corectitudinea marcajelor Rx și Tx pe o placă CP2102 falsă poate fi determinată experimental, există doar 2 opțiuni.

De asemenea, am citit instrucțiuni pe Internet că trebuie să înregistrați o schiță folosind adaptorul USB-UART CP2102 în modul „Încărcare prin programator”, se presupune că acesta este singurul mod în care totul funcționează. Nu știu dacă autorul acestei opere induce în mod deliberat cititorii în eroare sau dacă a avut altceva decât un adaptor USB-UART CP2102, dar acest sfat este GREȘIT!

Prin adaptorul USB-UART CP2102, computerul vede Arduino Pro Mini ca și cum ar fi conectat la un port COM, adică la fel ca și alte Arduino-uri care au la bord un adaptor USB-UART.

Prin urmare, schițele sunt încărcate în Arduino Pro Mini în același mod ca și în alte modele Arduino. Trebuie doar să selectați modelul Pro Mini în mediul de programare Arduino, apoi în elementul suplimentar care apare, selectați unul dintre cele 4 tipuri posibile de procesor (ATmega168 sau 328, 3.3 sau 5V) și portul COM virtual care a apărut după instalarea Drivere pentru adaptorul USB-UART. Apoi puteți folosi butonul de descărcare sau Ctrl-U. Dacă totul este conectat corect, tipul și modelul adaptorului nu contează, schițele sunt încărcate prin UART. Selectăm pur și simplu portul COM de care este determinat adaptorul.

După 2 ore de citit forumuri și site-uri cu „ghiduri” și „sfaturi”, care erau 99% incorecte, cel puțin nu erau potrivite pentru modelele mele specifice Arduino Pro Mini și adaptorul USB-UART CP2102, am reușit să mă conectez și să încarc totul corect în controler o schiță ușor modificată a LED-ului care clipește. L-am făcut să clipească SOS în cod Morse.

Iată o schiță, în cazul în care este cineva interesat:

// funcția de configurare rulează o dată când apăsați pe resetare sau porniți placa
void setup() (
// inițializați pinul digital 13 ca ieșire.
pinMode(13, IEȘIRE);
}

// funcția buclă rulează din nou și din nou pentru totdeauna
void loop() (
întârziere (100); // aștepta
întârziere (300); // aștepta
digitalWrite(13, HIGH); // aprinde LED-ul (HIGH este nivelul de tensiune)
întârziere (100); // aștepta
digitalWrite(13, LOW); // stinge LED-ul făcând tensiunea LOW
întârziere (300); // aștepta
digitalWrite(13, HIGH); // aprinde LED-ul (HIGH este nivelul de tensiune)
întârziere (100); // aștepta
digitalWrite(13, LOW); // stinge LED-ul făcând tensiunea LOW
întârziere (300);
digitalWrite(13, HIGH); // aprinde LED-ul (HIGH este nivelul de tensiune)
întârziere (300); // aștepta
digitalWrite(13, LOW); // stinge LED-ul făcând tensiunea LOW
întârziere (300); // aștepta
digitalWrite(13, HIGH); // aprinde LED-ul (HIGH este nivelul de tensiune)
întârziere (300); // aștepta
digitalWrite(13, LOW); // stinge LED-ul făcând tensiunea LOW
întârziere (300); // aștepta
digitalWrite(13, HIGH); // aprinde LED-ul (HIGH este nivelul de tensiune)
întârziere (300); // aștepta
digitalWrite(13, LOW); // stinge LED-ul făcând tensiunea LOW
întârziere (300); // aștepta
digitalWrite(13, HIGH); // aprinde LED-ul (HIGH este nivelul de tensiune)
întârziere (100); // aștepta
digitalWrite(13, LOW); // stinge LED-ul făcând tensiunea LOW
întârziere (300); // aștepta
digitalWrite(13, HIGH); // aprinde LED-ul (HIGH este nivelul de tensiune)
întârziere (100); // aștepta
digitalWrite(13, LOW); // stinge LED-ul făcând tensiunea LOW
întârziere (300); // aștepta
digitalWrite(13, HIGH); // aprinde LED-ul (HIGH este nivelul de tensiune)
întârziere (100); // aștepta
digitalWrite(13, LOW); // stinge LED-ul făcând tensiunea LOW
întârziere (300); // aștepta
întârziere (1500); // așteptați 1,5 secunde.
}

Concluzii:

Dacă nu aș fi încercat să economisesc timp „reinventând roata” și nu aș fi petrecut timp citind sfaturi și ghiduri inutile (chiar mai degrabă dăunătoare) de pe forumuri și site-uri web, conectarea și aprinderea Arduino Pro Mini ar fi durat nu 2 ore, ci un maxim 5-10 minute.

Mi-am cumpărat setul de adaptor Arduino Pro Mini și USB-UART CP2102, care, după standardele actuale, era destul de scump. Adevarul este ca ma consoleaza faptul ca adaptorul este corect si toate semnalele sunt conectate la el.

Arduino Nano este identic în parametri și capabilități cu Arduino Pro Mini, costă doar puțin mai mult (maximum 25-50 de cenți), pierde 1 cm în dimensiune (și cu pinii lipiți, Arduino Pro Mini nu pierde deloc), dar este mult. mai convenabil în utilizare datorită USB-UART încorporat și conectorului MicroUSB comun.

Arduino Pro Mini nu este cea mai populară placă, tastați „Arduino Nano” într-o căutare pe eBay și sortați după preț în ordine crescătoare și veți vedea cum chinezii vicleni vând foarte ieftin o mulțime de Arduino Pro Mini-uri în această secțiune, trecând a fost Nano? in speranta ca cumparatorul nu isi va da seama si, profitand de pretul mic, va cumpara aceste controlere. Își au toată speranța doar în clienții care sunt proști.

Aș recomanda să cumpărați un Arduino Pro Mini? Pentru un începător - nu. Da - unei persoane care știe exact ce este, ce dezavantaje are și dacă merită micile economii.

Repet încă o dată că nu este dificil să flashiți Arduino Pro Mini, dar această agitație cu conectarea cablajului sau Arduino UNO merită diferența de preț de 0,2 USD-0,25 USD. Mai ales dacă trebuie să conectați controlerul la computer pentru depanare de mai multe ori, dar ce se întâmplă dacă este într-o carcasă? Dacă credeți că conectarea și deconectarea a 5 fire de zece până la cincisprezece ori este mai profitabilă decât să plătiți 20 de cenți, acest controler este pentru dvs.

Asta e tot. Mi-am împărtășit experiența și mi-am exprimat părerea, rămâne la latitudinea dvs. să decideți.

P.S. A trecut puțin timp și mi-am schimbat oarecum părerea despre Arduino Pro Mini. Chiar și o economie de 25-50 de cenți este mult, mai ales dacă este asamblat un lot mic de produse care utilizează acest controler. Este clar că pentru un lot mic este mai bine să integrați controlerul direct pe placă, decât să utilizați un Arduino gata făcut (aceasta este încă o placă de depanare). Dar există diferite opțiuni, uneori există deja plăci gata făcute și le puteți actualiza și extinde funcționalitatea prin integrarea Arduino. Va fi mai ieftin decât construirea de plăci noi.

Iar prezența unui adaptor USB-UART la bordul produsului predat utilizatorului este complet inutilă și chiar dăunătoare. Deci Arduino Pro Mini are dreptul la viață.

Interfața UART este acceptată de aproape toate microcontrolerele și este foarte convenabilă atunci când dezvoltați și depanați tot felul de dispozitive microcontrolere: încărcați firmware-ul prin bootloader și vizualizați jurnalele de depanare ale dispozitivului pe computer. Dar, din păcate, la computerele moderne portul COM dispare treptat din lista interfețelor disponibile, fiind înlocuit de magistrala USB, și cu atât mai mult la laptopuri. Acest lucru m-a făcut nedumerit în legătură cu problema realizării unui adaptor USB -> COM. De obicei, astfel de adaptoare sunt realizate pe baza popularului microcircuit din seria FT232, dar are câteva dezavantaje: 1) costul microcircuitului este de ~150 de ruble 2) dimensiuni microscopice cu toate dificultățile care rezultă în lipirea și fabricarea unui tipărit. placă de circuit.

Ca alternativă la FT232, a fost descoperit mai puțin cunoscutul CP2102, care costă jumătate, are jumătate din dimensiune și are chiar și un corp QFN-28 (5mm x 5mm). Acest cip este un convertor USB-UART complet gata, care nu necesită cablare externă (o pereche de condensatori de filtru pe magistrala de alimentare nu contează) și are următoarele capacități:

  • Conformitate cu specificația USB 2.0, viteză maximă (12 Mbps)
  • EEPROM integrată de 1024 de octeți pentru stocarea ID-ului producătorului, ID-ului produsului, numărului de serie, descrierea dispozitivului etc.
  • viteză RS232 virtuală de la 300 bps la 1 Mbits
  • suport pentru formatele de transfer de date 5, 6, 7 și 8 octeți de date; 1, 1.5 și 2 biți de oprire, diverse verificări de paritate
  • buffer receptor - 576 octeți, tampon emițător - 640 octeți
  • surse de frecvență de referință încorporate, stabilizator încorporat de 3,3 V
  • Drivere pentru Windows Vista/XP/Server 2003/2000, Linux, Mac OS-X / OS-9

Sistem

Circuitul adaptorului este preluat din fișa de date, perifericele opționale au fost aruncate și a fost adăugat un LED pentru a indica prezența alimentării.

Mufa DB9 este conectată în mod similar cu ieșirea portului COM al unui computer, aici este cablarea acestuia (direcția semnalelor este indicată în raport cu computerul).

Principala problemă a proiectării adaptorului - problema plăcii de circuit imprimat și a instalării QFN-28 a fost rezolvată prin lipirea microcircuitului cu capul în jos pe placa de circuit imprimat și lipirea pinii acestuia cu fir PEV de 0,1 mm. Oarecum trist, dar în miniatură. Iată ce s-a întâmplat ca urmare:


Și în cazul DB-9 totul arată așa:

Șoferii

Acum, după ce ați verificat cu atenție instalarea, puteți testa. Dispozitivul a fost detectat de sistem, dar driverele Windows nu au putut fi găsite. Le-am descărcat. După care a apărut un nou port în sistemul meu - COM5 în Windows și /dev/ttyUSB0 în Linux. Acum, prin conectarea RXD la TXD (pinii 2 și 3 ai mufei adaptorului) și lansarea oricărui terminal COM, vă puteți asigura că octeții sunt trimiși... și primiți... iar cei din urmă coincid cu primul...

Un punct important: nivelurile de semnal la ieșirea adaptorului sunt TTL și diferă de nivelurile de semnal ale interfeței standard RS232, prin urmare, dispozitivele obișnuite pentru portul COM nu pot fi conectate direct la adaptor, în plus, acest lucru poate deteriora adaptorul; . Pentru a conecta dispozitive COM standard, trebuie să adăugați un convertor de nivel pe cipul familiei MAX232.

Mai jos puteți descărca proiectul în Eagle, precum și un desen finit al unei plăci de circuit imprimat pentru un fier de călcat cu laser (pentru călcarea unei plăci de circuit imprimat pe două fețe, vă recomand imprimarea desenului pe hârtie de calc).