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

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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.