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 - termometr ds18b20 . Na m32 działa, na m8 nie.

_pieczas 05 Gru 2012 23:04 2142 7
  • #1 05 Gru 2012 23:04
    _pieczas
    Poziom 12  

    Witam
    Tworze sobie prosty termometr na wyświetlaczu 7 segmentowym. Napisałem kod w bascomie i wrzuciłem na płytę testowa z atmega32 i śmiga jak trzeba. Kolejnym krokiem było wrzucenie tego na na atmege8 (zmieniłem m32def.dat na m8def.dat i taktowanie na 1MHz ) atmega świeża , fusebity nie zmieniane. No i jak zwykle u mnie to bywa, rzecz nie działa. Wszystkie segmenty wyświetlacza są zapalone. Mógłby ktoś podpowiedzieć gdzie szukać błędu?
    Oto kod:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Kod pewnie nie jest najlepiej zoptymalizowany, lecz na płycie testowej z atmega32 działa i wskazania są poprawne. ds18b20 podłączam do PC.0, układ trój przewodowy.

    schemat:
    Atmega8 - termometr ds18b20 . Na m32 działa, na m8 nie.

    Domyślam się, że wina jest po stronie atmegi8 skoro na m32 działa, lecz meczę się już dłuższy czas i nie mogę rozwiązać problemu.

    0 7
  • #2 06 Gru 2012 07:14
    dondu
    Moderator Mikrokontrolery Projektowanie

    1. Regulator napięcia powinien mieć jeszcze kondensatory liczone w µF: http://mikrokontrolery.blogspot.com/2011/04/zasilanie-mikrokontrolera.html
    2. Nie rysuj połączeń przez elementy. Naucz się rysować tak: http://mikrokontrolery.blogspot.com/2011/04/jak-projektowac-czytelne-schematy.html
    3. Czy jesteś świadomy ograniczenia maks. łącznego prądu jaki może ten mikrokontroler wytrzymać? Liczyłeś go dla tych wszystkich LED + uC?

    Cytat:
    DC Current VCC and GND Pins................................ 300.0 mA


    Programu nie sprawdzałem, ponieważ BASCOM, to nie moja działka.

    0
  • #3 06 Gru 2012 07:31
    _pieczas
    Poziom 12  

    Poskladalem wszystko na płytce stykowej, zasilając tak jak trzeba z kondensatorami i problemnie znika. Rzystory zmienłem na 4,7k , więc prądu nie przekraczam i wciąż lipa.

    0
  • Pomocny post
    #4 06 Gru 2012 17:23
    wiere
    Poziom 10  

    Witam.
    A przestawiłeś mikrokontroler do pracy z wewnętrznym oscylatorem RC?

    0
  • #5 06 Gru 2012 17:51
    paavo91
    Poziom 19  

    Daj kondensator 100nF od pinu AREF do GND .
    Patrzę na twoje podpięcie ds18b20 i dziwnie to wygląda. Dane odczytuje się z środkowego pinu DQ a u Ciebie widać, że bierzesz ze skrajnego. Środkowy zaś podpinasz do +5V. Mogę się mylić jeśli podpinasz go na dłuższych przewodach(krzyżujesz) ale to trochę bez sensu.

    0
  • #6 06 Gru 2012 18:08
    wiere
    Poziom 10  

    Kondensator o którym wspomina paavo91 w tym przypadku nie jest konieczny.

    0
  • #7 06 Gru 2012 18:13
    paavo91
    Poziom 19  

    Faktycznie nie jest konieczny gdy nie używa się ADC(popatrzyłem na szybko, że coś podpięte do ADC).

    0
  • #8 07 Gru 2012 09:21
    _pieczas
    Poziom 12  

    paavo91 napisał:

    Patrzę na twoje podpięcie ds18b20 i dziwnie to wygląda. Dane odczytuje się z środkowego pinu DQ a u Ciebie widać, że bierzesz ze skrajnego. Środkowy zaś podpinasz do +5V. Mogę się mylić jeśli podpinasz go na dłuższych przewodach(krzyżujesz) ale to trochę bez sensu.


    Tak, może i dziwne, ale masz racje podpinam to na dłuższych przewodach i łatwiej krzyżować przewody niż prowadzić ścieżkę dookoła, a akurat tak mi pasowało na płytce.

    Co do problemu to
    Cytat:
    Witam.
    A przestawiłeś mikrokontroler do pracy z wewnętrznym oscylatorem RC?


    Oj ja głupi, kolejny raz wyprowadziła mnie w pole taka bzdura.
    Ustawiłem fusy na 8 MHz i teraz wszytko pasuje. Dziękuje bardzo!

    0