PIC och 1wire, strömstrul?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

PIC och 1wire, strömstrul?

Inlägg av Zajber »

Jag köpte ett gäng 1wire tempsensorer som jag tänkte testa med ett par PIC16f88:or som jag har liggandes. Har aldrig kört 1wire innan.

Har studerat lite datablad lite flyktigt och lite andra designer.

Efter ett par tester så visade det sig att portarna på min PIC dör när jag kört en stund. Dör som i funkar aldrig igen...

Vad är fel i denna konstruktion:

PIC (valfritt TTL ben) -------1wire---7.5k R----5Volt

Tanken med koden var att läsa och skriva på samma ben.

När jag ska skicka data sätter jag benet ut på pic till utgång och sedan driver jag den låg i koden, beroende på vad jag ska skicka. När jag är klar sätter jag den till hög igen och sedan sätter jag benet till ingång.

Har inte koden och plattan framför mig just nu men jag hoppas ni förstår tänket, och kanske varför benen på pic:en ger upp efter ett tag, nu har jag snart slut på pic:ar som funkar :)
Användarvisningsbild
SeniorLemuren
Inlägg: 8434
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: PIC och 1wire, strömstrul?

Inlägg av SeniorLemuren »

Kolla här.
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

Re: PIC och 1wire, strömstrul?

Inlägg av Zajber »

Det är så jag har kopplat.

Tilläggas bör även att jag kör C.. Hi-Tech.
Användarvisningsbild
SeniorLemuren
Inlägg: 8434
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: PIC och 1wire, strömstrul?

Inlägg av SeniorLemuren »

Det är lättare att se vad som kan vara fel om du skickar in hela schemat hur du har kopplat och komplett kod.
Batman
Inlägg: 97
Blev medlem: 11 december 2010, 15:05:42
Ort: Umeå

Re: PIC och 1wire, strömstrul?

Inlägg av Batman »

Matar du sensorn med separat matning eller använder du parasit power via DQ? Har den egen matning behöver du inte driva PIC pinnen som hög utgång. Finns risk att sensorn och PICen driver åt mosatt håll. Med parasitmatning behöver DQ endast drivas hög under konvertering.
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

Re: PIC och 1wire, strömstrul?

Inlägg av Zajber »

Den matas separat på det egna benet.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7482
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: PIC och 1wire, strömstrul?

Inlägg av Marta »

Har aldrig haft några som helst problem med dessa sensorer och PIC. Matar Du sensorn separat så koppla bara ett pull-up till +5V och låt PORT? vara satt till nolla hela tiden. Använd sedan TRIS? för att skicka data till sensorn. Sätt den som ungång för att skicka nolla och som ingång för att skicka etta. Då är där ingen risk att sensor och PIC kommer i konflikt.

Har Du ett scope så Du kan se vad som händer? Det skulle underlätta felsökningen högst väsentligt.

Du kan även sätta ett motstånd i serie med pinnen in till PIC som skyddar denna om det nu skulle vara något problem i programmet. 180R t.ex. borde den kunna tåla utan att nivåerna blir fel.
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

Re: PIC och 1wire, strömstrul?

Inlägg av Zajber »

Tack för tipset, jag sätter den både till utgång och sen nolla för att sätta den. Jag ska testa att bara sätta TRIS:en och inte ändra hög eller låg.

Jag har ett scope, problemet började när jag skulle ställa in timingen på signalerna. __delay_us ger ett par uS fel så när jag började trimma ner från 5 och så slutade det att funka helt. Innan kunde jag iaf se att den tvingade ner bussen ibland.

Jag har coppat coden från någon som inte heller fick till det och ändrat efter behov.
Så här ser bit-sättandet ut nu:

Kod: Markera allt

