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: 117
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: 1752
Věk: 44
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: 117
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: 117
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: 1752
Věk: 44
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: 117
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: 1752
Věk: 44
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: 117
Registrován: ned 13. led 2019 13:34:31

Re: Arduino a USB připojení

Příspěvekod ulitej » čtv 18. dub 2024 9:03:21

Tak pomalu po třech letech se zkusím zase na něco zeptat , ale nejdříve moc zdravím.
V současné době se vyskytují na modulech Mega2560 Pro jen IO CH340 a je tento problém , že jsou nějak nedokonalé a vizuelně prý jsou poznat tak , že nemají na sobě ten nápis CH340.
Zajímavé je to , že v normálním stavu při použití SW Arduino IDE je možné s modulem komunikovat a nahrát do něj příslušné INO. Pokud se ovšem tento modul použije s programem v mém případě MobiFlight (verse 10.2.2) tak tento modul není detekován .
Mám tedy dvě otázky - nevíš co je v tom CH340 uloženo ? (nevím jak to napsat) a za druhé myslíš když zkusím ten CH340 vyměnit za ten s popisem tak to bude třeba potom funkční. Bohužel ho nemám v šuplíku a tak to řeším v této teoretické úrovni.
S pozdravem i všem ostatním čtenářům lada
Uživatelský avatar
ulitej
Pokročilý
Pokročilý
 
Příspěvky: 117
Registrován: ned 13. led 2019 13:34:31

Re: Arduino a USB připojení

Příspěvekod Sakul » čtv 18. dub 2024 16:01:48

Ahoj.
Na základě mojí zkušenosti s CH340 musím říct, že se jedná o nejspolehlivější čip v této cenové kategorii a v životě jsem s ním problém neměl. Osobně používám CH340G a postupně přecházím na variantu C, která je o něco vylepšená a nepotřebuje prakticky žádné podpůrné součástky jako je třeba krystal. V současnosti jsou na trhu i další varianty i v jiných pouzdrech, kde mě velice zaujala varianta E a hlavně pak velice úsporná varianta N.
V první řadě je nutné si uvědomit jednu věc. Tento čip je převodník USB-TTL. Což je zcela samostatně funkční čip vyžadující pro svoji funkci ovladač (Windows, Linux atd). Pokud je použit a nainstalován správný ovladač a pokud aplikace jež přes tento ovladač přistupuje k danému čipu nevyžaduje nějaké speciální funkce, ale čistě jen komunikaci přes RX/TX kanály, musí daná aplikace bez problému fungovat. Problém může nastat pokud se ještě navíc používá řízení DTR nebo RTS. Tam již mohou nějaké problémy nastat. U Arduina jde hlavně o funkci vyvolání resetu MCU v případě programování. Jinak u Arduina se nic jiného nepoužívá, takže by to na funkčnost nemělo mít vliv.
Samozřejmě různé klony Arduina používají různé čipy pro komunikaci USB/TTL a velmi často to bývá právě nějaká varianta čipu CH340x. Pokud tvůj program nevidí ovladač tohoto čipu přestože systém ho vidí a ostatní programy s ním normálně fungují (Arduino IDE) pak je nejspíš chyba v daném programu (Zde je nutné upozornit na to že v jednu chvíli může být k ovladači připojen jediný program a program který by se připojoval jako druhý bude hlásit chybu, ale opět pokud je správně napsán měl by napsat že nemá přístup protože zařízení používá jiný program). Ovšem ani pak není vůbec nic ztraceno neb si stačí vyzkoušet s kterým čipem tvůj program funguje a ten použít pro rozhraní mezi USB a Uartem tvého MCU (ATMEGA2560 nebo jiný) Tyto převodníky se prodávají jako malé samostatné desky a propojení s Arduino deskou potažmo MCU je extrémně triviální a na netu jsou miliardy obrázků jak to propojit:
https://www.hackster.io/LithiumION/ardu ... 40n-8418d3
Ovšem pokud to číňani hodně posraly bejvá dobré ten původní čip vyhodit.
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: 1752
Věk: 44
Registrován: úte 30. bře 2010 18:13:08

Re: Arduino a USB připojení

Příspěvekod ulitej » úte 23. dub 2024 13:07:10

