Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino Nano konwerter CH340G - Arduino Nano CH340G przez serial

greg161 31 Sty 2016 14:17 1458 16
  • #1 31 Sty 2016 14:17
    greg161
    Poziom 7  

    Próbuję uruchomić komunikację Arduino Nano do komputera przy wykorzystaniu pinów cyfrowych 0 i 1 jako serial rx i tx. Te porty mam podłączone do konwertera CH340G wpiętego poprzez USB do komputera na którym mam zainstalowanego Linuxa (Ubuntu 15.10). Konwerter jeest bez problemu rozpoznawany przez Linuxa i jak na nim zewrę TX i RX to widzę, że komunikacja działa. Jeżeli Arduino podłączam bezpośrednio po kablu USB (wykorzystuję wbudowany konwerter na Nano) to bez problemu działa programowanie oraz komunikacja z komputerem przez serial. Jednak jak podłączam Arduino do konwertera wpiętego w komputer to działa tylko przesyłanie z Arduino do komputera , natomiast przesyłanie z komputera do Arduino nie daje żadnego efektu. Mam takie dwa konwertery oraz kilka Arduino , podmiany sprzętu też nie dają efektu.

  • #2 31 Sty 2016 16:30
    BlueDraco
    Specjalista - Mikrokontrolery

    A my mamy zgadnąć, jaki błąd popeąniłeś przy podłączeniu?

    Z tego, co piszesz, wynika, że sam USB-UART działa, a nie działa połączenie z Arduino, którym nie chcesz się pochwalić. Jakią masz wersję Arduino też się nie pochwaliłeś.

    Sprawdć napięcie zasilania Arduino, ustala takie samo na przejściówcce. NIE łącz zasilań, tylkpo masy, RXD i TXD.

  • #3 31 Sty 2016 17:20
    greg161
    Poziom 7  

    Moje Arduino:
    http://www.aliexpress.com/item/Smart-Electron...ment-Board-Without-CABLE-for/32376050390.html

    konwerter:
    http://www.aliexpress.com/item/1set-Hot-World...or-STC-PRO-Instead-of-CP2102/32437459891.html

    połączenie analogicznie jak na zdjęciu poniżej dla Pro Mini

    spróbowałęm jak napisałeś podłączyć zasilanie z innego źródła (zasilacz 5V) ale efekt ten sam

  • #4 31 Sty 2016 19:05
    BlueDraco
    Specjalista - Mikrokontrolery

    Plączesz się w zeznaniach - Arduino z linka, który wrzuciłeś, ma na sobie USB-UART i jest zasilane z USB. Na zdjęciu jest arduino bez złącza USB. To jak w końcu jest naprawdę?

  • #5 31 Sty 2016 21:42
    stachn
    Poziom 17  

    Kiedyś też dostałem dw takie konwertery - żaden nie działał. Przez przed wrzuceniem do kosza zrobiłem jeszcze jedna próbę - przez przypadek połączyłem Rx z Rx i Tx z Tx . O dziwo oba zadziałały. Komuś się coś pomyliło i tak zrobił płytki. Na innym forum też spotkałem się z takim opisem. Ale admin wykasował wpis bo uważał że to niemożliwe :D . No cóż - to jego forum i jego prawa.

  • #6 31 Sty 2016 21:58
    greg161
    Poziom 7  

    Zgadza się. Na wbudowanym w Arduino układzie wszystko działa. Jednak chcę podłączyć Arduino docelowo na dłuższym kablu niż kabel USB, dlatego testuję połączenie po RS232 do konwertera na USB. Wszystko podłączone jest wg. schematów z pinów 0 i 1 do konwertera oraz GND i zasilanie (testowałem też bez tego zasilania) i działa tylko komunikacja do komputera, nie działa w drugą stronę, tak jakby Arduino nie reagowało na przychodzącą transmisję.

    Dodano po 11 [minuty]:

    stachn napisał:
    Kiedyś też dostałem dw takie konwertery - żaden nie działał. Przez przed wrzuceniem do kosza zrobiłem jeszcze jedna próbę - przez przypadek połączyłem Rx z Rx i Tx z Tx . O dziwo oba zadziałały. Komuś się coś pomyliło i tak zrobił płytki. Na innym forum też spotkałem się z takim opisem. Ale admin wykasował wpis bo uważał że to niemożliwe :D . No cóż - to jego forum i jego prawa.

    Bawiłem się również z zamianą Tx i Rx , jednak komunikacja w jedną stronę działa więc to nie ten problem.

  • #7 31 Sty 2016 22:59
    BlueDraco
    Specjalista - Mikrokontrolery

    Plączesz jeszcze bardziej. Póki co nie masz żadnego RS232, a co właściwie masz i Ci nie działa, to już kompletnie nie wiadomo. Jeśli zwarłeś linie TXD konwertera wbudowanego w Arduino i tego zewnętrznego i w dodatku połączyłeś plusy zasilań, to chyba prosisz się o kłopoty, zwłaszcza, jeśli Chińczyk zaoszczędził na rezystorze.

  • #8 01 Lut 2016 21:49
    greg161
    Poziom 7  

    No z tym rs232 to poszedłem na skróty, chodziło mi komunikację po serialu. Poniżej schemat połączenia. Działa tylko w jedną stronę. Arduino wysyła do komputera testowy komunikat i to działa , ale z komputera nie potrafię na Arduino odczytać tego co przyszło. Natomiast jak podłączę Arduino do komputera poprzez złącze USB, które jest na nim to ten sam program działa bez problemu. Czyli program jest ok.
    Stąd mój post, może ktoś wykorzystuje ten konwerter w komunikacji z Arduino i ma jakieś doświadczenie, że działa albo , że może to wymaga jakiegoś innego podłączenia.

  • #9 01 Lut 2016 22:10
    BlueDraco
    Specjalista - Mikrokontrolery

    Jeśli na Arduino nie ma rezystora ok. 1k pomiędzy TXD CH340 i nóżką RXD ATmega, to nie może poprawnie działać. W przyzwoitych płytkach ten rezystor jest, w niektórych supertanich go nie ma. Drugi możliwy problem - to ustawienie napięcia na płytce USB-UART - masz tam zapewne zworę albo przełącznik. Jeśli ATmega w Twoim Arduino jest na 5V, to ten przełączenik lub zwora też muszą być w pozycji 5V.

  • #10 01 Lut 2016 22:18
    vania
    Poziom 22  

    greg161 napisał:
    No z tym rs232 to poszedłem na skróty, chodziło mi komunikację po serialu. Poniżej schemat połączenia. Działa tylko w jedną stronę. Arduino wysyła do komputera testowy komunikat i to działa , ale z komputera nie potrafię na Arduino odczytać tego co przyszło. Natomiast jak podłączę Arduino do komputera poprzez złącze USB, które jest na nim to ten sam program działa bez problemu. Czyli program jest ok.
    Stąd mój post, może ktoś wykorzystuje ten konwerter w komunikacji z Arduino i ma jakieś doświadczenie, że działa albo , że może to wymaga jakiegoś innego podłączenia.
    Z tego co kojarzę to na tym Arduino masz wbudowany konwerter USB->UART (FT232 lub też CH340 w klonie). Linia Tx tego wbudowanego konwertera jest podpięta do linii Rx Atmegi. Z zewnątrz podpinasz do równolegle linię Tx zewnętrznego konwertera. Linie Tx konwerterów raczej nie są liniami OC więc jeśli jeden (ten wbudowany wymusza) stan H a drugi (zewnętrzny) stan L to napięcie które się ustali na wyjściu może nie spaść na tyle nisko aby procesor odczytał to jako stan L.

    Dodano po 2 [minuty]:

    Widzę że BlueDraco odpisał wcześniej :)

  • #11 01 Lut 2016 22:23
    stachn
    Poziom 17  

    Dlaczego połączyłeś 5V z przejściówki USB adaptera do zacisku Vin?. Tam się podłącza plus zasilania płytki Arduino Nano ale minimalne napięcie to 7.5 V. Jeżeli podłączasz zasilanie z konwertera to podłączasz pod +5V. Natomiast jak masz zasilanie z USB to tego zasilania podłączać nie wolno - podłączasz tylko masę.

  • #12 01 Lut 2016 22:51
    greg161
    Poziom 7  

    Zmieniłem w Arduino podłączenie zasilania z portu Vin na 5V efekt cały czas taki sam - komunikacja w jedną stronę (Arduino jest zasilane tylko z konwertera). Drugi test to odpiąłem zasilanie z konwertera i podpiąłem zewnętrzny zasilacz ( GND zostało jak na schemacie jedynie odpiąłem zasilanie z konwertera i w to miejsce w Arduino wpiąłem 5V z zasilacza oraz GND do GND w Arduino), efekt identyczny - komunikacja w jedną stronę. Czyli zasilanie jest raczej ok, bo Arduino działa i wysyła komunikaty do komputera , gdzie potrafię je odczytać.

  • #13 01 Lut 2016 23:25
    stachn
    Poziom 17  

    Cały czas sie zastanawiam dlaczego nie korzystasz z "SoftwareSerial" ? Masz przykład w IDE "Software serial multple serial test" . Wykorzystujesz inne piny jako rx i tx i po kłopocie. Np " SoftwareSerial mySerial(10, 11); // RX, TX "
    Jak do tego czasu nie uszkodziłeś płytek to to musi zadziałać.

  • #14 02 Lut 2016 21:20
    greg161
    Poziom 7  

    Próbowałem tego i objawy są identyczne.

  • #15 06 Lut 2016 13:24
    greg161
    Poziom 7  

    Po kolejnych testach okazało się, ze wymieniony konwerter działa z moim Arduino Single-Sided Serial Board (kiedyś coś takiego zmontowałem w ramach hobby), w tej wersji Arduino nie ma żadnego konwertera do USB na płytce i to działa z wyżej wymienionym konwerterem. Tak więc "zgrzyta" pomiędzy tym konkretnym konwerterem a płytkami Arduino, które posiadają już konwerter. Podsumowując powyższy konwerter pewnie będzie się świetnie nadawał do Arduino Mini oraz własnych konstrukcji klonów Arduino, gdzie nie ma konwertera serial-USB.

    Dodano po 40 [minuty]:

    BlueDraco napisał:
    Jeśli na Arduino nie ma rezystora ok. 1k pomiędzy TXD CH340 i nóżką RXD ATmega, to nie może poprawnie działać. W przyzwoitych płytkach ten rezystor jest, w niektórych supertanich go nie ma. Drugi możliwy problem - to ustawienie napięcia na płytce USB-UART - masz tam zapewne zworę albo przełącznik. Jeśli ATmega w Twoim Arduino jest na 5V, to ten przełączenik lub zwora też muszą być w pozycji 5V.

    Przemierzyłem i ten rezystor 1k jest. Napięcia też ustawione na 5V. Problem stanowi zawarty już na płytce Arduino konwerter CH340G, który jest najwyraźniej w konflikcie z konwerterem na USB.

    Dodano po 2 [minuty]:

    vania napisał:
    Z tego co kojarzę to na tym Arduino masz wbudowany konwerter USB->UART (FT232 lub też CH340 w klonie). Linia Tx tego wbudowanego konwertera jest podpięta do linii Rx Atmegi. Z zewnątrz podpinasz do równolegle linię Tx zewnętrznego konwertera. Linie Tx konwerterów raczej nie są liniami OC więc jeśli jeden (ten wbudowany wymusza) stan H a drugi (zewnętrzny) stan L to napięcie które się ustali na wyjściu może nie spaść na tyle nisko aby procesor odczytał to jako stan L.

    I to właśnie stanowi problem. Jedyne rozwiązanie jakie znalazłem to Arduino bez konwertera na pokładzie.

  • Pomocny post
    #16 06 Lut 2016 17:48
    BlueDraco
    Specjalista - Mikrokontrolery

    To jest dokładnie ten sam problem, o jakim pisałem - brak rezystora albo rezystor nie tu, gdzie trzeba. Typ przejściówki nie ma tu NIC do rzeczy - żadna nie zadziała poprawnie przy zwartych dwóch wyjściach.

  • #17 08 Lut 2016 09:34
    greg161
    Poziom 7  

    BlueDraco napisał:
    To jest dokładnie ten sam problem, o jakim pisałem - brak rezystora albo rezystor nie tu, gdzie trzeba. Typ przejściówki nie ma tu NIC do rzeczy - żadna nie zadziała poprawnie przy zwartych dwóch wyjściach.

    Zgadza się. Także problem zdiagnozowałeś, a dla mnie jedynym rozwiązaniem na dziś było użycie klona Arduino bez konwertera na płytce żeby móc wykorzystać serial do komunikacji z włożonym w komputer konwerterem USB.
    Dzięki za pomoc. Na tym temat można chyba zamknąć.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME