Skocz do zawartości

Pętla zwrotna RX-TX nie działa


Kucharskov

Pomocna odpowiedź

Hej mikrokontrolerowe świry!

Potrzebuję konwertera USB2TTL/USB2Serial/USB2UART (różnie to zwą) na gwałt, a zanim przyleci do mnie konwerter z aliexpress to zniosę jajo. Doczytałem, że w moim klonie Arduino Uno wystarczy pin RES zewrzeć z GND by płytka służyła jako ów konwerter. Aby przetestować otrzymane cudo zaleca się zewrzeć również pin RX z TX i odpalić nasłuchiwanie w PuTTy na odpowiednim porcie. Klikając litery na klawiaturze powinny się one pojawiać w konsoli. Brak liter oznacza, że coś jest nie halo z konwerterem.

I tu następuje kilka pytań: Czy to co wyżej opisałem po przewertowaniu internetu to prawda? Co może być przyczyną problemów z "konwerterem"? Czy to wina że jest to klon Arduino? Czy coś się mogło pozmieniać i poradniki się zdezaktualizowały?

Edit: Warto zaznaczyć, że diody RX i TX mrugają podczas klikania w PuTTy jak gdyby coś się tam przesyłało. Ale wciąż jednak brak znaków 😕

Z góry dzięki za odpowiedź!

Edytowano przez Kucharskov
Link do komentarza
Share on other sites

Jak masz klona z CH340 to pętla może nie działać. Ale podłączenie resetu lub nawet wgranie czystego szkicu, tak by piny RX/TX zostały wejściami, umożliwia wykorzystanie jako konwertera UART. Oczywiście tutaj wyjątkowo podłączasz TX-TX i RX-RX, bo pin RX UNO jest pinem TX konwertera.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Jeśli zwarłeś do masy RESET głównego procesora (M328), to pozostały przy życiu interfejs CH340 nadal działa. Świadczy o tym diodka TX - odbiór znaków z USB. A mrugająca jednocześnie RX oznacza działające zapętlenie więc układ także coś nadaje do PC. Ja bym poszukał bardziej w ustawieniach terminala. A czy jeśli na to samo UNO wgrasz jakiś program używający UARTa to masz poprawną komunikację w obie strony na tych samych ustawieniach PuTTY? Zacznij właśnie od tego.

https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2FU%2FUNO_R3(CH340G).pdf

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Zrobiłem próby z UNO z CH340 i pętla nie działa, ale oczywiście przesyła do innego UARTA jak opisałem. W takim samy ustawieniu konwerter FTDI pętla działa w Putty i terminalu Arduino, CH340 nie działa w obu, również przy wyłączonym flow control w Putty. Także to raczej chodzi o CH340.

  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

"Także to raczej chodzi o CH340"

Ruski wniosek. Jaka to magia zachodzi gdy CH340 odbiera znaki z obcego UARTu taka, że ten sam scalak nie umie ich odebrać (i dalej wysłać przez USB) z własnego? Panowie, trochę zdrowego rozsądku proszę. Jest oczywistym, że tego typu układ może być zapętlony i znaki wysłane po USB także po USB będą wracać.

https://learn.sparkfun.com/tutorials/serial-basic-hookup-guide/all

Jeżeli to samo UNO (z CH340 na pokładzie) daje się przez USB programować to znaczy, że transmisja działa w obie strony także na poziomie UARTa. A jeżeli trywialne zapętlenie TX/RX nie zwraca tych samych znaków, to już bardziej upatrywałbym problemów w rzeczach podłączonych do tych linii. Upewnijcie się, że rzeczywiście główny procesor stoi w RESET i że nie zwieracie tej linii za kondensatorem. Czy jest coś jeszcze podpięte do pinów RXD/TXD tej płytki? Czy jest ktoś w stanie podejrzeć oscyloskopem te sygnały?

Link do komentarza
Share on other sites

@Kucharskov  przeczytaj więcej niż 1 linijkę, co?

Magia nie magia. Mam MEGA z Atmegą 16U i pętla działa, mam również konwertery USB/UART z chipami FTDI, CH340 (i parę innych)  i oczywiście pętla  działa. W UNO i NANO z CH340 nie działa. Magia może się nazywać HALF DUPLEX.  Nie wiem czemu Kucharskov wyciągnął błędne wnioski. Nie działa tylko test pętli.

DZIAŁA JAKO KONWERTER USB-UART, przecież nikt tego nie używa  w pętli! 

@marek1707, pofatygowałem się i sprawdziłem, na kilku terminalach, w różnych ustawieniach, opisałem, zrób to samo i opisz wnioski. Teoretycznie spodziewałem się uzyskać taki efekt jak Ty oczekujesz w sprawnych płytkach. Wszystkie testy na prędkości 115200. 

Link do komentarza
Share on other sites

Problem nie wynika z działania CH340, ale samego projektu płytki, czyli tego prawie-arduino. Testowałem na dwa sposoby - podłączając analizator logiczny do RX/TX oraz brutalnie zwierając piny 2 i 3 CH340.

Jeśli zewrzemy 2 i 3, loopback działa pięknie, na terminalu pojawiają się wysłane znaki i nawet procka nie trzeba resetować - niewiele może popsuć.

Okazuje się, że projekt jest dość ciekawy - szeregowo z RX oraz TX są podłączone rezystory 1k - to w sumie dobrze, bo nigdy nie wiadomo co użyszkodnik podłączy i zewrze. Z drugiej strony mamy też diody sygnalizujące transmisję - one też mają 1k rezystor oraz podciągnięcie do 5V. Ktoś to sobie policzył i mu wyszło, że taki dzielnik (dwa rezystory i LED) zadziała. Niestety jak robimy loopbacka, to mamy dwie diody równolegle i już przestaje działać.

Wniosek jest taki, że trzeba czytać schemat płytki, sama komunikacja powinna działać - a jeśli nie to najlepiej wywalić diody lub rezystory. No chyba że chcemy się loopbackiem bawić, a wtedy najlepiej zwierać piny 2 i 3.

  • Lubię! 2
Link do komentarza
Share on other sites

(edytowany)

Moje wnioski, że "nie działa" wynikają z tego, że potrzebuję konwertera do wgrania bootloadera na płytkę BluePill z STM32F103 na pokładzie. Podpinam poprawnie zasilanie oraz RX i TX Arduino-Konwertera do STM32. Niestety program firmy STMicroelectronics - Flash Loader Demonstrator nie umie poprzez taki Arduino-Konwerer nawiązać połączenia z płytką pomimo poprawnego podpięcia i odpowiedniego poustawiania zworek.

Widzę, że temat dla Was ciekawy, to może wspólnymi siłami udałoby się wgrać bootloader do tego STMowego ustrojstwa?

Edit @Elvis ma przeświętą rację - zwarłem na prędce 2 i 3 pin układu opisanego na płytce jako CH340G i znaki zaczęły pojawiać się na konsoli!

Edytowano przez Kucharskov
Link do komentarza
Share on other sites

Nie jestem orłem z elektroniki ale zmierzyłem napięcie RX - GND i TX - GND i są w okolicach 4.9 - 4.7 V. Kontroler zaś zgodnie z opisem dostępnym na obrazku pokazuje, że piny RX i TX są "5V tolerant" - PA9 i PA10.

 Bluepillpinout.gif

Link do komentarza
Share on other sites

Fakt, może to była zła podpowiedź 🙂 W każdym razie widać, że dzielniki przy diodach były policzone na określone warunki pracy - stąd moje pierwsze skojarzenie, skoro 3.3V to może dzielnik już nie działa poprawnie.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.