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

[Atmega32] - [C AVR] RS232, brak ciągłości w transmisji

chemik143 17 Lis 2012 11:21 1026 2
REKLAMA
  • #1 11538701
    chemik143
    Poziom 12  
    Witam

    Zestawiłem następujący układ: Dwie Atmegi32, wyjścia portów A,B,C podpięte do diodek. Atmega jest połączona poprzez MAX232 z porem COM komputera. Kwarc 16MHz, zmierzone napięcia są idealne (5V), całość na płytce stykowej.

    Problem jest następujący: Podczas wysyłania kolejnych 16-bajtowych ramek danych przez komputer, po jakimś czasie (czasem po jednej sekundzie czasem po 30 sekundach) rozjeżdża się ramka danych. Dodam, że taki sam problem miałem wcześniej z inną atmegą32 kiedy komunikacja odbywała się ze sterownikiem PLC bez MAXa.

    Podłączyłem u kolegi wyjście z maxa (w kierunku RXa mikrokontrolera) do oscyloskopu. Gdy przewód od maxa do procka jest odłączony widzimy ładny prawidłowy przebieg. Jednak gdy podłącze przewód chociażby do jednego z procesorów widzę, że podczas wysyłania danych linia prawie wogóle nie jest ściągana do masy (napięcie opada najwyżej o kilka %). Całość zachowuje się tak, jakby był włączony jakiś mocny pull-up.

    W pierwszej kolejności myślałem, że źle ustawiony jest port D, jednak to nie prawda. Poniżej wklejam kod źródłowy:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Bardzo proszę o pomoc, z problemem zmagam się już od miesiąca.
  • REKLAMA
  • #2 11544423
    dondu
    Moderator na urlopie...
    chemik143 napisał:
    Podłączyłem u kolegi wyjście z maxa (w kierunku RXa mikrokontrolera) do oscyloskopu. Gdy przewód od maxa do procka jest odłączony widzimy ładny prawidłowy przebieg. Jednak gdy podłącze przewód chociażby do jednego z procesorów widzę, że podczas wysyłania danych linia prawie wogóle nie jest ściągana do masy (napięcie opada najwyżej o kilka %). Całość zachowuje się tak, jakby był włączony jakiś mocny pull-up.

    Programu nie analizowałem - pokaż schemat.
  • #3 11545850
    chemik143
    Poziom 12  
    Problem rozwiązany. Przepelnienie stosu.

    Trochę uprościłem strukturę programu i hula aż miło.

    Zamykam.
    Dar.El
REKLAMA