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.

DS18B20. Czy można zepsuć przy lutowaniu? Odwrotne włożenie.

skartabel 19 Wrz 2006 17:08 2424 11
  • #1 19 Wrz 2006 17:08
    skartabel
    Poziom 11  

    mam ukladzik polutowane jest dobrze na 100 %

    pytanie 1
    czy moge popsuc taki czujnik w trakcie lutowania ?

    pytanie 2
    czy mogłem popsuc czunik wkladajac go na odwrot czyli to mase do Vcc a Vcc do masy

    Czujnik chyba nie zyje
    wnioskuje to z
    void ow_reset(void)
    {
    CLR_DQ;
    wait_us(250);
    wait_us(250);
    wait_us(100);
    SET_DQ;
    wait_us(120);
    if((PINB&0x01)==0) {
    write_char('0');
    }
    else {write_char('1');
    }
    wait_us(200);
    wait_us(100);
    }

    wypisuje mi 1 na wyswietlaczu

    czujnik jest podpiety do Port B0

    Procek Atmega32

    0 11
  • #2 19 Wrz 2006 17:21
    kam
    Poziom 11  

    Ad1 Jak ja podgrzejesz ponad 125 °C to teoretycznie możesz ją zepsuć.
    Ad2 Słyszałem, że można popsuć tak czujkę, sam osobiście tego nie sprawdzałem.

    Pamiętaj, że odpowiednie dobranie czasu ma tu kluczowe znaczenie! Ja miałem z tym pewne problemy. Najlepiej sprawdzić w symulatorze ile dokładnie wykonuje się funkcja wait_us(250); czy faktycznie 250us ? (AVRStudio np.).

    Dokładne timingi funkcji reset, read_bit, write_bit są podane w notach katalogowych 1-wire.

    Tutaj masz ładnie opisane,
    http://pdfserv.maxim-ic.com/en/an/app162.pdf
    tylko nadal trzeba pamiętać o dobrym dobraniu czasu trwania odpowiednich sygnałów.

    0
  • #3 19 Wrz 2006 17:34
    skartabel
    Poziom 11  

    Juz dwie atmegi32 zepsułem ustawiajc zle fusebity 26 zł w plecy teraz mam wrazenie ze 2 czujniki temperatury 28 zł w placy.
    bledy kosztuja. Tylko dalej nie bardzo wiem w ktorym momencie mogłem popsuc czujniki temperatury bo nie przypominam sobie zebym wlozył na odwrot. a przylutowac lutownica rozgrzana do 120 stopni celcjusza było by ciezko

    0
  • #4 19 Wrz 2006 17:48
    kam
    Poziom 11  

    Z jakim zegarem taktujesz tą Atmege ?
    Musisz policzyć i dobrać wg noty katalogowej sygnał reset odpowiednio. Jeśli nie odpowie DS a Ty będziesz na 100% pewny ze czasy są ok to prawdopodobnie coś nie tak. Powodzenia.

    0
  • #5 19 Wrz 2006 17:54
    skartabel
    Poziom 11  

    16 MHZ funkcje sa przetestowane na ukladach 2 kolegów ktorzy mieli taki sam kwarc i u nich działa.

    0
  • #6 19 Wrz 2006 18:58
    jacur
    Poziom 32  

    Czujniki ds18b20 przy podpieciu 2 przewodowym stają sie idiotoodporne. Czyli nieuszkodzi je odwrotne zasilanie, przy podłaczeniu 3 przewodowym i odwrotnym podpieciu czujnik zył ale niechciał stabilnie pracowac na lini 2 przewodowej. Sprawdzane doswiadczalnie ;)

    0
  • #7 19 Wrz 2006 18:59
    Electix
    Poziom 20  

    Siemka!

    Jeżeli chodzi o lutowanie, to jest możliwe uszkodzenie układu, ale to w przypadku gdy będziesz długo grzał. Jeżeli robiłeś to króciutko to nawet lutując lutownicą dużej mocy nie powinieneś uszkodzić układu. Najlepiej jest jednak wlutować w miejsce układu "podstawkę precyzyjną" zrobioną z takiej listwy co się łamie dla uzyskania odpowiedniej liczby kontaktów. Nie wiem jak ona się nazywa, ale to jest taka listwa bodajże 40pin i ma kontakty tak zrobione jak w podstawkach precyzyjnych pod układy scalone. Wtykasz w to DS18B20 i śmiga jak marzenie:) Jeżeli chodzi o odwrotne podłączenie czujnika.
    Wielokrotnie zdarzało i to w kilku egzemplarzach i ani jeden nie uległ zniszczeniu:D Jeżeli nie podłączałeś tego do napięć wyższych niż 5V to nie powinno być usterek.
    Jeżeli chodzi o odczyt, to czasy są bardzo ważne. Jeżeli zbyt szybko zechcesz odczytywać wartość temperatury po komendzie konwersji to uzyskasz błędny wynik. Poza tym same czasy sygnałów przy transmisji 1-wire tak jak pisali koledzy wyżej mają bardzo duże znaczenie i tu musisz trzymać się zaleceń standardu 1-Wire. Podsumowując:
    -DS18B20 jest w miarę odporny na pomyłki związane z jego podłączaniem!
    -Należy ściśle zachowywać wszystkie wytyczne parametrów sygnałów protokołu 1-Wire!
    -Należy dać czujnikowi czas na przeprowadzenie konwersji (np. dla rozdzielczości 12 bitów - 750ms), szczegóły w nocie aplikacyjnej!

    Życzę udanej zabawy!!! Pozdrowienia!!!

    0
  • #8 19 Wrz 2006 19:09
    skartabel
    Poziom 11  

    no tak to zostałem przez was pocieszony raczej nie zespułem lutownica bo lutujac trzymałem za ten czujnik nie poparzyłem sie.
    napiecie to 5.08 V wiec tez nie powinno szkody zrobic moze jednak te czasy musze troche pozmieniac.

    Jak bedzie działac to oczywiscie sie pochwale
    nie wiem na jaka rozdzielczosc sa ustawione ale nic nie zapisywałem do czujników wiec pewnie standardowo.

    co do mojego programu.
    www.szostek.pl/elektroda/temp.c
    www.szostek.pl/elektroda/temp.h
    tam sa procedurki dotyczace temperatury w moim projekcie
    moze ktos znajdzie jakis bład, mam nadzieje ze jest w programie a nie ze sprzed zrabany :)

    0
  • #9 19 Wrz 2006 20:07
    Electix
    Poziom 20  

    Jeżeli nic nie wpisywałeś do DS18B20 to jest on ustawiony na 12 bitów rozdzielczości. Taka nastawa będzie po każdorazowym włączeniu zasilania. Przy pierwszym odczycie po włączeniu zasilania, o ile wcześniej nie wydałeś komendy konwersji z DSka odczytasz 85°C.

    0
  • #10 19 Wrz 2006 22:00
    leoha
    Poziom 16  

    skartabel napisał:


    jesli piszesz pod avr-gcc to z tego co mi wiadomo funkcje sbi, cbi sa "deprecated" i nalezy stosowac nowszy paradygmat dostepu do portow. Polecam zerknac do dokumenctaji...
    http://www.nongnu.org/avr-libc/user-manual/group__deprecated__items.html
    http://www.nongnu.org/avr-libc/user-manual/group__avr__sfr.html
    Ale to tak na marginesie...

    PS Wybaczcie brak polskich liter ale cos mi sie w systemie zepsulo...

    0
  • #11 19 Wrz 2006 22:37
    skartabel
    Poziom 11  

    moze i tak stosowałem wszytkiego w koncu postanowiłem w mainie wrzucic tylko tyle

    itoa(licznik,temp,10);
    write_text(temp);
    wait_ms(250);
    wait_ms(250);
    wait_ms(250);
    wait_ms(250);
    licznik++;
    lub
    itoa(licznik,temp,10);
    write_text(temp);
    nop_1s();
    licznik++;
    moja "sekunda" trwa 16 sekund tak jak bym mial kwarc 1mhz a mam 16 podpięty pisze na nim
    16.0A.E.1F6 kupiony w internetowym sklepie seguro ble
    wiec juz wiem ze to wina kwarcu

    0
  • #12 19 Wrz 2006 22:40
    kam
    Poziom 11  

    A masz przestawione fuse bity na to żeby korzystał z zewnętrznego kwarcu ?

    0
  Szukaj w 5mln produktów