Arduino a USB připojení

Zde si můžeme předat nějaké ty zkušenosti.
  • Advertisement

Arduino a USB připojení

Příspěvekod ulitej » úte 04. kvě 2021 16:38:39

Tak budu doufat , že si to tady někdo vzdělanější přečte a poradí.
Protože mi trochu nevyšel jeden rozměr a arduino má MIKRO USB konektor tak přemýšlím jak to je.
Pro napájení arduina nepoužiji USB vstup , ale pomocí pinů tak toto je jasné.
Ovšem nyní mám otázku pokud potřebuji komunikovat z počítačem tak bych mohl použít piny RX/TX jako náhradu za vstupní piny RX/TX v USB konektoru?
Pokud né tak tak prosím nerozebírejte jak by to šlo protože budu řešit již jen mechanickou úpravu konektruru na USB kabelu aby se rozměrově vešel tam kam potřebuji.
Díky moc za odpověď.
Uživatelský avatar
ulitej
Pokročilý
Pokročilý
 
Příspěvky: 106
Registrován: ned 13. led 2019 13:34:31

Re: Arduino a DISPLEJE

Příspěvekod Sakul » úte 04. kvě 2021 18:23:46

Ovšem nyní mám otázku pokud potřebuji komunikovat z počítačem tak bych mohl použít piny RX/TX jako náhradu za vstupní piny RX/TX v USB konektoru?

To bohužel nejde. Piny na Arduinu (lépe řečeno mikrokontroleru jsou TX a RX a jsou to piny rozhraní UART, které nemá s USB vůbec nic společného krom toho, že se jedná také o sériovou komunikaci. Piny na USB jsou označeny D+ a D- a jde o zcela jiný komunikační protokol a rozhraní. A z toho důvodu je mezi mikrokontrolér (Arduino) a USB konektor zařazen nějaký aktivní převodník jako třeba CH340 nebo jakýkoli jiný vhodný.
INFO:
Sakul WORLD: www.sakul.cz/
Sakul YouTube: www.youtube.com/user/sakulraider

Možnost příspěvku (Donate):
Patreon: https://www.patreon.com/sakul
PayPal: SakulRaider@seznam.cz
BU: 670100-2208863541/6210
Uživatelský avatar
Sakul
Administrátor
Administrátor
 
Příspěvky: 1542
Věk: 41
Registrován: úte 30. bře 2010 18:13:08

Re: Arduino a DISPLEJE

Příspěvekod ulitej » úte 04. kvě 2021 21:05:44

Děkuji moc , takže konečně mám jasno , piny D1 a D2 jsem nikdy nepoužil ve svém programu protože jsem věděl , že mají vazbu na data z USB konektoru, takže by deska arduina musela mít vyvedeny piny "mechanicky" propojeny s USB konektorem což výrobce bohužel nedělá.
Jetě jednou se omlouvám , že jsem zopakoval ten dotaz a neuvědomil si , že to již bylo tady probírané.
Uživatelský avatar
ulitej
Pokročilý
Pokročilý
 
Příspěvky: 106
Registrován: ned 13. led 2019 13:34:31

Re: Arduino a DISPLEJE

Příspěvekod ulitej » pát 21. kvě 2021 15:05:41

Ahoj Lukáši, poprosil bych tě ještě o konsultaci a je to stále k problému USB/pin D0-D1. Něco jsem se snažil pochopit a dohledat, ale nemám nikoho v okolí s kým bych to mohl probrat tak se obracím na tebe a moc si vážím toho ,že tady jseš ochotný odpovídat na dotazy a návíc i dávat rady .
Našel jsem tento návod
https://uart.cz/427/prevodnik-usb-uart/
a něco podobného na aliku
https://www.aliexpress.com/item/1005001 ... web201603_

nebudu to dál popisoovat a zeptám se - Je možno použít tento modul (z ali ten s CH340) a arduino v kterém je nahráno příslušné INO připojit pomocí pinů D0 a D1 a poté to provozovat jako "jednotné arduino"

Možná si řikáš proč s tím stále otravuji , no prostě mám problém s jednou konstrukcí (mechanický) a tak se snažím něco řešit dříve než nastane nefunkční stav (nevím jak to jinak popsat). Pokud bych odpověď našel někde tady na fóru tak mi jen odpověz , že to tady je popsáno a já se pokusím to dohledat a snad to poté pochopím :-)
Uživatelský avatar
ulitej
Pokročilý
Pokročilý
 
Příspěvky: 106
Registrován: ned 13. led 2019 13:34:31

Re: Arduino a USB připojení

Příspěvekod Sakul » pát 21. kvě 2021 17:12:41

Ok. Tak se na to podíváme. Ještě než tak učiním poprosím vždy založit nové téma, pokud se obsah nehodí do některého stávajícího. Viz ZDE.

Takže typické Arduino, krom Micra a nějakých těch 32b nejsou vybaveny USB portem. Ale jak je možné, že třeba Arduino MEGA, UNO, NANO a další to USB mají? No nemají. Respektive ho má deska Arduino, ale nikoli mikrokontrolér. Takže v první řadě je nutné rozlišovat co je Arduino a co je mikrokontrolér. Arduino je nějaká ta celá deska (UNO, MEGA, NANO), která obsahuje mikrokontrolér a mnoho dalších obvodů, aby právě ten mikrokontrolér mohl vůbec fungovat.
Takže mi se nyní zaměříme na mikrokontrolér ATMEGA328P. Ten je obsažen v deskách Arduino UNO, NANO, MINI a asi i dalších. Tento mikrokontrolér (budu psát procesor) neobsahuje HW USB rozhraní. Toto rozhraní bychom mohli emulovat pomocí Firmware, ale to by nebylo příliš praktické pro Arduino desky. Takže jak to tedy je a jak tento procesor komunikuje s okolím? No celkem jednoduše. Tento procesor obsahuje mnoho HW periferií jako například I2C, SPI a UART. Všechno to jsou komunikační porty a všechny jsou sériové. Nás však zajímá UART, lépe řečeno USART (UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER). V drtivé většině aplikací se tento port používá v asynchronním režimu tedy UART. To znamená , že pokud spolu komunikují dva procesory pomocí tohoto rozhraní, tak musí být předem dohodnuto, jak tato komunikace bude probíhat a to zejména musí být stejná komunikační rychlost (například 9600bps), dále kolik a jaké budou start a stop bity a kolik bitů se bude přenášet v rámci jednoho "paketu". To je klíčové, aby si procesory vzájemně rozuměly. Zde asi nechci zabíhat do nějakých dalších detailů, jako je třeba procentuální odchylka (chyba) v časování konkrétní rychlosti (bps) v závislosti na taktovacím kmitočtu procesoru (použitém oscilátoru).
Nicméně díky tomu, že UART je tak jednoduchý používá se velice často. No a zde se dostáváme k tomu jak je to s tím USB v Arduino deskách. Aby se dal procesor propojit s počítačem pomocí UART bylo by nutné tuto komunikaci převést na trochu jiný standard a to je RS232. Zde zůstává zachován princip komunikace a jediné co se mění jsou napěťové úrovně pro LOG1 a O. UART používá TTL logiku, tedy zjednodušeně LOG-1 se rovná napájecímu napětí procesoru (5V v případě ATMEGA328P) a LOG-0 se rovná 0V. RS232 používá však vyšší napěťové úrovně a to někde kolem -12V pro LOG-0 a +12V pro LOG1. Navíc jsou invertovány Start a Stop bity. Takže, aby procesor mohl komunikovat s PC je potřeba převodník komunikace například MAX232. No jenže je tu další problém. Dnes už běžné počítače nedisponují komunikačním portem RS232. Proto bylo zvoleno USB. To má oproti RS232 několik celkem zásadních výhod, které se pro Arduino výborně hodí. Jednou takovou je možnost přímo skrze USB napájet připojené zařízení. USB je opět sériové rozhraní, ale podstatně složitější než UART a oproti UARTu brutálně rychlé. Takže, opět je potřeba nějaký převodník, který dokáže převést komunikaci z UARTu na USB. Těchto převodníků je velké množství a patří mezi ně i tebou odkázaný CH340G (C). Tento převodník se hojně používá na Čínských klonech Arduino desek a je za tím poměrně zajímavý příběh, proč tomu tak je. Osobně tento převodník používám skoro ve všech mích konstrukcích, kdy potřebuji možnost propojit procesor s počítačem skrze USB.
Ten první odkaz je celkem pro mne zajímavý. Jde o procesor , který má HW USB port. Jde o verzi z rodiny U, jako je ATMEGA32U4, který je použit v Arduino Micro. Originální Arduina používají jako převodník USB procesor ATMega8U2, což má pár výhod, ale je to o něco dražší a navíc to vyžaduje mít vybavení k naprogramování tohoto procesoru.
Takže závěrem pro tebe je optimální použít USB převodník CH340G. To jak se to zapojí je jednoduché protože se to propojí s HW UART portem s piny TX a RX. Samozřejmě je nutné tyto vývody mezi procesorem a USB převodníkem překřížit. Vždy musí být zapojeno i GND, aby procesor a USB převodník byly na stejném potenciálu, pokud jsou oba napájeny vlastním napětím.

