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

ATMEGA8 - RS-232: Brak transmisji, pojemności przy MAX232, BASCOM/C

dogen kigen 20 Wrz 2012 20:40 4329 21
  • #1 11331417
    dogen kigen
    Poziom 10  
    Mam następujący problem. Muszę stworzyć układ na atmega8 który będzie mierzył napięcie i wysyłał je do kompa przez rs232. Procesor programuje się poprawnie (USBAsp). Jednak transmisja z rs232 nie chce działać. Program wygląda tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Kabel jest TxD<->RxD TxD<->RxD. Zastanawiałem się czy pojemności przy max232 nie są za małe (na forum ludzie stosują czasem po 10 a nawet 22uF) chociaż zastosowałem się do zaleceń producenta. Kompletnie nie mam już pomysłów. Dodam, że sprawdziłem połączenia.

    ATMEGA8 - RS-232: Brak transmisji, pojemności przy MAX232, BASCOM/C
  • #2 11331564
    alien_audio
    Poziom 21  
    Witam.
    Na początek, instrukcja
    Print Hello

    jest nie poprawna
    powinno być

    Print "Hello"
  • #3 11331691
    dogen kigen
    Poziom 10  
    Dzięki za szybką odpowiedź. Zmiana jednak nic nie dała ; / Postanowiłem wypróbować język C i napisałem coś takiego
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Jednak zamiast Hello wyświetlają mi się same krzaki. Jak ustawię Clock na 8000000 to jest to cały czas jeden znak. Jeśli przestawie na to co jest w kodzie to są to różne znaki ale też nie to co chciałbym wyświetlać. Może istnieje jakis błąd w schemacie przy podłączeniu kwarcu?

    Dodano po 3 [minuty]:

    Aha, próbowałem również z baud 19200 jak i 9600 za każdym razem co innego sie wyświetla ale za każdym razem jest to jakiś krzak
  • #4 11331751
    alien_audio
    Poziom 21  
    A czy przypadkiem w procesorze atmega 8
    nie ma w fuse bitach bitu dzielącego zegar przez 8 ?
    Trzeba go wyłączyć.
  • #5 11335993
    dogen kigen
    Poziom 10  
    @alien_audio dzieki za naprowadzenie na dobry trop. Jednak nie chodzi o wyłacznie fuse dzielącego zegar przez osiem (o ile taki istnieje) tylko o właściwe ustawienie fuse bitów CKSEL 3..1 DLa potomnych napiszę tylko, że aktualnie fuse bity mam ustawione tak:
    hfuse: 0b11011001
    lfuse: 0b11101111
    I wszystko działa ok. Pozdrawiam
  • #6 11347884
    dogen kigen
    Poziom 10  
    Problem powrócił. Udało mi się wszystko zaprogramować dokładnie jak chciałem, odłączyłem programator od układu i odkryłem, że przestał transmitować dane przez RS232. Kiedy podłączyłem programator z powrotem układ zaczął wysyłać dane ale tym razem również zniekształcone. Miałem drugą atmege więc zamieniłem, ustawiłem fuse bity i zaprogramowałem ale efekt jest identyczny więc awarie procka można chyba wykluczyć. Tym bardziej, że programuje się ok. Wymieniłem też MAX232, nic to nie dało. Przestawiłem fuse bity na domyślne wartości wyjąłem rezonator kwarcowy i to też nic nie dało. Ma ktoś może jakiś pomysł? Będę bardzo wdzięczny.
  • #7 11348476
    alien_audio
    Poziom 21  
    Witam.
    Czy pin od resetu czy ma rezystor podciągający ? i jest dobrze podłączony.
    warto również dać kondensator 10uF od pinu reset do masy.
  • #8 11348908
    dogen kigen
    Poziom 10  
    tak, jest rezystor 10k. Kondensstora nie ma ale wczesniej to dzialalo:/
  • #10 11354734
    dogen kigen
    Poziom 10  
    Faktycznie nie napisałem jaką ma częstotliwość ale jest to zaznaczone na schemacie. Kwarc jest zewnętrzny i ma 8MHz ale chwilowo go wylutowałem. Nie wiem czy jest to problem fuse bitów, bo jak już zaznaczyłem układ działał dopóki nie odłączyłem programatora. Wtedy przestał działać nawet kiedy programator został podłączony z powrotem. Po wymianie wszystkich układów trochę skończyły mi się pomysły
  • #12 11355031
    dogen kigen
    Poziom 10  
    Zdjęcia czego? Układu? Outputu?
  • #15 11355126
    dogen kigen
    Poziom 10  
    Faktycznie są źle podłączone. Poprawie to jutro i napiszę. Dzięki, że spojrzałeś w schemat. Ucc i GND nie są widoczne bo nie mogłem znaleźć w eaglu jak je pokazać. Jednak są podłączone właściwie i jest na nich 5V. Załączam zdjęcie zgodnie z prośbą o ile to cokolwiek da.

    ATMEGA8 - RS-232: Brak transmisji, pojemności przy MAX232, BASCOM/C


    Obrazki zamieszczamy w/g opisu:
    https://www.elektroda.pl/rtvforum/topic2053101.html
    W tym poście poprawiłem.
    [zumek]
  • #16 11355163
    xamrex
    Poziom 28  
    rs07 napisał:
    Kondensator 3 ma być do masy

    Kondensator C3 jest dobrze podłączony (do vcc), tylko że polaryzacja jest zła :))
  • #18 11356619
    dondu
    Moderator na urlopie...
    O ile schemat jest prawie doskonały, o tyle PCB jest zaprojektowane źle.
    Pewne elementy muszą być blisko siebie:
    - kondensatory filtrujące zasilanie regulatora napięcia należą do niego,
    - kondensatory filtrujące zasilanie mikrokontrolera, należą do jego pinów.
    - kondensatory przy kwarcu także do kwarcu należą,
    nie można więc umieszczać tych elementów z dala od siebie wzajemnie.

    To mniej więcej tak jakbyś z żaglówki pełnomorskiej wymontował balast w postaci bulbkilu (obciążnik stawiający żaglówkę do pionu) i przywiązał go sznurkiem. Nadal będą razem, ale bulbkil nie będzie spełniał swoich zadań.

    Zapoznaj się z tym oraz tym
  • #19 11366789
    dogen kigen
    Poziom 10  
    Przelutowałem C3 i teraz jest tak jak być powinien czyli - do GND. Wylutowałem zewnętrzny kwarc i przestawiłem f na 4MHz zmieniając fuse bity. Zdaje się, że tu wszystko w porządku ponieważ test z diodą wypada ok, mruga z częstotliwością 1s. Jednak w dalszym ciągu układ transmituje "chińskie znaczki" zamiast tego co chcę wysłać, a po odłączeniu programatora działa tylko program z LEDem. Po rs232 nawet tych krzaczków nie wysyła. Wiem, że rozmieszczenie elementów jest niezbyt fortunne ale teraz już ciężko to zmienić a poza tym kiedy zewnętrzny kwarc jest wylutowany to odległość tych elementów nie ma większego znaczenia. Przypominam, że układ przez chwile działał poprawnie a zaczął się zachowywać tak jak opisałem po odłączeniu programatora.
  • #20 11368023
    xamrex
    Poziom 28  
    dogen kigen napisz jak masz ustawione fusy.
    hfuse i lfuse
    I podaj kompletny kod w bascomie
  • #21 11368082
    adambehnke
    Poziom 24  
    Proste pytanie : czy masa układu jest połączona z masą PC (sprawdź to 100 razy zanim zaczniesz szukać gdzie indziej) ? Bo wydaje się prawdopodobne że nie są połączone skoro po odpięciu programatora komunikacja (jakakolwiek jest) zanika.
    Ponadto wklej zrzut ekranu ustawień fusbitów+kod jakiego używasz.
  • #22 11378003
    dogen kigen
    Poziom 10  
    Faktycznie chodziło o brak wspólnej masy. Dzięki wszystkim

    Zamykam.
    Dar.El
REKLAMA