Skocz do zawartości

Adapter na CH341 i Arduino Pro Mini


drozdbartek

Pomocna odpowiedź

Witam,
mam taki mały problemik. Kupiłem sobie adapter usb<->ttl/I2C na CH341 oraz Arduino Pro Mini (klon) i mam problem z komunikacją przez Serial. Wiem że się zagapiłem i adapter ten nie ma wyjścia restart i przy programowaniu trzeba wcisnąć przycisk resetu na arduino, ale to nie w tym problem. Kiedy próbuję wysłać jakikolwiek ciąg znaków przez Serial to w konsoli dostaje różne ciekawe znaczki, zazwyczaj o kodzie ASCII większym od 127 (dec). Jakieś pomysły skąd takie cuda?

Link do komentarza
Share on other sites

kod i prędkości są dobre na 100%. próbowałem już z różnymi prędkościami i zawsze jest ten sam efekt.

void setup() {
 Serial.begin(300);
 pinMode(13, OUTPUT);
}


void loop() {
 digitalWrite(13, HIGH);
 delay(200);
 digitalWrite(13, LOW);
 delay(200);
 digitalWrite(13, HIGH);
 delay(200);
 digitalWrite(13, LOW);
 delay(2000);
 Serial.print("a");
}
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

Układ CH341 jest interfejsem zamieniającym USB na kilka możliwych standardów: I2C, UART, ParallelPrinterPort i jeszcze jakieś. W najprostszym przypadku wybór następuje poprzez prawidłowe zezworkowanie odpowiednich pinów układu. W przypadku istnienia na płytce małego EEPROMu konfiguracja pobierana jest z niego. Nie wiem co masz na tej przejściówce, ale na zdjęciu widzę zworki. Aby CH341 działał w trybie UART piny SCL/SDA służace do podłączania EEPROMu konfiguracyjnego muszą wisieć w powietrzu. Może znajdź jakiąś instrukcję do tej płytki lub choćby schemat, przejrzyj ustawienia zworek i ew. popraw.

Jeżeli zmieniasz szybkość interfejsu COM w okienku terminala w PC a przychodzące znaki nie zmieniają się, na 99% nie pracujesz w trybie UART.

EDIT: Jeżeli jednak się zmieniają, pozostaje szybkość zegara procesora. Z jaką częstotliwością rzeczywiście pracuje Twój procek (najlepiej sprawdź programatorem fuse bity) a jak masz ustawioną wartość symbolu F_CPU?

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

Przejściówka pracuje w trybie UART, mogę wgrać program jeśli zrestartuje arduino w odpowiednim momencie. Zachęcony Twoją wypowiedzią zmieniłem prędkości i znaki się zmieniały, lecz nie zgadniecie co się stało. Po zmianie szybkości na 19200 bodów komunikacja zaczęła działać prawidłowo. Ciekawe co jest przyczyną takiego dziwnego zachowania. Jakieś pomysły?

EDIT: niestety nie mam możliwości sprawdzenia tego, mam tylko tą przejściówkę, ale na ten moment już wszystko działa.

Link do komentarza
Share on other sites

Nadal jest problem tylko udajesz, że go nie widzisz. Jeżeli w programie ustawiasz 9600 a terminal pracuje na 19200 i się dogadują to znaczy, że procesor pracuje 2 razy szybciej niż "myśli" kompilator. W związku z tym źle będzie działało wszystko związane z pomiarem czasu, opóźnieniami, prędkościami itd np. transmisje RC5, wszelkie delay'e, UARTy itp. Musisz odszukać w swoim IDE parametr F_CPU i zmienić go na prawidłowy czyli taki, z jakim zegarem naprawdę pracuje Twój procesor. Weź sprawdź, czy pin zmieniany funkcją digitalWrite rzeczywiście mruga dokładnie tak jak mu kazałeś i czy 2000 oznacza 2 sekundy a nie 1.

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.