PS: Konkrétní použití USB převodníku CH340G a procesoru najdeš třeba v mé konstrukci CNC řízení GRBL Board: https://www.sakul.cz/grbl-board/n/
INFO:
Sakul WORLD: www.sakul.cz/
Sakul YouTube: www.youtube.com/user/sakulraider

Možnost příspěvku (Donate):
Patreon: https://www.patreon.com/sakul
PayPal: SakulRaider@seznam.cz
BU: 670100-2208863541/6210
Uživatelský avatar
Sakul
Administrátor
Administrátor
 
Příspěvky: 1542
Věk: 41
Registrován: úte 30. bře 2010 18:13:08

Re: Arduino a USB připojení

Příspěvekod ulitej » stř 02. čer 2021 14:51:46

Děkuji za odpověd a dovolím si ještě trochu požádat o konsultaci s ohledem na použití IO 340 .
Snažil jsem se pochopit (snad správně) tvoji konstrukci GRBL a jestli to je správně tak komunikace z CH340 probíhá pouze z pinu 13 přes kondenzátor C16 na pin 29 ?

Můj problém bych měl případně řešit při použití CH340 tak , že bych piny (CH340) 2 a 3 přes odpory 1k spojil s piny RX a TX příslušné arduino desky a tady se nějak zasekávám co mám udělat s pinem 13?
Jinak mi dorazily DPS pro ten převodník s ATMEGA 8 U2 a tak jsem bohužel zjistil , že tento Atmel je opravdu o hodně cenově výše než ta CH340 a co více hůře sehnatelný a tak asi zůstanou v šupliku nebo nejde jen zaměnit třeba za 16 U 2 ?
No mám ještě další otázky v hlavě a to k ledkám které indikuji komunikaci TX/RX - toto jsi na tvé desce GRBL neřešil - je totak ?

Teď jsem dohledal zapojení kde jsou ty piny 2/3 vedeny přes odpor až na 328 a tím mám zase větší zmatek ve svých "znalostech" vůči tvému GRBL https://forum.arduino.cc/t/arduino-nano ... tic/626989 ale zase vidím ty ledky na které jsem se trochu zeptal :D
Uživatelský avatar
ulitej
Pokročilý
Pokročilý
 
Příspěvky: 106
Registrován: ned 13. led 2019 13:34:31

Re: Arduino a USB připojení

Příspěvekod Sakul » stř 02. čer 2021 23:20:20

Právě že nikoli. Komunikace z CH340 neprobíhá přes pin13, to je pouze reset procesoru pokud je třeba například automatizovaně aktualizovat firmware (pokud obsahuje procesor bootloader). Pro komunikaci jako takovou to nemá vůbec žádný vliv. Komunikace probíhá přes piny 2 a 3 (TX a RX). Na tom schématu (Arduino NANO) z tvého odkazu je to ještě přehlednější, i když je to zapojené naprosto stejně jako v mém zapojení GRBL v2.
INFO:
Sakul WORLD: www.sakul.cz/
Sakul YouTube: www.youtube.com/user/sakulraider

Možnost příspěvku (Donate):
Patreon: https://www.patreon.com/sakul
PayPal: SakulRaider@seznam.cz
BU: 670100-2208863541/6210
Uživatelský avatar
Sakul
Administrátor
Administrátor
 
Příspěvky: 1542
Věk: 41
Registrován: úte 30. bře 2010 18:13:08

Re: Arduino a USB připojení

Příspěvekod ulitej » čtv 03. čer 2021 9:32:49

Děkuji a jak jinak to napsat sypu se popel na hlavu :-) přehlédl jsem, že opravdu na pinech 2 a 3 ve schématu je změna barvy na úroveŇ vrstvy NET (snad je to správně) a kdybych šel do návrhu .brd tak bych to tam viděl.
Uživatelský avatar
ulitej
Pokročilý
Pokročilý
 
Příspěvky: 106
Registrován: ned 13. led 2019 13:34:31


Zpět na Arduino


  • Advertisement

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník