PIC i krets

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
xezer
Inlägg: 65
Blev medlem: 8 mars 2005, 20:41:21

PIC i krets

Inlägg av xezer »

Hej!
Jag har nyligen inlett en stark relation med lödkolven och börjat ge mig på PIC processorer. Jag har borstat av en K8048 och satt mig ner och börjat programmera en 16F628A. Såhär långt går bra. När jag programmerat PICen ska jag sätta fast den på en kopplingsplatta, och här går allt fullkomligt fel.

Som det ser ut nu är kopplingen
VDD - Kopplad till 5V
VSS - kopplad till jod
OSC1 - till kristall -> kondensator -> jord
OSC2 - till kristall -> kondensator -> jord
RB3 - 330Ohm resistor-> diod-> jord

Programmet ska ge ut signal på RB3 men det gör den inte, dessvärre inget annat ben heller :cry:
Något förslag på vad som kan vara fel?
Tack på förhand!
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

MCLR (ben 4) är en inverterad reset för processorn.
Måste kopplas mot +5volt med ett motstånd (~33k ohm)

sedan ska du även ha avkopplingskondningar mellan kristallen och jord.
Kolla "microkontrollers för nybörjare" i guider delen på forumet hur du kopplar.
xezer
Inlägg: 65
Blev medlem: 8 mars 2005, 20:41:21

Inlägg av xezer »

MCLR är nu begåvat med 5V och en resistor på 33K ohm.
Avkopplingskondensatorerna är med på plats.
Detta löste dock inte problemet; att inga utsignaler ges :/
Jag har läst guiden av $tiff, mycket innehållsrik och bra skriven guide!
Kan inte förstå vad som är fel bara :/
Sova på problemet.


Som det ser ut nu är kopplingen
VDD - Kopplad till 5V
VSS - kopplad till jod
MCLR - 33K resistor -> 5V
OSC1 - till kristall -> kondensator -> jord
OSC2 - till kristall -> kondensator -> jord
RB3 - 330Ohm resistor-> diod-> jord
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

Hur ser koden ut då ?
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

DragonOrb & xezer: Vid kristallen ska det INTE på "avkopplingskondensatorer", det är belastningskondensatorer. Skillnaden är att avkopplingen ligger i storleken 100nF och belastningen i storleken 22pF.

Dessa kondensatorer gör att det bildas ett sorts mittuttag på kristallen, detta fungerar då ung. som en svängningskrets där man har lagt GND på mittuttaget på spolan. Om man då lägger en stigande flank in på ena sidan får man en fallande flank på den andra sidan och vice-versa och detta passer ju perfekt med att oscillatorförstärkaren är en inverter.

Så det är _inte_ avkoppling, det är impedanstillpassning och "syntetisk mittuttag" som man har dessa kondinger för. Deras storlek ska ligga på 18-22pF i de flesta fall, har man ett precisionskristall och det ska gå exakt ska man räkna på det med datablad i handen men 18-22pF duger "som standart".
Senast redigerad av Icecap 26 april 2006, 04:22:15, redigerad totalt 1 gång.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7476
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Har Du oscilloscop? Har Du i så fall kontrollerat att kristallen svänger? Om Du inte har scope kanske Du har en radiomottagare som kan ta emot kristallens frekvens eller någon av dess inte allt för höga övertoner. Du är väl medveten om att configuration word måste programmeras om för kristallosillator, default med alla bitarna ettor är RC-oscillator.
Ger Din spänningskälla ett snabbt och "rent" tillslag? Annars skall Du också ha en konding mellan /MCLR och GND. Den skall vara så stor att Vdd har hunnit stabilisera sig på rätt värde innan reseten släpper. I så fall bör Du även ha 1k i serie med /MCLR för att skydda kretsen.
xezer
Inlägg: 65
Blev medlem: 8 mars 2005, 20:41:21

Inlägg av xezer »

Som kondensatorer mellan kristallen och jorden satte jag dit några som låg på skrivbordet, vet inte vilka exakta värden de ligger på, det står "104 2.5V KCK", vet inte vad som menas med det.

Nej tyvärr, jag har inget oscilloscop, det hade dessvärre inte min skola heller, men nu har de beställt, så det är på gång ;)
Jag tar 5V från ett gammalt nätaggregat, floppy-disk-kabeln, den bör väll ge ett rent tillslag?
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

Om du inte kondningarna som icecap beskrev så använd den interna oscillatorn i PIC´en istället.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7476
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

