DS18B20 hittas inte.. AVR

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
toffie
Inlägg: 1895
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

DS18B20 hittas inte.. AVR

Inlägg av toffie »

Hej på er,
Sitter och försöker ännu en gång att få igång avläsning på DS18B20 från en vanilla AVR krets.
Finns ingen mening med att jag inkluderar kod då den är direkt tagen från följande sida;

http://siwawi.bauing.uni-kl.de/avr_projects/tempsensor/

Koden rullar smärtfritt på kretsen men ingen av de tre DS18B20 som är inkopplade svarar.
+5V GND och signal är rätt inkopplade, man har ju tidigare lyckats med att komma på hur fjärrvärme-värmning fungerar :roll: (bara koppla dem omvänt så kan man värma det mesta ;))

Hur som.. Det är rätt kopplat och sen kör jag en 4.7K mellan signal och +5V. Enligt koden ska signal vara inkopplat på PIND6 och det är gjort.. men ändå inget svar..

För tillfället är jag helt låst, jag vet inte vad jag ska testa, vad jag ska titta efter eller vad..
Frågar därför här för att se om ni kan ge mig några tips på vad jag kan testa?
Användarvisningsbild
SeniorLemuren
Inlägg: 8507
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: DS18B20 hittas inte.. AVR

Inlägg av SeniorLemuren »

Ja, du kan ju börja med att läsa databladet för DS18B20 och se hur den funkar. Sedan kan du ju fortsätta med att kolla i programmet vad som inte stämmer.

När man vill läsa flera givare så måste man ange vilket ID en viss givare har för att den skall svara. Denna ID kan man få på 2 olika sätt. Det ena är att bara koppla upp en givare i nätet och läsa in dess ID, därefter fortsätter man med de andra givarna, tills man har samlat in samtliga ID.

Det andra sättet är att låta ett program slumpa sig fram med try and error för att hitta alla ingående ID i nätet. Beroende på vilket program du använder så blir ju felsökningen därefter. Men det är alldrig enkelt att försöka få igång stuff utan att vad som står i databladet. :)
Användarvisningsbild
Icecap
Inlägg: 26680
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: DS18B20 hittas inte.. AVR

Inlägg av Icecap »

Jag har fått ROM-identifieringen till att fungera OK, jag kan koppla på ett valfritt antal enheter och reda ut deras ID-kod. Men det var INTE enkelt! Och då det var totalt interruptstyrd postar jag inte koden här.

Men steg 1 för toffie måste vara att kolla om PIND6 rent faktisk "rör på sig". Ett enkelt sätt är att ta loss alla givare och ta en LED med strömbegränsningsmotstånd och koppla mellan PORTD6 och VDD. Den ska blinka svagt och kanske då och då. Bäst är såklart ett oscilloskop men jag har en känsla av att det inte ingår i toffie's arsenal.
Användarvisningsbild
JimmyAndersson
Inlägg: 26600
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: DS18B20 hittas inte.. AVR

Inlägg av JimmyAndersson »

SeniorLemuren:
"Denna ID kan man få på 2 olika sätt."

Plus 1 till sätt. :)
Dvs att man skickar ut en förfrågan på bussen och så svarar sensorerna med ID. (Enkelt förklarat.)



Att döma av länken så fungerar ju koden för den som gjort den.
Om Toffie inte modifierat koden så finns det inte så mycket att felsöka just där.
Av samma orsak behöver man inte ta reda på hur en DS18B20 fungerar i detalj,
även om det visserligen är intressant.



Toffie:
"+5V GND och signal är rätt inkopplade
Det är rätt kopplat och sen kör jag en 4.7K mellan signal och +5V.
Enligt koden ska signal vara inkopplat på PIND6 och det är gjort."


Lägg gärna upp en bild. Det är så lätt att bli blind när man själv letar felorsaker.

Ofta när man utesluter något "enkelt", (dvs "*Det här* är iallafall rätt")
så är det ofta just *det* som senare visade sig vara felet.
Eller så är det något fullständigt superkonstigt som ingen hittar lösningen till.

Förresten: Har du testat med enbart 1st sensor inkopplad?
Användarvisningsbild
ecenier
Inlägg: 1150
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: DS18B20 hittas inte.. AVR

Inlägg av ecenier »

Skulle det kunna vara något med oscillatorn så att du får helt fel timing?
Användarvisningsbild
SeniorLemuren
Inlägg: 8507
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: DS18B20 hittas inte.. AVR

Inlägg av SeniorLemuren »

JimmyAndersson skrev: Plus 1 till sätt. :)
Dvs att man skickar ut en förfrågan på bussen och så svarar sensorerna med ID. (Enkelt förklarat.)
Ja det var ju väldigt enkelt förklarat :) Det är ju just den metoden som jag anger som nr 2. Om man frågar något på en lina som det finns ett större antal DS18B20 anslutna till så tenderar de ju att svara i kör. Därför får man använda ett lite mer komplicerat sätt att lista ut vem som är vem. Därför skippade jag det sättet att ta reda på ID i de givare som ingick i mitt system.