void OW_write_bit (unsigned char write_bit)
{
	if (write_bit)
	{
		//Etta
		
        	TRISB4 = 0;	 				
		OW_READ_PIN = 0; 
		__delay_us(2);	// 5us?			
		OW_READ_PIN = 1;  
        	TRISB4 = 1;  				
		__delay_us(50);				
	}

	else
	{
		//Nolla
		
		TRISB4 = 0;
		OW_READ_PIN = 0;   				
		__delay_us(60);			
		OW_READ_PIN = 1;  
       		TRISB4 = 1;  				
		__delay_us(10);				
	}
}
Detta är senaste versionen innan jag gav upp och började leta efter en till hel PIC (16f88) utan att lyckas.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC och 1wire, strömstrul?

Inlägg av sodjan »

Jag har för mig att den generella rekomendationen kring 1-Wire är att antingen
använda optimerade och testade biblioteksfunktioner som hör till C-kompilatorn,
eller att skriva egna 1-Wire funktioner i ASM som man anropar från C. Men
därimot inte att försöka få till timingen i 1-Wire genom delay-funktioner
direkt i C-koden. Det kan kanske gå, med lite jobb.

> Jag har coppat coden från någon som inte heller fick till det...

Varför inte "coppa" kod som faktiskt fungerar istället ?

> ...att portarna på min PIC dör när jag kört en stund. Dör som i funkar aldrig igen...

Deet tror jag inte på. Hur är det verifierat ?
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

Re: PIC och 1wire, strömstrul?

Inlägg av Zajber »

Jag tänkte prova att justera timingen i första taget i C. Men steg ett var att se att det hände något korrekt på bussen.

Anledningen till att jag började med den koden var att jag inte hittade någon annan vi tillfälle. När jag nu har sett Maxims kodexempel så är den ganska snarlik. Vet du någon kod som funkar så kollar jag gärna på den. Gärna komplett för någon i pic16-serien med hi-tech C.

Jag testade med att sätta portarna hög utan någon annan kod inblandad. Ett enkelt "test" program. Visst kan jag ha strulat ihop detta på nått sätt också.

Hittade för övrigt denna appnote som kan vara bra när det kommer till felsökning av in och utgångar.
http://ww1.microchip.com/downloads/en/A ... 93009A.pdf
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Re: PIC och 1wire, strömstrul?

Inlägg av Kaggen »

Zajber skrev:Efter ett par tester så visade det sig att portarna på min PIC dör när jag kört en stund. Dör som i funkar aldrig igen...
Du är helt säker på att du inte felkopplat så att du får Vcc (+5V) direkt på benet utan att gå genom motståndet? Så när du drar utgången låg säger det brinn?

Har svårt att tro du kan bränna en PIC eller I/O port om du kopplat allt rätt.
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

Re: PIC och 1wire, strömstrul?

Inlägg av Zajber »

Jodå, jag har inte kopplat 5v direkt på benet.
Men ska det spela någon roll har inte ingångarna hög impedans? Typ ett par megaohm och uppåt som ingång?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC och 1wire, strömstrul?

Inlägg av sodjan »

Problemet är bara om pinnen är utgång och aktivt försöker driva i den ena
eller den andra riktiningen samtidigt som den utfrån är fast kopplad åt andra
hållet. Men, ofta överlever de även detta under kortare tid (några sek).
Igen, hur har du *verifierat* att I/O pinnarna är paj ??
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

Re: PIC och 1wire, strömstrul?

Inlägg av Zajber »

Zajber skrev: Jag testade med att sätta portarna hög utan någon annan kod inblandad. Ett enkelt "test" program.
typ
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: PIC och 1wire, strömstrul?

Inlägg av v-g »

Tro mig det är MYCKET som kan gå fel med onewire det är snudd på omöjligt att få det att funka från scratch vill jag påstå.

För att felsöka tror jag att du nästan måste ha ett oscilloskop för egen del var det mer än behövligt. Vet man inte vad man skickar och vad ds1820 skickar är man rökt. Det gäller även att timingen är rätt (inom specarna) allt detta står mycket utförligt i databladet som man rätt troligt måste läsa en 10-15 gånger. Men med gissningar (som det blir utan osc.) kommer man inte långt.

Däremot är det märkligt att du får ihjäl PIC:en de ska enligt egna empiriska tester tåla 5v rätt in i porten utan att haverera, över lag är de rätt tåliga under normala förhållanden.
Skriv svar