Sida 1 av 1
HJÄLP! Hur ska jag få kristallen att oscilera rätt?
Postat: 27 mars 2006, 16:26:50
av ADjust
Okej.
Jag har några pic-kretsar hemma som jag vill få fungera som ett rödljus med några lysdioder. Jag har gjort så att det behövs 8 stycken ut pinnar som kontrollerar lysdioderna så dom lyser rätt.
Det som jag INTE har lyckats så bra med är att få någon sorts kristall att oscilera som jag vill. Jag är HELT nybörjare på detta och jag vet inte riktigt hur jag ska göra för att få själva kretsen att gå igån med klockan. Jag trodde jag programerade kretsen till att använda sin egen interna osclator, men jag märkte till min förvåning att jag var tvungen att ha mitt labb-bräde igång för att kretsen skulle oscilera. Alltså jag använde batteri och när labbbrädet som jag var nära var avstängt så lös bara några lampor som att den hade fastnat, men sen när jag satte igån labb-brädet så började lamporna blinka som dom skulle.
Kretsen jag använder är en PIC16F627A och jag har programmeraren welleman111. Jag har byggt 2 små moduler med transistorer och resistorer som ska gå ut till alla dioderna på rödljuset. jag kopplar sedan dessa 2 moduler till PIC-kretsen.
Programmet på kretsen fungerar även om man använder sig av testpanelen på programeraren welleman111, då utan att någon klocka eller liknande är på(även labb-brädet avstängt).
Det jag måste veta nu är hur jag ska göra för att få den att oscilera ordentligt. Är det bäst att använda sig av externa kristaller? Och hur ska man då koppla in dessa på det bästa sättet? Jag behöver inte någon så exakt klocka utan det räcker om den tickar något sådär rätt.
Jag använder mig av Mikro-basic när jag proggar, eller så ändrar jag direkt i assembler-koden. Programmet skall alltså bara tända några dioder i olika ordning.
Jag är helt nybörjare på detta så klaga inte jättemycket på mig
Tacksam för ALLA svar!
/mvh ADjust
Postat: 27 mars 2006, 16:48:29
av bearing
Jag har lite svårt att förstå vad du gör för att få det att funka. Kopplas en kristall in när du sätter igång labb-brädet?
Använder du RESET-pinnen som RESET? i så falls ska den kopplas med med ett motstånd till +5V.
Postat: 27 mars 2006, 17:37:40
av ADjust
bearing skrev:Jag har lite svårt att förstå vad du gör för att få det att funka. Kopplas en kristall in när du sätter igång labb-brädet?
Använder du RESET-pinnen som RESET? i så falls ska den kopplas med med ett motstånd till +5V.
Alltså, Jag har ett labb-bräde där jag kopplade in allt förut när jag prövade lite olika saker, jag måste ha pic-kretsen i närheten av brädet för att den ska oscilera. Jag antar att det är nät-agget som påverkar den på något sätt.
Vilken pinne är reset och vilken funktion har denna?
Postat: 27 mars 2006, 17:49:13
av Zyxel615
Hur sitter labbrädet och PIC-en ihop om PIC-en inte sitter på labbrädet?
Postat: 27 mars 2006, 17:53:54
av bearing
Den sitter ovanför GND-pinnen, borde bli ben 4 va?
/RESET är det korrekta namnet, alltså inverterad RESET. Om du kopplar 0 V till den pinnen nollställs programpekaren och vissa register. Kopplar du +5V sätts kretsen igång, men ha ett motstånd mellan +5 och pinnen. Du kan inaktivera /RESET-pinnen genom att ändra en CONFIG-bit, då fungerar pinnen som en I/O-pinne.
Postat: 27 mars 2006, 18:04:41
av JimmyAndersson
ADjust:
Vore toppen om du har möjlighet att ta en bild. Då är det lättare att hänga med på kopplingen.
Vad menar du med att PIC-kretsen måste vara i närheten av brädet?
Hänger inte riktigt med på hur du menar. Möjligen kan det vara så att du får störningarn när PIC-kretsen är långt ifrån nätagget t.ex med för långa sladdar, men är inte säker på om du menar så.
Har du en avstörnings-kondensator nära PIC-kretsen? (Dvs en liten kondensator som sitter direkt över matningen på PIC-kretsen.)
Tänk på att vi inte kan se hur du kopplat. Därför är det bra att vara extra tydlig när man beskriver, eller lägga upp en bild.
Använder du en extern kristall?
Hur har du ställt in hastigheten?
Postat: 27 mars 2006, 20:04:42
av ADjust
Tänk er att jag ska ha 8 pinnar som ska kunna skicka ut en signal, vad dom skickar signalen till är inte direkt relevant. Det som jag tycker är mystiskt är att slingan bara börjar funka om det är i närheten (10cm) av själva labb-brädet som har ett inbyggt nätagg. Stänger du av brädet när du har kopplat in batteriet till kretsen så stannar den bara.
Men det kanske bara är nåt som är underligt med mitt bräde.
Det jag först och främst undrar är hur jag ska koppla in kristallen eller om jag ska köra med den interna kristallen i kretsen. Jag skulle också vilja veta vilken inställning man ska för att använda den interna eller externa kristallen(i mikro-basic). Är det "intrc_osc_clkout", eller "rc_osc_clkout".
Är inte så hemma på detta och jag måste vara klar med detta inom en vecka.
Så är tacksam för alla svar!
Kan lägga upp bilder snart så ni får se hur allt ser ut.
Postat: 27 mars 2006, 20:45:07
av JimmyAndersson
Den första delen känns som ett stort frågetecken för tillfället, men kristallen kanske jag kan hjälpa till med.
Jag kör också MikroBasic. När jag skulle använda den interna oscillatorn på en PIC18F1320 så gjorde jag såhär:
In i menyn Project -> Edit -> Device Flags.
Där sätter man (markerar) 'INTI02_OSC_1H'
Sedan detta i koden:
Kod: Markera allt
OSCCON.IDLEN = 0 ' Run-mode enabled; CPU-core is clocked in Run-modes, but not in Sleep-mode.
OSCCON.IRCF2 = 1 ' 8MHz! Internal Oscillator Frequency. (Source drives clock directly.)
OSCCON.IRCF1 = 1 ' 8MHz! Internal Oscillator Frequency. (Source drives clock directly.)
OSCCON.IRCF0 = 1 ' 8MHz! Internal Oscillator Frequency. (Source drives clock directly.)
OSCCON.SCS1 = 1 ' Internal oscillator.
Men för att se hur du gör med just din PIC-krets så måste du kolla databladet. Det finns inga genvägar.
I databladet finns även all info om hur du kopplar en extern kristall och allt annat som har med din PIC-krets att göra.
Postat: 27 mars 2006, 21:36:01
av Zyxel615
Jag får intrycket att du inte har PIC-en och labbplattan ihopkopplad på något sätt, men det låter ju helknasigt.
Postat: 27 mars 2006, 21:43:29
av sodjan
> Är det bäst att använda sig av externa kristaller?
Beror på hur exakta tider du behöver i applikationen samt hur
snabbt du måste köra. Finns inget generellt svar.
Dessutom är kristaller *alltid* "externa" eftersom det inte finns några "interna kristaller"...
> ...Och hur ska man då koppla in dessa [kristaller] på det bästa sättet?
> Vilken pinne är reset och vilken funktion har denna?
RTFM, brukar vara standardsvar på sådana frågor...
Alltså, *LÄS* dokumentationen, speciellt databladet till processorn !!
*Sedan* är det dags att fråga om det som är oklart.
> /RESET är det korrekta namnet,
Hjälper en nybörjare enormt när den faktiskt heter MCLR !
Det blir ganska förvirrande att läsa databladet...
> Det som jag tycker är mystiskt är att slingan bara börjar funka om det är i närheten....
Låter som om du har oanslutna ingångar. Har du det ?
Sätt dom som utgångar eller anslut dom till Vcc eller Vdd.
Oansluten MCLR kan ge samma symptom...
Jimmys inställningar för INTOSC gäller för *hans* processor och stämmer
inte alls för en 16F627A. Som sagt databladet, databladet, databladet...

Postat: 27 mars 2006, 21:54:37
av bearing
Ja, fel av mig... igen...
Fast /MCLR borde den heta eftersom den är aktiv låg

Postat: 27 mars 2006, 22:49:30
av ADjust
Lite spänning till MCLR hjälpte perfekt. Nu drivs allt med batteriet och det fungerar. Tack för att hjälp trots att jag är den största nybörjaren här.
Kan kanske slänga upp lite bilder på resultatet sen.
TACK!