Jag kopplade in en givare i taget och läste in ID ett och ett taget som jag sedan sparade som konstanter i programmet. Så din fråga nedan är en bra fråga. Det är avsevärt mycket mindre som kan gå fel om man bara har en givare inkopplad och läser med SKIP ROM, Dvs. man behöver inte skicka ID för att läsa. Det är därför jag föreslår att man läser databladet och koden, för att förstå vad man gör. Det underlättar felsökning.
JimmyAndersson skrev: Förresten: Har du testat med enbart 1st sensor inkopplad?
bellasoda
Inlägg: 168
Blev medlem: 10 maj 2012, 13:48:52

Re: DS18B20 hittas inte.. AVR

Inlägg av bellasoda »

toffie skrev: Koden rullar smärtfritt på kretsen men ingen av de tre DS18B20 som är inkopplade svarar.
Har du något sätt att kontrollera att programmet gör det som det ska? T ex lite lysdioder som blinkar en gång i sekunden? När lysdioden istället ger ett svagt sken så blinkar den alldeles för fort.

Börja med ett enklare program, för att verifiera att någonting fungerar överhuvudtaget, så brukar jag göra det. Av någon anledning är det alltid något underligt som händer.

T ex kanske din krets använder fel clocksource?

Vilken avr-krets använder du dig av?
Användarvisningsbild
toffie
Inlägg: 1895
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: DS18B20 hittas inte.. AVR

Inlägg av toffie »

Oj här har det hänt mycket under natten.. och förmiddagen när man sover ;)
Ska se om jag lyckas få till lite svar här också :)

SeniorLemuren
Ja med tanke på att koden uppenbarligen fungerar för den som gjort det, som jag laddat ner ifrån, så bör det ju förhoppningsvis inte vara något fel på just koden. Att jag då ska sätta mig och läsa genom databladet för att försöka lösa dennes kod verkar ju ganska korkat.. eller vad säger du?

Den första idén är ju förmodligen det som verkar enklast, att koppla in en och läsa av och spara värdet, för att sen gå vidare med fler sensorer. Det tycker jag helt klart är smartast.

Det framgår dock inte hur eller ens om man kan göra så med den kod jag använder. Enligt koden, bilderna och informationen man kan få fram så ska det ske automatiskt när koden körs. Koden ska läsa av bussen och hitta nya sensorer vid varje iteration.


Icecap
Det har jag inte kollat faktiskt, som jag sa så var jag helt "låst" ;) Helt trött och kunde bara inte komma på nya saker att testa ;) Ska kolla med oscilloskåpet när jag kommer hem igen ;) Ja.. jag har ett :P hehe


JimmyAndersson
JimmyAndersson skrev:Att döma av länken så fungerar ju koden för den som gjort den.
Om Toffie inte modifierat koden så finns det inte så mycket att felsöka just där.
Av samma orsak behöver man inte ta reda på hur en DS18B20 fungerar i detalj,
även om det visserligen är intressant.
Precis, kände lite att koden "bör" ju fungera.. annars borde väl författaren ha skrivit att den inte fungerar och kanske inte släppt koden osv. men men..

Givetvis är det lätt att bli blind, en bild finns nu därför här under ;)
Bild

Jag har testat med endast en sensor inkopplad. Jag har dessutom testat med vardera av de tre jag har inkopplade att köra var och en av dem för att se om någon av dem fungerar. Samma resultat på alla tre.

Bild
Som ni ser har jag dessutom två olika sensorer, två stycken 18B20 samt en DS1820.


ecenier
Ingen aning, men det finns UART i koden och det fungerar ju utan problem. däremot kan jag inte dra ner till 4MHz i F_CPU.. 8MHz är det som fungerar för UART'en på 19200 baud. Drar jag ner till 4 så blir det bara skräp på UART'en. Där har jag däremot inte kollat om en lägre baud fungerar, så det kan ju faktiskt vara det då förstås.


På sidan där jag fick koden ifrån, enligt länk i första inlägget så står det;

Kod: Markera allt

Hardware

Atmel AVR-Controller (ATmega16 and ATmega32 @ 1MHz, 2MHz, 4MHz, 8MHz internal R/C and 1,8432 MHz, 3.6864MHz ext. XTAL used for testing)
DS18X20 temperature-sensors (3 DS18B20 used during development)
4,7 kOhm pull-up resistor for 1-Wire data-line
UART-connection to PC
Allting stämmer ju med det jag kör..


bellasoda
Det jag har i nuläget är ju UART'en som skickar ut status.. Det följande är vad som ska komma ut på UART'en.

Kod: Markera allt

DS18X20 1-Wire-Reader Demo
--------------------------
Scanning Bus for DS18X20
2 DS18X20 Sensors available:
# in Bus :1 : FC:28 (18B)SN: 67 C6 6B 00 00 00 CRC:E2  CRC O.K. 
# in Bus :2 : FC:28 (18B)SN: 44 D7 6B 00 00 00 CRC:BC  CRC O.K. 
Sensor# 1 is a DS18B20 which is parasite powered
Sensor# 2 is a DS18B20 which is externally powered

Convert_T and Read for every Sensor (reverse order)
Sensor# 2 = +20.9375°C [+20.9°C]
Sensor# 1 = +20.8750°C [+20.9°C]

