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

ATmega8 i USART na MAX232

as124 19 Mar 2007 19:31 6945 5
  • #1 19 Mar 2007 19:31
    as124
    Poziom 14  

    Witam.
    Chciałbym połączyć PC z ATmega8 przy pomocy kości MAX232 jednak nie jestem pewien czy robie to poprawnie. MAX posiada 2 "zestawy" do tej komunikacji? W datasheet ATmegi pisze, że wystarczy użyć 2 linii natomiast ile ma odchodzić z MAXa do RS w komputerze? Czy tak jest dobrze? (przepraszam za jakość rysunku) Same układy są zasilane prawidłowo (wraz z kondensatorami).

    0 5
  • #2 19 Mar 2007 20:25
    Jj_Johnys
    Poziom 21  

    witam. Połączenia są poprawne. Musisz tylko jeszcze połączyć masy komputera i układu z megą. Na gnieździe RS232 masa jest na pinie 5. dodatkowe sygnały musiałbyś wyprowadzać gdybyś chciał sterować przepływem.

    0
  • #3 19 Mar 2007 21:00
    as124
    Poziom 14  

    Jestem kompletnie zielony w tego rodzaju transmisji :( . Potrzebuje komunikacji dwustronnej tzn. z PC do uP i z uP do PC. Przesyłane będą dane w porcjach 2 bajtowych. Pytanie czy takie połączenie umożliwi mi komunikacje na zasadzie zgłoszenia przerwania w PC gdy "coś wpiszę do rejestru nadawczego uP?

    0
  • #4 19 Mar 2007 21:01
    mirekk36
    Poziom 42  

    Witam,

    kolego jeśli chcesz zrobić to dobrze i używać w najprostszej wersji RS232 to zrób to wg tego schematu dokłanie. Zwróć uwagę na połączone piny w gniazdku DB9 - tzn 6 i4 oraz 7 i 8.

    ATmega8 i USART na MAX232

    tylko wartości kondensatorów mogą być mniejsze od 1uF do 4,7uF

    taki układ zawsze będzie ci ładnie działał

    co do pytania o przerwanie w PC:

    otóż jeśli zaprogramujesz swój uC tak aby wysłał jakieś dane (obojętnie jaka paczka) to trafią one do układu odbiorczego w PC. Tylko co po stronie PC będzie u ciebie odbierało te dane? - twój własny program? - jeśli tak to oczywiście, że można go tak napisać aby odbierał je hmmm no może nie w przerwaniu ale w wątku - zależy jak i w czym programujesz na PC oraz jak dobrze znasz się na pisaniu programów na PC.

    Podobnie z danymi wysyłanymi z PC do uC. Jeśli komputer coś wyśle to można w uC użyć przerwań aby odebrać dane.

    na początek w celach testowych możesz wysyłać z uC jakieś proste łańcuchy tekstowe zakończone znakiem ENTER i obserwować sobie w jakimś programie typu terminal co ci przylatuje do PC tak aby dopracować program na uC

    pozdrawiam

    0
  • #5 19 Mar 2007 21:34
    as124
    Poziom 14  

    Sam mikrokontroler jest mniejszym problemem. Tyle, że preferuje asembler a na PC , program także będzie pisane przeze mnie, z konieczności program będzie w C++ Builder (którego praktycznie nie znam:( - ale to już inny problem, który będzie trzeba rozwiązać). Dzięki za schemat poprawię wtyczkę. Poprostu nie chciałem zaczynać ze złym układem. Natomiast jak jeszcze wysyłać i odbierać dane w PC cóż problem stoi przede mną otworem:/. Może jeszcze pytanie dla zorientowanych, jest sens szukać jakichś gotowych procedur w internecie? Można takie coś znaleźć? Chociaż w celu edukacyjnym, gdyż program itak muszę potem znać w całości sam.

    0
  • #6 19 Mar 2007 21:41
    mirekk36
    Poziom 42  

    dla Delphi jest taki komponent w necie jak ComPort ale zdaje mi się, że dla C++ Bulider również (poszukaj na sourceforge.net - na pewno znajdziesz). Tak więc na początku zamiast pisać całkowicie samemu obsługę RSa na PC można skorzystać ze sprawdzonego gotowca. Ja go często na szybko używam pod Delphi. Ten pakiet komponentów ma ładne dodatki które w kilka chwil pozwalają zrobić sobie fajną obsługę RSa. zarówno wysyłanie jak i odbieranie. (w pakiecie, który zassiesz są gotowe przykładowe aplikacje na podstawie których szybko można załapać o co chodzi)

    pozdrówka

    0