Långsam flank efter diod kopplad till utgång på PIC.
Långsam flank efter diod kopplad till utgång på PIC.
Hej, använder en PIC16F886, 20MHz kristall, på 5V. Till en pinne på PortB har jag kopplat 3 st 1n4148 i serie och sedan ett 10K motstånd till jord för att sänka spänningen till ca 3.5V. När jag mäter med oscilloskop efter första dioden, eller nästa, spelar ingen roll, så blir flanken från hög (5V) till låg (0V) väldigt utdragen, nästan en halv millisekund. Från låg till hög är flanken spikrak.
Kan detta bero på diodernas kapacitans? Enligt databladet ligger den på 4pF, så totalt ca 12pF, vilket jag inte tycker borde påverka så mycket. Jag har gjort en simulering i LTspice, och där blir båda flankerna raka.
Koden är skriven i MikroC 8.2. För att toggla pinnen skriver jag PORTB.F2 = 0; och sedan en Delay och sedan PORTB.F2 = 1;
Någon som känner igen problemet?
Kan detta bero på diodernas kapacitans? Enligt databladet ligger den på 4pF, så totalt ca 12pF, vilket jag inte tycker borde påverka så mycket. Jag har gjort en simulering i LTspice, och där blir båda flankerna raka.
Koden är skriven i MikroC 8.2. För att toggla pinnen skriver jag PORTB.F2 = 0; och sedan en Delay och sedan PORTB.F2 = 1;
Någon som känner igen problemet?
Re: Långsam flank efter diod kopplad till utgång på PIC.
En diod leder ju bara ström i ena riktningen. Så det finns ju inget
som *aktivt* drar motståndet till jord, förrutom de 10 Kohm'en i sig.
Om det finns någon kapacitans som lagrar lite laddning så måste det
laddas ur genom 10 Kohm, det är nog den flanken du ser.
> När jag mäter med oscilloskop efter första dioden, eller nästa, spelar ingen roll
Och om du mäter över motståndet (det är väl där det spelar roll) ?
> Jag har gjort en simulering i LTspice, och där blir båda flankerna raka.
Sätt en liten kapacitans över motståndet (ett par till ett par 10-tals
pF borde räcka) och prova igen.
Lösning: Använd två motstånd ("spänningsdelare") istället.
som *aktivt* drar motståndet till jord, förrutom de 10 Kohm'en i sig.
Om det finns någon kapacitans som lagrar lite laddning så måste det
laddas ur genom 10 Kohm, det är nog den flanken du ser.
> När jag mäter med oscilloskop efter första dioden, eller nästa, spelar ingen roll
Och om du mäter över motståndet (det är väl där det spelar roll) ?
> Jag har gjort en simulering i LTspice, och där blir båda flankerna raka.
Sätt en liten kapacitans över motståndet (ett par till ett par 10-tals
pF borde räcka) och prova igen.
Lösning: Använd två motstånd ("spänningsdelare") istället.
Re: Långsam flank efter diod kopplad till utgång på PIC.
Oscilloskopet har en del kapacitans på ingången (typiskt 20pF?). Tillsammans med 10k-motståndet segar det ner den fallande flanken en del.
Re: Långsam flank efter diod kopplad till utgång på PIC.
Tack för svar sodjan och calmar, nu förstår jag varför det blir som det blir.. I princip så blir signalen mellan två av dioderna "flytande" förutom den lilla µA strömmen som går i backriktningen genom dioden till jord (0V PIC), och oscilloskopets kapacitans som laddas ur sakta gör att man ser det som att flanken går ned långsamt. Mäter man över motståndet så ser signalen normal ut eftersom den dras till jord. Men helst vill jag inte ha något pull-down motstånd, som krävs för att det ska gå lite ström igenom dioderna för att få framspänningsfall, eftersom jag inte vet hur det ser ut på mottagarsidan..
Ska utveckla problemet.
I en äldre CNC maskin, tidigt 80-tal, sitter en remsläsare som jag skall emulera för att kunna skicka program via RS232.
En av signalerna signalerar att 8 databitar är klara att läsa av (Strobe). Just denna signal kommer ut från en 7404 IC (Hex Inverter). Databladet för denna säger att typiskt så ligger en hög signal på 3.5V och mätning visar 3.8V. Styrsystemet drivs på 5V.
Eftersom jag inte vet hur det är kopplat där denna signal läses av, och absolut inte vill ha sönder något, vill jag sänka spänningen ut från PICen till den nivå som denna IC skickar ut. ICn som tar emot signalen drivs säkert på 5V och en 5V signal skulle säkert vara helt ofarlig, men jag kommer inte åt att se i maskinen hur det kortet ser ut. Databitarnas spänning ligger på 4.8V.
Har ni några tips på hur jag ska sänka spänningen? Spänningsdelare vet jag inte om det fungerar eftersom det kan finnas pull-up eller pull-down motstånd inne i maskinen.
Ska utveckla problemet.
I en äldre CNC maskin, tidigt 80-tal, sitter en remsläsare som jag skall emulera för att kunna skicka program via RS232.
En av signalerna signalerar att 8 databitar är klara att läsa av (Strobe). Just denna signal kommer ut från en 7404 IC (Hex Inverter). Databladet för denna säger att typiskt så ligger en hög signal på 3.5V och mätning visar 3.8V. Styrsystemet drivs på 5V.
Eftersom jag inte vet hur det är kopplat där denna signal läses av, och absolut inte vill ha sönder något, vill jag sänka spänningen ut från PICen till den nivå som denna IC skickar ut. ICn som tar emot signalen drivs säkert på 5V och en 5V signal skulle säkert vara helt ofarlig, men jag kommer inte åt att se i maskinen hur det kortet ser ut. Databitarnas spänning ligger på 4.8V.
Har ni några tips på hur jag ska sänka spänningen? Spänningsdelare vet jag inte om det fungerar eftersom det kan finnas pull-up eller pull-down motstånd inne i maskinen.
Re: Långsam flank efter diod kopplad till utgång på PIC.
>7404 IC (Hex Inverter)
Vilken typ på IC ?
Vad för bokstävr står före 7404 ?
http://en.wikipedia.org/wiki/Logic_family
Vilken typ på IC ?
Vad för bokstävr står före 7404 ?
http://en.wikipedia.org/wiki/Logic_family
Re: Långsam flank efter diod kopplad till utgång på PIC.
HD7404P är beteckningen på ICn, tror den är tillverkad av Hitachi.
74 - the "standard TTL" logic family had no letters between the "74" and the specific part number.
74 - the "standard TTL" logic family had no letters between the "74" and the specific part number.
Re: Långsam flank efter diod kopplad till utgång på PIC.
> I en äldre CNC maskin, tidigt 80-tal, sitter en remsläsare som jag skall emulera för att kunna skicka program via RS232.
He he, där jag jobbade tidigare hade vi olika CNC maskiner som vi installerade
BTR ("Behind Tape Reader") kort i för att kunna köra dom från datorerna (PDP-11)
Pappersremsorna ersattas av filer på systemet.
Men men, du *måste* nog ta reda på mer om hur ingångarna ser ut i maskinen.
Hur du ska driva dom beror ju på hur det ser ut. Min gissning är att du sannolikt
kan driva dom direkt med 5V signaler, de spänningar som du ser som är lite
lägre än 5V ser ut som vanliga TTL nivåer, men de kan även drivas med 5V. Det är
normalt inga problem att köra CMOS logik mot TTL dito. Tvärtom kan vara lite knivigt,
det kan behöva vara TTL varanterna som är CMOS kompatibla.
Men i detta fall är det enbart enkelriktat *in* till maskinen ?
> men jag kommer inte åt att se i maskinen hur det kortet ser ut.
Öppna maskinen kanske ?
He he, där jag jobbade tidigare hade vi olika CNC maskiner som vi installerade
BTR ("Behind Tape Reader") kort i för att kunna köra dom från datorerna (PDP-11)
Pappersremsorna ersattas av filer på systemet.
Men men, du *måste* nog ta reda på mer om hur ingångarna ser ut i maskinen.
Hur du ska driva dom beror ju på hur det ser ut. Min gissning är att du sannolikt
kan driva dom direkt med 5V signaler, de spänningar som du ser som är lite
lägre än 5V ser ut som vanliga TTL nivåer, men de kan även drivas med 5V. Det är
normalt inga problem att köra CMOS logik mot TTL dito. Tvärtom kan vara lite knivigt,
det kan behöva vara TTL varanterna som är CMOS kompatibla.
Men i detta fall är det enbart enkelriktat *in* till maskinen ?
> men jag kommer inte åt att se i maskinen hur det kortet ser ut.
Öppna maskinen kanske ?
Re: Långsam flank efter diod kopplad till utgång på PIC.
Just ett sånt BTR kort är det jag försöker bygga 
Skillnaden mellan TTL och CMOS nivåer hade jag inte tänkt på.
> Men i detta fall är det enbart enkelriktat *in* till maskinen ?
Det är en signal som skall tas emot av PICen och det är när styrsystemet vill att remsläsaren ska rulla fram till nästa rad på remsan. Denna signal är kopplad till RB0/INT på PICen.
Det är en ingång med "Schmitt trigger buffer" och för hög signal gäller 0.8*Vcc vilket vid 5V blir 4V och min. för TTL är 2.0V
(3.8V som jag mätte räcker även det inte!).
Måste då köra PICen på lägre spänning. Så om jag sätter 3.4V som gräns (mätte upp 3.8V) skall matningen till PICen ligga på 4.25V.
Utgångarna på PICen har hög nivå som Vcc - 0.7 vilket då blir 3.55V vilket ligger inom TTL nivåerna (min 2.0). Spänningarna för låg signal ligger inom gränserna. Finns det någon buffertkrets som fixar sånt här?

Skillnaden mellan TTL och CMOS nivåer hade jag inte tänkt på.
> Men i detta fall är det enbart enkelriktat *in* till maskinen ?
Det är en signal som skall tas emot av PICen och det är när styrsystemet vill att remsläsaren ska rulla fram till nästa rad på remsan. Denna signal är kopplad till RB0/INT på PICen.
Det är en ingång med "Schmitt trigger buffer" och för hög signal gäller 0.8*Vcc vilket vid 5V blir 4V och min. för TTL är 2.0V

Måste då köra PICen på lägre spänning. Så om jag sätter 3.4V som gräns (mätte upp 3.8V) skall matningen till PICen ligga på 4.25V.
Utgångarna på PICen har hög nivå som Vcc - 0.7 vilket då blir 3.55V vilket ligger inom TTL nivåerna (min 2.0). Spänningarna för låg signal ligger inom gränserna. Finns det någon buffertkrets som fixar sånt här?
Senast redigerad av willmans 13 april 2010, 16:14:12, redigerad totalt 1 gång.
Re: Långsam flank efter diod kopplad till utgång på PIC.
> Just ett sånt BTR kort är det jag försöker bygga
De vi hade var byggda av Intel (eller om det var av Digital, men tror inte
det) och hade en 8085 processor samt lite anpassningslogik (RS232 och
drivers mot CNC maskinerna).
Enklast är nog att sätta in lite 74HC logik imellan för TTL/CMOS
anpassningen. Då får du nog nivåanpassningen samtidigt som du
får lite skydd för PIC-pinnarna, vilket du ju ändå behöver. Det är inte
att rekomendera att köra PIC-pinnarna direkt mot CNC maskinen.
De vi hade var byggda av Intel (eller om det var av Digital, men tror inte
det) och hade en 8085 processor samt lite anpassningslogik (RS232 och
drivers mot CNC maskinerna).
Enklast är nog att sätta in lite 74HC logik imellan för TTL/CMOS
anpassningen. Då får du nog nivåanpassningen samtidigt som du
får lite skydd för PIC-pinnarna, vilket du ju ändå behöver. Det är inte
att rekomendera att köra PIC-pinnarna direkt mot CNC maskinen.
Re: Långsam flank efter diod kopplad till utgång på PIC.
Jag har tittat på 74HCT245 (Octal buffer and line driver with 3-state output (Non-inverting))
Datablad: http://www.nxp.com/documents/data_sheet/74HC_HCT245.pdf
HCT varianten är kompatibel med TTL nivåer och CMOS nivåer. Behövs 2st till min krets.
Är det en sådan IC du menar sodjan? Varför rekommenderas det inte att köra PICen direkt mot CNCn? Jag har tänkt använda separat matning till PICen.
Datablad: http://www.nxp.com/documents/data_sheet/74HC_HCT245.pdf
HCT varianten är kompatibel med TTL nivåer och CMOS nivåer. Behövs 2st till min krets.
Är det en sådan IC du menar sodjan? Varför rekommenderas det inte att köra PICen direkt mot CNCn? Jag har tänkt använda separat matning till PICen.
Re: Långsam flank efter diod kopplad till utgång på PIC.
> Är det en sådan IC du menar sodjan?
Kanske det. Inte osannolikt.
Men jag vet för lite om det aktuella fallet för att säga någonting säkert.
> Varför rekommenderas det inte att köra PICen direkt mot CNCn?
Rent generellt, av flera olika orsaker, så bör man inte "visa" PIC-pinnarna
direkt till "omvärden". Mest p.g.a av att andra kretsar (speciellt de som
är byggda som "drivers") är mer robusta och tål mer störningar och dessutom
sannolikt är billigare och enklare att byta ut en hela processorn. Man brukar
även ofta montera de kretsar som sitter sist mot "omvärlden" på hållare
just för att det ska gå snabbt och enkelt att byta ut dom om något händer.
Detta gäller både apparatens in som ut-gångar. Sätt någonting emellan som
är mer byggt för att tåla lite mer omild behandling.
Kanske det. Inte osannolikt.
Men jag vet för lite om det aktuella fallet för att säga någonting säkert.
> Varför rekommenderas det inte att köra PICen direkt mot CNCn?
Rent generellt, av flera olika orsaker, så bör man inte "visa" PIC-pinnarna
direkt till "omvärden". Mest p.g.a av att andra kretsar (speciellt de som
är byggda som "drivers") är mer robusta och tål mer störningar och dessutom
sannolikt är billigare och enklare att byta ut en hela processorn. Man brukar
även ofta montera de kretsar som sitter sist mot "omvärlden" på hållare
just för att det ska gå snabbt och enkelt att byta ut dom om något händer.
Detta gäller både apparatens in som ut-gångar. Sätt någonting emellan som
är mer byggt för att tåla lite mer omild behandling.