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

UART ATmega16L dziwne zachowanie w niskiej temperaturze

mackbeth 20 Lis 2011 21:37 1255 5
REKLAMA
  • #1 10163033
    mackbeth
    Poziom 12  
    Witam wszystkich,

    Mam taki układ:
    ATmega16L taktowana kwarcem 8MHz, do tego podłączony jest układ L9637D do komunikacji z samochodem. Dodatkowo nóżka RXD procesora jest podciągnięta rezystorem 330Ohm do +5V (zasilanie). Bez tego rezystora w ogóle nie udało się połączyć z komputerem samochodu. Okazało się, ze teraz (temp +5C) nie ma komunikacji... sprawdzałem program, nic nie zmieniłem od ostatniego razu kiedy testowałem w aucie... jedyna różnica to taka, że wtedy temperatura byłą około 12C.

    Nie wierzyłem i sprawdziłem w domu... w temperaturze pokojowej uart działa normalnie, odbiera dane... natomiast kiedy na procesorze chwilę leży kostka lodu, wszystko się zawiesza.. Najprawdopodobniej wewnątrz funkcji odbierającej dane... Kiedy chwilę potrzymam palec na procesorze, znów działa... Dodam, że ten procesor na płytce testowej wiele przeszedł, nieraz się spięcia zdarzały...

    poniżej moje funkcje odbioru z UART:

    Nagłówek:


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



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


    Oraz procedura inicjalizacji komunikacji z autem:


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



    Trochę zgłupiałem na takie zachowanie, spróbuję z nowym procesorem, ale mam jeszcze nadzieję że to błąd w programie:)


    Pozdrawiam i z góry dziękuję za pomoc
  • REKLAMA
  • REKLAMA
  • #3 10163153
    mackbeth
    Poziom 12  
    Cholerka, jestem niemal pewien, ale zaraz odczytam fusebity...

    Dodano po 3 [minuty]:

    LOW Fuse:

    0xEF

    High Fuse:

    0xD9

    Lock Fuse:
    0xFF

    Calibration"

    0xD5D5D5D6

    Używam eXtreme Burner
  • REKLAMA
  • #4 10163173
    dondu
    Moderator na urlopie...
    Nie podawaj wartości, tylko co masz ustawione :)
    Sprawdź także, jaki zakres temperatur ma zastosowany kwarc - jest sporo takich dla których temperatury 0 czy -10 stopni są granicą poprawnej pracy.
  • REKLAMA
  • #5 10163190
    mackbeth
    Poziom 12  
    To odczytałem tym programikiem z procka...
  • #6 10166290
    mackbeth
    Poziom 12  
    OK, sprawdziłem w dokumentacji, coś jednak nie do końca miałem dobrze ustawione. Kwarc od 3 do 8MHz, wyłączony JTAGEN, wolno narastające napięcie zasilania, wartość low fuse ustawiłem na 0xFF a high fuse na 0xD9, czyli dokładnie jak powinno być.

    Dalej niestety jak trochę schłodzę procka UART nie działa... program na procesorze startuje, na wyświetlaczu LCD wyświetla co powinien, ale widać że uart nie reaguje w ogóle...

    Czyli uwalony procesor, więc zabieram się za lutowanie nowego.

    Co do kwarcu nie mam pojęcia jakie on ma parametry, nie znalazłem, a jedyne na nim oznaczenie to po prosty JL8.000
REKLAMA