104 skall tydas på samma sätt som färgringarna på ett motstånd och anger kapacitansen i pF. Du har alltså 100000pF = 100nF = kortslutning till jord kopplat till kristallen. Åtgärda det först av allt.

2.5V betyder 2.5volt max spänning över kondensatorn. Får den mera går den sönder.

Har Du ett PC-aggregat och intebelastar det med annat samtidigt är det osäkert om detta fungerar korrekt. Har Du kontorllerat spänningen?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jösses... :-) :-)

> och börjat programmera en 16F628A.

Vad är "programmera" ???
Verktyg ? Utvecklingsmiljö ?

> Något förslag på vad som kan vara fel?

Din beskrivning av vad du gör, först och främt. Utvecklingsverktyg,
exemepl på koden som inte fungerar o.s.v.

Börja med att ladda ner databladet till 628A, stängs sedan av alla
elektroniska prylar ett par dagar och *LÄS* databladet !!

Kasta PC-agget, det är antagligen det sämsta du kan välja.
Bäst och enklast är en vanlig "batterieliminator" på 9-12 V samt en
7805 stabb på kopplingsplattan. Själv tycker jag denna :
http://www.tradera.com/auction/auction. ... d=27813592
och tycker att det fungerar utmärkt, men det kan ju även bero
på att jag säljer den själv... :-)

Se sedan till att du *inte* behöver flytta PIC'en mellan om-programmeringarna !
Programmera direkt på kopplingsplattan, annars har du snart böjda/brutna ben...

Din tabbe med kristall-kondingarna är redan besvarad av andra...
xezer
Inlägg: 65
Blev medlem: 8 mars 2005, 20:41:21

Inlägg av xezer »

Marta, ah okej :)

Sodjan, Programmera är att ge processorn instruktioner.
Jag använder MPLab för att assemblera och WinPIC för att skicka över datan till pic:en. Det är en Valleman K8048 jag använder.
Koden fungerar, programmeraren har indikatorer för utmatningen. för tillfället ger RB1-RB6 konstant utmatning.
Det jag igentligen vill få ut av att sätta picen på kopplingsplattan är att se hur det fungerar i en egen krets.

Ska nog ta en beställning på batterieliminatorn då :)

Nu ska jag testa att använda mig av programmerarens kristall :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Sodjan, Programmera är att ge processorn instruktioner.

Kul...

> Koden fungerar, programmeraren har indikatorer för utmatningen.

Så allt fungerar alltså helt OK på K8048'an ?
Applikationen gör det den ska ?

> Det jag igentligen vill få ut av att sätta picen på kopplingsplattan är att se hur det fungerar i en egen krets.

Rätt spänning (avkopplad).
Rätt osc inställnig (och inkoppling). Hur ser din __CONFIG ut ?
MCLR.
LVP av.

> Nu ska jag testa att använda mig av programmerarens kristall

Du menar att flytta kristallen från K8048 till kopplingsplattan ?
Vad är det för kristall ? Och vilken har du kört med tidigare ?
Notera att det inte var kristallen som var fel, utan kondingarna !
xezer
Inlägg: 65
Blev medlem: 8 mars 2005, 20:41:21

Inlägg av xezer »

Allt fungerar finfint på K8048'an.
Den skicka ut signaler precis som jag ber den att göra :D

Min __CONFIG ser ut som följande:
__CONFIG _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _XT_OSC

Nej, altså jag tänkte dra pinnar från kopplingsplatten till de oscillerande benen på K8040an och använda den som oscillator, antar att den har rätt kondingar :)
Som kristall har jag en 4Mhz HCJ.
På K8048an sitter det en 4Mhz CALTRON(?).

Jag har även ändrat i koden så att bara RB3 sänder ut en signal, dit jag har kopplat en resistor(330ohm) till en diod.
Nu har problemet dock inverterats, alla benen ger nu utsignal :?
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg av DragonOrb »

byt ut

Kod: Markera allt

_XT_OSC 
mot

Kod: Markera allt

_INTRC_OSC_NOCLKOUT


då kör du med den interna oscillatorn på 4mhz

skaffa sedan riktiga kondningar till kristallen.
xezer
Inlägg: 65
Blev medlem: 8 mars 2005, 20:41:21

Inlägg av xezer »

Tack!
Nu fungerar allting :) Alla ska ha ett stort tack!
Kul med ett så aktivt och hjälpande forum :D
Skriv svar