logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak nawiązać komunikację ATmega169 z komputerem przez USB lub port szeregowy?

lukeuk 28 Lut 2008 17:36 2168 7
REKLAMA
  • #1 4855632
    lukeuk
    Poziom 10  
    Posty: 29
    Pomógł: 1
    Witam,

    Jest to moj pierwszy post na tym forum wiec witam wszystkich serdecznie [uklon].
    Znudzony programowaniem wysoko poziomowym zainteresowalem sie elektornika i mikrokontrolerami. Posiadam ATmege169, ktora ucze roznych stuczek :D Rzecz, ktora naprawde mnie interesuje jest nawiazanie komunikacji z komputerem. Najlepiej by bylo za posrednictwem USB ale to chyba wymaga dodatkowego nakladu pracy w pisanie sterownikow, wiec moze byc port szeregowy na dobry poczatek. Nie bardzo potrafie sobie wyobrazic jak synchronizowac komputer z kontrolerem aby potrafily przesylac sobie bity. Czy mogli byscie podac mi jakies linki do materialow jak 'dogadac' ze soba oba urzadzenia po USB i ewentualnie COMach.

    Dziekuje.
  • REKLAMA
  • #2 4855698
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    Nic nie trzeba synchronizować jak sama nazwa wskazuje jest to transmisja asynchroniczna. Na poczatek napisz programw PC który oczekuje na odebranie znaku i ewentualnie go wyswietla. Z drugiej strony spróbuj wysłac za pomocą atmegi dowolny znak na początek moze byc jeden na stale zdefiniowany. Nie zapomnij dopasowac sie do PC czyli musisz dac conajmniej jeden tranzystorek albo Maxa. Potem zrobisz to w drugą stronę jak ci sie uda nawiazac komunikacje to juz z górki bedzie. Oczywiscie pomijam takie sprawy jak ustawienie tej samej BODologii:)
  • REKLAMA
  • Pomocny post
    #3 4855711
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 4855726
    lukeuk
    Poziom 10  
    Posty: 29
    Pomógł: 1
    Co do synchronizacji mialem na mysli skad Pc wie, ze wysylany bit jest 0. jesli komunikacja odbywa sie za pomoca 0/5V (chyba, ze mi sie tylko wydaje)
  • Pomocny post
    #5 4855766
    Konto nie istnieje
    Poziom 1  
  • #6 4857144
    asembler
    Poziom 32  
    Posty: 2099
    Pomógł: 123
    Ocena: 11
    A praktycznie dziala na poziomach 0-5V
  • #7 4857448
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    No właśnie uarty trzeba ze soba synchronizować. Czyli trzeba ustawić im jednakową prędkość aby miały identyczne przedziały czasowe w ramce.
  • REKLAMA
  • #8 4857557
    romsik
    Poziom 15  
    Posty: 116
    Pomógł: 5
    Ocena: 8
    i do tego jeszcze taka sama ilość bitów stopu i rodzaj parzystości lub jej brak

Podsumowanie tematu

✨ Dyskusja dotyczy nawiązania komunikacji mikrokontrolera ATmega169 z komputerem przez USB lub port szeregowy. Komunikacja szeregowa opiera się na transmisji asynchronicznej, gdzie nie jest wymagana synchronizacja bitów, lecz zgodność parametrów transmisji po obu stronach, takich jak prędkość transmisji (baud rate), liczba bitów stopu oraz parzystość. Do realizacji połączenia z komputerem konieczne jest zastosowanie układu konwertera poziomów, np. MAX232, który dostosowuje sygnały TTL mikrokontrolera do standardu RS232C. Transmisja RS232C odbywa się w ramkach, które zaczynają się od bitu startu (logiczne 0), a linia w stanie spoczynku utrzymuje stan logicznej jedynki. Czas trwania bitów jest ustalony i odbiornik próbuje je odczytać na podstawie próbkowania linii danych. Połączenie USB wymaga dodatkowego nakładu pracy, w tym pisania sterowników, dlatego na początek rekomendowane jest użycie portu szeregowego. Do testowania komunikacji można wykorzystać program HyperTerminal w systemie Windows. Wskazano również, że poziomy napięć w praktyce dla RS232C mogą wynosić 0-5 V, mimo że standard teoretycznie przewiduje ±15 V.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA