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.

DS1820 i "Brak ukladu"

1ceman 22 Mar 2006 22:36 1545 16
  • #1 22 Mar 2006 22:36
    1ceman
    Poziom 12  

    Witam
    Ostatnie dwie godziny spędziłem na przeglądaniu forum i szukaniu odpowiedzi na moje pytanie. Nie udało się wiec zostało mi prosić Was o pomoc.
    Chodzi o najpopularniejszy chyba czujnik na elektrodzie, czyli DS1820. Wykorzystałem ATmege8 z zewnetrznym oscylatorem i podłączyłem do niej czujnik. Do tej pory nigdy nie uzywałem zewnętrznego kwarcu i nie wiem czy jakoś trzeba to ustawić w opcjach czy wystarczy zapis w programie $crystal=8000000.
    Po włączeniu zasilania układu na wyświetlaczu zostaje przez ok. sekunde wyświetlony znaczek stopnia, po czym ukazuje się napis "Brak ukladu".
    Gdzie moze być błąd, jakie opcje ewentualnie zmienić?

    Dziękuje z góry za pomoc.
    Pozdrawiam!

    0 16
  • Pomocny post
    #2 22 Mar 2006 22:41
    psooya
    Poziom 37  

    musisz ustawić FUSE bity na kwarc zewnętrzny domyślnie jest wewnętrzny RC o czestotliwości 4MHz. Jak masz STK 200/300 i dajesz programuj procesor to masz zakładke rom eeprom i fuse bity a tam znajdziesz które to sa bo niepamietam . Pozdrawiam

    0
  • #3 22 Mar 2006 22:42
    1ceman
    Poziom 12  

    Jeszcze jedno pytanie - jak można sprawdzić czy czujnik jest dobry? Może z nim coś jest nie tak.

    0
  • Pomocny post
    #4 22 Mar 2006 22:49
    M. S.
    Poziom 34  

    Najprawdopodobniej AT MEGA 8 pracuje na generatorze wewnętrznym 1MHz pomimo, że ma podłączony kwarc 8MHz. Zmień w programie deklarację szybkości taktowania na 1000000 i zobacz czy zadziała. Jeżeli tak to trzeba zmienić "fusy" dotyczące taktowania na 1111 (obecnie powinny być ustawione na 0001 = 1MHz - jest to nastawa fabryczna) i dopiero później zadeklarować 8MHz. Mam nadzieję, że nie zapomniałeś o zewnętrznym rezystorze podciągającym.

    0
  • #5 23 Mar 2006 19:15
    1ceman
    Poziom 12  

    Rzeczywiście kontroler pracował na wewnętrznym oscylatorze. Zmieniłem wpis w programie na crystal=1000000 i teraz dziala ok.
    Mam w ukladzie dolaczony zewnetrzny oscylator 8MHz, ale pare postów niżej chłopak próbował zmienić właśnie to ustawienie i zablokował mikrokontroler. Teraz troszke sie boje tego robic :)

    Czy stosując się do TEGO na pewno nie zablokuje mojej atmegi?

    0
  • Pomocny post
    #6 23 Mar 2006 20:59
    psooya
    Poziom 37  

    Zablokował ale łatwo to naprawić trzeba zrobić generator na tranzystorze z krawcem albo z jakimś obwodem RC i podać ne wejście Xtal ten sygnał i isp już dział Nie zablokujesz jeśli bedziesz czytał uwąznie co tam pisze.

    Dodano po 2 [minuty]:

    Nie zablokujesz bedzie dobrze

    0
  • Pomocny post
    #7 23 Mar 2006 21:11
    M. S.
    Poziom 34  

    Zmianę taktowania najlepiej zrobić w Bascomie zgodnie z przytoczonym tutorialem. Na rozwijalnej liście znajdziemy różne ustawienia.Trzeba wybrać 1111. Samo wybranie opcji nic nie zmieni. Nową nastawę wprowadza się przyciskiem obok o oznaczeniu zgodnym ze zmienianą sekcją. Nieprawidłowy wybór może skończyć się jedynie kombinacjami z podawaniem taktowania z zewnątrz.
    Programator Bascoma jest najbezpieczniejszy ze znanych mi do zabawy z "fusami" bo trudno o pomyłkę..
    Najważniejsze to nie ruszać SPIEN i nie przypisywać do końcówki resetu funkcji normalnego portu (dla ATMEGI 8 nie zaprogramować resetu jako PC6). Zmiany tych parametrów unieruchomią uC tak, że najczęściej najlepszym sposobem jego "odzyskania" jest kupno nowego.
    Teraz śmiało do dzieła!
    P.S. Nie zapomnij zadeklarować nowego taktowania w programie, bo znowu termometr nie będzie działał!

    0
  • #8 24 Mar 2006 00:00
    1ceman
    Poziom 12  

    Zmienilem tak jak w tutorialu, ktory podalem i przestalo widziec procesor :/
    Czyli rozumiem ze po wszytkim?
    Co źle zrobilem? Zmienilem tylko jedna opcje, nic poza tym.

    0
  • Pomocny post
    #9 24 Mar 2006 08:10
    M. S.
    Poziom 34  

    Jeżeli fusy przełączono na 1111 to trzeba sprawdzić sprawność i podłączenie kwarcu (i zbadać najlepiej oscyloskopem lub sondą w. cz. przebieg na XTAL2). Nie należy zapominać o kondensatorach przy kwarcu (ok. 33pF) zgodnie z notą katalogową. Jeżeli dalej będzie nie tak należy do XTAL1 podłączyć dowolny generator zewnętrzny o częstotliwości kilku MHz i poziomie napięć zgodnych z TTL i ponowić próbę dogadania się z uC. W razie uszkodzenia kwarcu można pracować na wewnętrznym generatorze 8MHz - fusy na 0100.
    Procesor nie powinien mieć zablokowanej możliwości programowania w układzie.
    Wielokrotnie zmieniałem fusy w ATMEGACH8 (Bascom 1.11.7.4) i ATTINY2313 (Bascom 11.1.8.1) bez jakichkolwiek problemów.
    Mam jeszcze pytanie co do wersji Bascoma i opisu przycisku, którym zatwierdzono zmianę.

    0
  • #10 24 Mar 2006 10:55
    1ceman
    Poziom 12  

    Mam wersję Bascoma 1.11.8.1. Zmianę Fusebitow zatwierdziłem przyciskiem Write FS.

    Przy kwarcu mam kondensatory po 27pF. Mam tylko pytanie czy ma znaczenie którą stroną podłącza się kwarc, czy to nieistotne?

    0
  • Pomocny post
    #11 24 Mar 2006 11:02
    GienekS
    Poziom 32  

    Kwarc tak jak opornik jest kierunkowo obojętny.

    0
  • Pomocny post
    #12 24 Mar 2006 12:46
    psooya
    Poziom 37  

    Witam powinno działać ja zmienilem te fusy na ATmega 8 3 dni temu pierwszy raz i procek chodzim Sprawdź połaczenia czy aby napewno sa dobre

    Dodano po 10 [minuty]:

    sprawdź czy nózki procka stykaja w podstawce Ewentulanie podmień kwarc

    0
  • Pomocny post
    #13 24 Mar 2006 14:16
    _eM_
    Poziom 11  

    Nie wiem czy rozumiem o co w tym wszystkim chodzi.
    Piszecie, że ma sprawdzić połączenie kwarcu. Wynika z tego, że w czasie programowania kwarc musi być podłączony do mikrokontrolera, tak?
    W innym wypadku co ma wspólnego połączenie nóżek kwarcu, jeśli błąd pojawia się po zmianie opcji w bascomie?

    Dodano po 1 [minuty]:

    I druga sprawa - jak można sprawdzić częstotliwość kwarcu? Znalazłem ostatnio w domu kwarc, ale nie wiem jaką ma częstotliwość. Jest na nim napisany symbol D800A8I, czy na podstawie tego oznaczenia można wywnioskować jaka jest częstotliwość?

    0
  • Pomocny post
    #14 24 Mar 2006 14:32
    M. S.
    Poziom 34  

    Podczas programowamia szeregowego uC musi być taktowany. Fabrycznie ATMEGI8 są taktowane wewnętrznym generatorem 1MHz - chodzą same. Aby zmienić źródło taktowania trzeba zmienić fusebity. Po przełączeniu na kwarc zewnętrzny, który nie jest podłączony, uszkodzony itp. procesor nie ma impulsów zegarowych i uC nie odpowiada programatorowi. Połączenie jest niemożliwe. W rachubę może jeszcze wchodzić uszkodzenie wewnętrznej części generatora kwarcowego lub jego końcówek. Uklad taki można jeszcze próbować ruszyć impulsami z generatora zewnętrznego.

    Co do sprawdzenia kwarcu to należy podłączyć go do generatora (np. na jednym tranzystorze, bądż 2 bramkach logicznych) i sprawdzić czy na wyjściu jest zmienny przebieg (oscyloskopem, sondą w. cz., miernikiem częstotliwości).
    Częstotliwość można określić w takim układzie jedynie miernikiem częstotliwości o odpowiednim zakresie pomiarowym.

    0
  • Pomocny post
    #15 24 Mar 2006 15:39
    _eM_
    Poziom 11  

    M. S. napisał:
    Podczas programowamia szeregowego uC musi być taktowany. Fabrycznie ATMEGI8 są taktowane wewnętrznym generatorem 1MHz - chodzą same. Aby zmienić źródło taktowania trzeba zmienić fusebity. Po przełączeniu na kwarc zewnętrzny, który nie jest podłączony, uszkodzony itp. procesor nie ma impulsów zegarowych i uC nie odpowiada programatorowi. Połączenie jest niemożliwe. W rachubę może jeszcze wchodzić uszkodzenie wewnętrznej części generatora kwarcowego lub jego końcówek. Uklad taki można jeszcze próbować ruszyć impulsami z generatora zewnętrznego.

    Czyli jednym słowem - kwarc podczas programowania musi być podłączony, tak?

    M. S. napisał:
    Co do sprawdzenia kwarcu to należy podłączyć go do generatora (np. na jednym tranzystorze, bądż 2 bramkach logicznych) i sprawdzić czy na wyjściu jest zmienny przebieg (oscyloskopem, sondą w. cz., miernikiem częstotliwości).
    Częstotliwość można określić w takim układzie jedynie miernikiem częstotliwości o odpowiednim zakresie pomiarowym.

    Symbol, który jest podany na kwarcu kompletnie nie ma nic wspólnego z jego częstotliwością?

    0
  • Pomocny post
    #16 24 Mar 2006 18:02
    M. S.
    Poziom 34  

    Kwarc podczas programowania nie musi być podłączony o ile uC korzysta z WEWNĘTRZNEGO generatora ("fusy"dla ATMEGA 8 i podobnych = 0001 lub 0010 lub 0011 lub 0100), Jeżeli przełączono "fusy" na generator ZEWNETRZNY czyli kwarc lub generator podający z zewnątrz gotowy sygnał taktujący to podczas programowania generator/kwarc musi być podłączony.

    Na kwarcu zwykle jest napisana częstotliwość jego pracy, niestety nie zawsze. Jeżeli nie zna się parametrów kwarcu to można go wykorzystać do uC w układach nie wymagających odliczania czasu lub nie wykorzystujących przesyłania danych w oparciu o zależności czasowe. W takim przypadku jednak łatwiej jest uruchomić wewnętrzny generator i nic nie podłączać do uC (oczywiście posiadającego taki generator - oszczędzamy 2 końcówki).
    Częstotliwość kwarcu można określić też podłączając go do uC z programem zliczającym sekundy i porównując z zegarkiem (w dłuższym przedziale czasu np. 1 dzień). Na podstawie różnicy można wyliczyć różnicę częstotliwości kwarcu podłączonego do założeń przyjętych w programie - w ten sposób kalibrowałem odmierzanie czasu w mierniku częstotliwości.

    0
  • #17 25 Mar 2006 18:18
    psooya
    Poziom 37  

    Witam Kolega M.S napisał wszystko co jest potrzebne Do programiowania wszyskich proców prze ISP jest potzrbny kwarc lub jakiekolwiek inne źródło wygnału taktującego
    Pozdraiam

    0