Convert_T for all Sensors and Read for single Sensor
Sensor# 1 = +20.8750°C [+20.9°C]
Sensor# 2 = +20.9375°C [+20.9°C]

Verbose output
FC:28 (18B)SN: 67 C6 6B 00 00 00 CRC:E2  CRC O.K. 
SP:4E 01 4B 46 7F FF 02 10 CRC:D9  CRC O.K. 
 T_raw=014E B20/12 +20.8750°C
FC:28 (18B)SN: 44 D7 6B 00 00 00 CRC:BC  CRC O.K. 
SP:4F 01 4B 46 7F FF 01 10 CRC:CF  CRC O.K. 
 T_raw=014F B20/12 +20.9375°C

Jag får endast följande;

Kod: Markera allt

DS18X20 1-Wire-Reader Demo by Martin Thomas
-------------------------------------------
Scanning Bus for DS18X20
No Sensor found
0 DS18X20 Sensor(s) available:

Convert_T and Read Sensor by Sensor (reverse order)

Convert_T for all Sensors and Read Sensor by Sensor

Verbose output
*** problems - rescanning bus ...
Scanning Bus for DS18X20
No Sensor found
0 DS18X20 Sensor(s) available
Att min AVR använder fel clocksource är nog ganska mycket uteslutet eftersom UART'en fungerar som den ska?
Kretsen är det inget fel på, använder samma krets med samma fuses och övriga inställningar för ett annat projekt utan några som helst problem. SUT_CKSEL är inställt på INTRCOSC_8MHZ_6CK_64MS.

I nuläget använder jag mig av en Atmega32A.
bellasoda
Inlägg: 168
Blev medlem: 10 maj 2012, 13:48:52

Re: DS18B20 hittas inte.. AVR

Inlägg av bellasoda »

Har du vänt komponenten åt rätt håll?

Enligt dina bilder så är ben '3' kopplat till jord (gula kablar), men det ska vara tvärtom enligt den här:
Bild
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: DS18B20 hittas inte.. AVR

Inlägg av vfr »

Hur fick du till det egentligen?

Vad jag kan se så har både pin 1 & 2 gula kablar men inte pin 3. Och vad jag kan se så ser det helt riktigt ut med kopplingen.
Användarvisningsbild
Wedge
Inlägg: 1026
Blev medlem: 8 juli 2012, 17:33:33

Re: DS18B20 hittas inte.. AVR

Inlägg av Wedge »

Bottom view, bellasoda. Kopplingen ser rätt ut.
Användarvisningsbild
toffie
Inlägg: 1895
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: DS18B20 hittas inte.. AVR

Inlägg av toffie »

bellasoda
Som Wedge säger så är inkopplingsbilden från Maxim för undersidan av komponenten, vilket gör att kopplingen är rätt.. så långt.. :P

Gula är jord på pinne 1
Gula mellan mittenbenen är signalen som är bygglad mellan de tre sensorerna och går ut på pinlisten.
4.7K motståndet är inkopplat mellan signal och +5V
Gröna är +5V på pinne 3.

Dessvärre har jag inte "rätt" längder med rätt färger på mina små trådar, då det är färdiga byglingstrådar direkt från 3M som jag fick tidigare för en artikelserie jag skrivit. Då använder jag ju gärna dem istället för att klippa egna :D
Dock, så ser jag inte att någon klagat på färgerna så det sista här var bara mer för allmän information :P

Hade jag valt färger själv hade jag antingen kört orange, blå och grön eller röd, svart och vit ;)

Hur som helst, kopplingen så långt är jag rätt säker på eftersom ingen av mina sensorer har brunnit upp än så länge :D hehe


Nu ska jag sätta mig med skåpet och en logic och se vad jag får ut.. om något.. :)
Användarvisningsbild
SeniorLemuren
Inlägg: 8507
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: DS18B20 hittas inte.. AVR

Inlägg av SeniorLemuren »

Efter som jag är PIC frälst så vet jag inget om AVR, men är du säker på att du använder rätt port på µC:n. I beskrivningen som du länkade till står: "1-Wire-Bus I/O-Pin can be changed during runtime." Vad det nu kan betyda?
Användarvisningsbild
toffie
Inlägg: 1895
Blev medlem: 22 juli 2004, 21:38:07
Ort: Töreboda / Stockholm
Kontakt:

Re: DS18B20 hittas inte.. AVR

Inlägg av toffie »

Ja du jag vet faktiskt inte heller vad det betyder, men det är specifierat Port D Pin 6, dessutom på två ställen i koden. Och jag har inte hittat någon annanstans i koden som kan tyda på att det är fel. Så jag utgår från att det är PD6 som ska användas :P
bellasoda
Inlägg: 168
Blev medlem: 10 maj 2012, 13:48:52

Re: DS18B20 hittas inte.. AVR

Inlägg av bellasoda »

Då verkar ju både avr-kretsen fungera och komponenten vara vänd åt rätt håll. Härligt! :D

Prova att koppla in lite lysdioder på datakanalen och se om det blinkar/flimrar till lite kanske?
Skriv svar