Děkuji za odpověď , jestli jsem správně pochopil tak dáváš možnost nefunkčnosti za problém s programem jak je napsán. Přesně i to si já trochu myslím , že to je jedna možnost , ale autor (autoři) si toto asi nemyslí. Já ovšem ano a to jen na základě takového pokus omyl zkoušení . Vezmu ten modul a připojím ho na starou cca 3 roky starou versi a tam ten program idenfikuje desku jako MEGA2560 a jde do ní nahrát požadovaný FW - tu samou desku připojím na nejnovější versi programu a tam se identifikuje jen jako COMPAKTIBILNI a FW ovšem hlásí při nahrání ERROR .
Tuto závadu autoři toho FW co se má nahrát ovšem definují jako problém kopírovaných IO které nejsou zpravidla potisknuty nápisem CH340 a nějak vice to neřeší a odkážou na koupi modulu od jiného asi spolehlivějšího výrobce.
Nějak jsem nepochopil radu v tvém druhém odstavci - Modul rozhraní USB s CH340 mám v šuplíku (dva kusy prostě tyto věci musí být doma) - ale po pravdě jak to připojit na modul MEGA2560 pomocí UART zatím nevím neboli vůbec jsem nezjišťoval.
Tedy mohl bys poradit o které dva piny se na modulu s 2560 jedná.
Jinak po tomto pokusu bude následovat zcela určitě i fyzická výměna CH340 a uvidím jestli modul bude funkční a nebo né , ale to jsou prostě ty věci které toto naše hraní nese sebou. Zdravím lada :-)
Uživatelský avatar
ulitej
Pokročilý
Pokročilý
 
Příspěvky: 117
Registrován: ned 13. led 2019 13:34:31

Re: Arduino a USB připojení

Příspěvekod Sakul » úte 23. dub 2024 13:29:19

Zdar,
trochu by mě zaráželo, že by číňan kopíroval zrovna čip CH340, když je to vlastně jeho vlastní čip, který vznikl jako levná varianta k dražším čipům, které skutečně kopíroval a jejichž výrobce se nasral a přidal do ovladače funkci, která tyto klony pozná a znemožní jejich funkci. Jenže to se chová úplně jinak a chybu hlásá už sám operační systém (tuším chyba 10 v ovladači). Sice to jde obejít, ale je to trochu složitější. Takže je sice možné že číňan zkopíroval číňana, ale trochu mi to nedává smysl.
Bohužel desek s MCU 2560 existuje asi miliarda, takže pokud sem nedáš nějakou dokumentaci od té konkrétní desky nelze poradit kam převodník připojit.
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: 1752
Věk: 44
Registrován: úte 30. bře 2010 18:13:08

Re: Arduino a USB připojení

Příspěvekod ulitej » čtv 25. dub 2024 20:17:52

Ahoj , tak jsem si bláhově myslel , že případná odpovět právě k tomu MCU 2560 by mohla být třeba - připojíš na tyto dva piny - pokud jsou vyvedeny na pin na DPS a asi to není tak jednoduché.
Jedná se o tento modul který se prodává i u nás třeba tímto eshopem:
https://www.laskakit.cz/mega-2560-pro-m ... u--ch340g/

Zkoušel jsem dohledat celkové zapojení modulu , ale nacházel jsem jen odkazy na katalogový lict pro 2560.
Pokud není žádná jednoduchá rada tak potom nažhavím pájku a bude přeskočen ten zkušební krok s usbpřevodníkem , který jsem chtěl vyzkoušet opravdu více méně ze zvědavosti jestli jde takový modul zachránit či zjistit a potvrdit závadu v převodníku na úrovni vstupu s CH340 na daném modulu.
Uživatelský avatar
ulitej
Pokročilý
Pokročilý
 
Příspěvky: 117
Registrován: ned 13. led 2019 13:34:31

Re: Arduino a USB připojení

Příspěvekod Sakul » čtv 25. dub 2024 23:27:25

Tak tyto moduly znám a sám jich pár mám. Dělají se minimálně ve dvou variantách a to s USB a bez něho. Převodník USB jež je integrován je připojen na piny RX a TX (0 a 1) viz přiložené foto. Takže tam lze připojit i případný jiný převodník.
Přílohy
Mega-2560-Pro-Pinout.jpg
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: 1752
Věk: 44
Registrován: úte 30. bře 2010 18:13:08


Zpět na Arduino


  • Advertisement

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků