Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Konwerter USB UART 6 w jednym nie chce działać.

05 Lip 2019 00:12 336 19
  • Poziom 8  
    Od razu piszę, że jestem bardzo początkujący.
    Jakiś czas temu kupiłem konwerter USB UART 6 w jednym. Konwerter USB UART 6 w jednym nie chce działać.

    Przy podłączeniu konwertera Konwerter USB UART 6 w jednym nie chce działać. w ustawieniu USB to TTL (tu link do ustawień zworek) do samodzielnej ATMEGA328PU i wysłaniu dowolnego skeczu, Arduino IDE komunikuje:
    avrdude: stk500_getsync()
    Na maku mam zainstalowany sterownik do CP2102, który bez problemu współpracuje z ESP8266 NodeMcu v.2 otwierając port SLAB_USBtoUART więc nie sądzę żeby problemem był driver. Nie ma też raczej problemu w konfiguracji ATMEGA328, bo bez problemu Arduino IDE ładuje skecze przez konwerter USBASP. Tą drogą wysłałem niezwykle skomplikowany kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    i na konwerterze zapala się co 4 s dioda RX, ale na monitorze czy terminalu wyświetlają mi się krzaczki zamiast napisu. Coś tam więc jednak działa. (Bound rate ustawione na 9600, więc nie dlatego krzaczki;).
    Nie wiem czy dobrze podłączam DTR przez kondensator 10uF z RESET (pin 1), ale czy łączę czy nie, efekt jest ten sam. Kilka razy udało mi się wgrać przez konwerter skecz do Arduino UNO, ale bez podłączonego DTR do RESET. Sam wówczas resetowałem UNO, ale bardzo musiałem się skupić żeby trafić we właściwy moment.;) Nie wiem czy robię coś nie tak, czy kupiłem po prostu wadliwy konwerter. Nie chcę reklamować zanim się nie upewnię czy przypadkiem ja czegoś nie chrzanię. Bardzo proszę o pomoc.
    Mój wpis na blogu w którym zgromadziłem wszystkie dostępne informacje o konwerterze, ustawienia zworek itd.
  • PCBway
  • Poziom 31  
    Kondensator powinien być 100n do arduinowego autoreset. Po każdym użyciu USBASP do wgrania szkicu bootloader musisz wgrać ponownie. Testy poprawności działania UART rób na 115200, z taką prędkością są wysyłane szkice do bootloadera (jest niekorzystna dla 16MHz) i nawet jeśli konwerter działa prawidłowo przy 9600 to przy 115200 już nie musi. A jak działa źle nawet przy 9600 to już lipa. Może kwarc jest niewłaściwy, nie działa, nie przestawiłeś fuse na kwarc zewnętrzny. Te 22pF przy kwarcu na stykówce też mogą tylko przeszkadzać. W nocie katalogowej AVR 22pF to maksymalna wartość, zakres 12-22pF, u mnie działa to bez kondensatorów. Tak że masz parę rzeczy do dopracowania.
  • Poziom 31  
    Zmień kondensator na 100n. Kondensatory 22p zostaw, są ok. Za pomocą usbasp wgraj bootloader a następnie dopiero wgrywaj za pomocą serial, bez bootloadera nie da sie w tym przypadku wgrać programu. Przy wgrywaniu po ISP (usbasp) kasowany jest bootloader.
    Zatem podsumowując, zmień kondensator, wgraj bootloader i powinno działać.

    Pozdr
  • Poziom 8  
    Wgrałem nowy bootloader przez ISP Arduino UNO. Ja robię to w ten sposób, posługując się programem Nick Gammon-a. Inaczej nie umiem. (Chyba, że jest inny sposób żeby przez konwerter USBASP i Arduino IDE albo terminal wgrać bootloader do atmegi328?)
    Zmieniłem kondensator między DTR a RESET ATmegi i jest to samo.
    W sumie idealnie działa mi konwerter USBASP i nim ładuję programy do ATmegi, Attin, Pro mini itp. Konwerter TTL kupiłem żeby ładować programy do ESP8266 z adapterem. Ale
    1. nie wiem czy będzie odpowiedni, bo jak zaczęły się z nim jaja to przeczytałem gdzieś, że CP2102 nie nadaje się do programowania ESP8266, bo ma za niskie prądy czy coś tam
    2. wygląda raczej na walnięty skoro nie chce wgrać programu nawet do oryginalnego Arduino Uno,
    3. Naiwnie myślałem, że będę mógł go wykorzystać jako serial monitor w projekcie opartym na atmega328, nrf24, z kilkoma czujnikami, zasilanymi z baterii. Mam tam usypianą Atmegę, chcę żeby sprawdzała stan baterii w stosunku do referencyjnego 1,1V i potrzebny mi do tego monitor żeby to wszystko ustawić (na przykład odczytać dokładnie to napięcie odniesienia).

    Co do konfiguracji Atmegi, to w kilku projektach mi się sprawdzała i wszystko śmigało, więc nie sądzę żeby w tym był problem. Wydaje mi się, że coś z DTR jest walnięte, skoro manualnie resetując udało mi się kilka razy wgrać skecz do UNO. Sam już nie wiem.
  • Poziom 31  
    Patrze jeszcze na "schemat" z pierwszego postu, reset powinien być podciągnięty rezystorem do 5V a nie do GND.
  • Poziom 8  
    Slawek K. napisał:
    Patrze jeszcze na "schemat" z pierwszego postu, reset powinien być podciągnięty rezystorem do 5V a nie do GND.


    Nie, reset jest dobrze na 5V, źle "podłączyłem" GND z konwertera, ale tylko na schemacie, na płytce jest OK. Atmega328 ładowana przez USBASP sprawuje się dobrze, dioda miga, bootloadery wchodzą, działają. Mam coraz większą pewność, że problem tkwi w konwerterze UART.
    Tak to wygląda teraz:

    Konwerter USB UART 6 w jednym nie chce działać.
  • Pomocny post
    Poziom 31  
    Kup sobie konwerter oparty o FT232 z wyprowadzonymi wszystkimi pinami, to jeden z najbradziej sprawdzonych układów.
    Ja korzystam z tego https://botland.com.pl/pl/konwertery-usb-uart...konwerter-usb-uart-ftdi-ft232rl-wtyk-usb.html - co ważne, ma zworkę dla logiki 5V i 3.3V co się przyda np. w przypadku esp8266.

    Pozdr
  • PCBway
  • Pomocny post
    Poziom 34  
    yarogniew napisał:
    że CP2102 nie nadaje się do programowania ESP8266, bo ma za niskie prądy czy coś tam

    Nic podobnego. Spora część gotowych modułów z ESP8266 czy ESP32 wyposażona jest w konwertery oparte na CP2102.
    Inna sprawa, że same konwertery z CP2102 jest stosunkowo łatwo "ubić", myląc np. wyjścia +5V z GND przy podłączaniu do zewnętrznego układu.

    Jeżeli potrzebny jest Ci dobry konwerter/adapter do ESP8266 to rekomenduję poniższy. Można też go użyć do monitora portu szeregowego w Arduino IDE.
    Na ali ta przejściówka nazywa się: ESP8266 ESP-01/ESP-01S WIFI Module Adapter Download Debug Link Kit
    Wystarczy w wyszukiwarce wpisać: "ESP8266 Download Debug Link"

    Konwerter USB UART 6 w jednym nie chce działać.
  • Poziom 8  
    Dzięki panowie, na wszelki wypadek kupię oba. Znając moje szczęście do konwerterów jeden będzie trafiony;)
  • Poziom 31  
    Z konwerterów UART polecam taki:
    Konwerter USB UART 6 w jednym nie chce działać.
    Układ pinów jest zgodny z płytką Arduino PRO MINI, wystarczy przylutować żeńskie złącze i programować można bez kabelków.
    Oczywiście można programować z Arduino IDE zarówno wykorzystując programator USBASP jak i Arduino as ISP. Jest wiele opisanych problemów i rozwiązań do nich na tym forum. Jeśli masz inny problem to go opisz.
  • Poziom 8  
    kaczakat napisał:

    Oczywiście można programować z Arduino IDE zarówno wykorzystując programator USBASP jak i Arduino as ISP. Jest wiele opisanych problemów i rozwiązań do nich na tym forum. Jeśli masz inny problem to go opisz.


    Generalnie nie mam problemów z programowaniem płytek. Mam dobry programator USBASP i nim programuję ATmegi i mini pro. Jeśli chodzi o ESP8266 to kupuję głównie D1 mini, więc programator zbyteczny. Natomiast jakiś czas temu nabyłem z ciekawości goły ESP8266 z adapterem bez USB i się okazało, że nie mogę go programować przez USBASP. Dlatego zamówiłem ten UART, ale miałem pecha, bo raczej trafiony. Dlatego chętnie skorzystam z podpowiedzi dot. programatora do ESP8266.
    Drugą sprawą jest to, że mam trochę gołych ATmega328PU i używam ich głównie w projektach zasilanych z baterii z oczywistych względów. I przydałby mi się wtedy serial monitor kiedy bawię się kodowaniem. Nie ugryzłem jeszcze tematu monitor szeregowy na ATmega328, jak pisałem jestem dość początkujący, poza tym arduino, inteligentny dom, iot to moje hobby i brak czasu nie pozwala zgłębiać zbyt wielu tematów na raz. Cieszę się, że jest forum elektrody i pomagający ludzie, bo czasem samemu człowiekowi bez doświadczenia i gruntownej wiedzy ciężko w elektronicznym życiu;) Pozdrawiam.
  • Poziom 31  
    USBASP służy tylko do programowania AVR - Atmega, Attiny, koniec. Jak na programator za 10-15zł to i tak świetny wyczyn. Podstawowa kontrola działania konwertera UART-USB wygląda tak: podłączasz zworkę na piny RX/TX, dzięki temu to co wyślesz TX od razu ma wrócić RX, uruchamiasz monitor portu, może być z Arduino lub Putty, wysyłasz ciąg znaków i sprawdzasz czy wraca.
    Niestety akurat z CP2102 mam przynajmniej jeden taki moduł, który taki test przechodzi bezbłędnie, a z żadnym innym modułem dogadać się nie może. Wynika to z tego, że jemu tylko się wydaje, że nadaje z prędkością np. 115200, a na prawdę nadaje z prędkością 120000 (nie pamiętam dokładnie czy za mało czy za dużo, ale było źle). Sam ze sobą się dogaduje bez problemu, bo oczywiście odbiera również z tą samą prędkością. Drugi mam taki, że ma na stałe zwarte TX z RX i też test przechodzi, nawet wysyła bezbłędnie, ale już odbiera tylko swoje echo.
    Żeby coś takiego zdiagnozować musisz mieć analizator stanów logicznych, podejrzysz sobie timingi na magistrali. Oscyloskopem można przeanalizować czy zbocza sygnałów mają odpowiednią amplitudę (np. czy moduł faktycznie działa na logice 3.3V czy 5V) i szybkość przełączania, czy są odpowiednio strome czy sygnał niby jest OK, ale rozmyty i rozciągnięty.
    Kolejną wadą CP2102 jest zużycie prądu, znacznie większe niż np. w CH340. Dlatego dla mnie z tych trzech, o których wspomniałem w tym wątku jest to ostatni wybór (znowu FTDI jest najczęściej podrabiany i też to może sprawić kłopot).
  • Pomocny post
    Poziom 34  
    yarogniew napisał:
    Dlatego chętnie skorzystam z podpowiedzi dot. programatora do ESP8266.

    Ten, który Ci wskazałem w poście #8 jest dedykowany właśnie dla ESP8266. Używam go nie tylko dla modułów ESP-01, ale również do programowania "gołych" ESP-07 czy ESP-12. Umożliwia programowanie z prędkością do 921 600.

    kaczakat napisał:
    Kolejną wadą CP2102 jest zużycie prądu, znacznie większe niż np. w CH340.

    Proszę o wskazanie źródła tej informacji.
  • Poziom 31  
    khoam napisał:
    Proszę o wskazanie źródła tej informacji.

    Możesz mnie cytować.
    Można też zajrzeć do karty katalogowej, typowy pobór prądu w czasie pracy 20 vs 12mA. W Node MCU są użyte oba moduły, w wersji 2 CP2102, w wersji 3 CH340. Pobór prądu przy zasilaniu w trybie deepsleep 9-19 vs 2-3mA (testowałem sporo płytek). To i tak kiepsko, Wemos z CH340 ma 200uA w deepsleep. Oczywiście projekt płytek ma znaczenie, w Wemos najwyraźniej mostek przełącza się w tryb suspended. Jak masz pomysł czemu Node MCU tego nie robi to się podziel.
  • Poziom 34  
    kaczakat napisał:
    Możesz mnie cytować.

    Byłoby to nierozsądne, ponieważ wypisujesz głupoty.

    CH340 pobiera w trybie normalnym max. 30 mA, w trybie suspend max. 200 uA
    CP2102 pobiera w trybie normalnym max. 26 mA, w trybie suspend max. 100 uA
    CP2104 pobiera w trybie normalnym max. 18.5 mA, w trybie suspend max. 200 uA

    kaczakat napisał:
    W Node MCU są użyte oba moduły, w wersji 2 CP2102, w wersji 3 CH340.

    To nie są moduły zaprojektowane do pracy z zasilaniem bateryjnym, więc powoływanie się w tym wypadku na testy na ich "energooszczędność" jest bezprzedmiotowe. Nawet używanie tych modułów w takim charakterze jest moim zdaniem nieporozumieniem.

    Jest wiele gotowych modułów z ESP8266/ESP32 zaprojektowanych do zasilania bateryjnego m.in. WeMos. Wykorzystują one właśnie CP2102 lub CP2104, a nie CH340. Dla przykładu:

    Konwerter USB UART 6 w jednym nie chce działać.
  • Poziom 31  
    Nie odkryłeś mi tu niczego, czego nie było w karcie katalogowej chipów. Przecież napisałem, że chodzi o projekt płytki. Każda wymieniona ma możliwość zasilania spoza USB, niestety z trzech wymienionych płytek prototypowych tylko najmniejszy Wemos działa prawidłowo. No bo jak jakaś nie ma holdera do aku to już tylko z usb? Co z tego, że nie nie są to płytki do zastosowań bateryjnych wg Ciebie, po grzyba ma to zamieniać prąd w ciepło. Oczywiście po takich wynikach płytki z serii NODE MCU się do tego średnio nadają, ale ta z CP2102 w szczególności.
    Karta katalogowa podaje wartości typowe i maksymalne (asekuracyjne, żeby jakiś znawca kart katalogowych się nie przyczepił), co z tego że CH340 ma podane większy max skoro typowo pobiera 4 - 40x mniej w najpopularniejszych na rynku płytkach. Max pobór wynika też z dostępnych prędkości, dla CP2102 1Mbit jest poza zasięgiem, CH340 ma do dyspozycji 2Mbit. Może chip jest zarąbisty, tylko użycie niewłaściwe.
    Zresztą żadnego z nich nie polecam jako nr1, wg mnie najlepszy jest moduł z FTDI. CP2102 nie zdobył popularności jakością tylko ceną. Niestety ESP i FTDI nie idą w parze, ma być tanio, a nawet podróby FTDI wychodzą drożej.
    P.S. A tego Wemosa to oczywiście pomierzyłeś ile pobiera w DEEPSLEEP? Bo ich płytka z CP2102, holderem 18650 do nowszego uC pobiera w trybie uśpienia 12mA, jak zmierzyłeś to pochwal się ile pobiera ten polecany okaz przez Ciebie.
  • Poziom 34  
    kaczakat napisał:
    Kolejną wadą CP2102 jest zużycie prądu, znacznie większe niż np. w CH340.

    kaczakat napisał:
    Przecież napisałem, że chodzi o projekt płytki.


    kaczakat napisał:
    dla CP2102 1Mbit jest poza zasięgiem,

    Przy 921 600 pracuje jeszcze poprawnie.

    kaczakat napisał:
    A tego Wemosa to oczywiście pomierzyłeś ile pobiera w DEEPSLEEP?

    Ten na rysunku z postu #15, ale wersja z ESP32 - 1.5-2 mA w Deep-Sleep.
    Nie dysponuję wersją tej płytki z ESP8266, ale ten prąd powinien być dla niej mniejszy.

    Dodano po 8 [minuty]:

    kaczakat napisał:
    CH340 ma do dyspozycji 2Mbit.

    CP2104 również.
  • Poziom 8  
    Dobra, konkludując to co dotychczas. Ten co mam konwerter zwracam. Do mniej lub bardziej "gołych" ESP8266 kupuję ESP8266 ESP-01/ESP-01S WIFI Module Adapter Download Debug Link Kit, który w poście #8 wskazał khoam. Serial monitor przez UART-USB na projektach ATmega328 na razie odpuszczam, widzę, że prościej będzie podłączyć tymczasowo jakiś wyświetlacz na I2C niż się użerać z konwerterami. Widzę że temat niełatwy, myślałem że wystarczy TX do RX i będzie grało. W obie strony;)
  • Poziom 34  
    yarogniew napisał:
    Serial monitor przez UART-USB na projektach ATmega328 na razie odpuszczam, widzę, że prościej będzie podłączyć tymczasowo jakiś wyświetlacz na I2C niż się użerać z konwerterami.

    yarogniew napisał:
    Drugą sprawą jest to, że mam trochę gołych ATmega328PU

    Kup sobie płytkę Uno z procesorem w podstawce. Będzie najprościej.
    W tej chwili na ali można ją zakupić za ok. 7$ z wysyłką. Wygląda prawie, jak oryginał :)
  • Poziom 8  
    khoam napisał:
    Kup sobie płytkę Uno z procesorem w podstawce. Będzie najprościej.
    W tej chwili na ali można ją zakupić za ok. 7$ z wysyłką. Wygląda prawie, jak oryginał :)


    Ha, mam oryginalne, włoskie Arduino, kupione za sporą kasę niedługo po tym jak się pojawiły. Ale dla mnie to w pewnym sensie świętość i nie chciałem ruszać procesora;) Faktycznie, chińskie arduino to może być najskuteczniejsza alternatywa do debugowania atmegi328.