Sida 1 av 4
Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 13 september 2012, 22:36:17
av ElectricNooB
Hej! Jag satt och lekte lite med en PIC 16f690.
När jag skulle ställa in oscillatorn så såg jag att man kunde ha läget ”INTOSC – Internal oscillator with FOSC/4 output on OSC2 and I/O on OSC1/CLKIN.”.
Kul tänkte jag, och ”probade” OSC2 pinnen (pin 3 På PDIP paketet) med oscilloskopet. Till min förvåning så var frekvensen 1.25MHz!
Är det någon vänlig själ som kan förklara om jag tänker fel eller om det är något som är lurt.
Enligt mitt hjärnkontor så skall frekvensen på OSC2 pinnen vara 8MHz/4=2MHz.
Jag har ställt in OSCCON registret så att frekvensen är 8MHz. OSCTUNE registret står på noll.
Hjälp!
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 13 september 2012, 22:49:05
av sodjan
Eftersom du tydligen i alla fall har ett oscilloskop så är det ju väldigt
enkelt att fixa en liten kod som togglar en pinne och kolla frekvensen
den vägen. Vad får du får resultat då ?
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 00:12:19
av ElectricNooB
Okej, bra förslag. Sagt och gjort:
Jag är van att skriva i C men eftersom jag ville ha koll på timingen så knackade jag ihop lite svinful assembler. It ”does the job”.
Instruktionerna movlw 0x00 och movwf PORTC tog 1.600µs. Vardera instruktion tar enl. databladet 1 ”Cycles” tid.
Fram med TI-82'an: 1 cykel=1.600µs/2=800ns Då en cykel är 4 perioder (T) lång är T=800ns/4=200ms. Klockfrekvensen är således 1/T => 1/200ms=5.00MHz.
Detta kan jämföras med:
Frekvensen på OSC2 pinnen: 1.25MHz. Då detta som jag har förståt det enl. databladet är en fjärdedel av klockfrekvensen. => 1.25MHz*4=5.00Mhz
Slutsats: Vad i helvete?
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 00:46:22
av ToPNoTCH
Svaret är 5MHz.
Skämt åsido så är ju det inget giltigt preescaler mode, och om OSCTUNE verkligen ÄR noll, så har den lille kinesen som fabrikskalibrerat den tagit en "power napp" när den strök förbi på linen.
Hmmm...
Kan man verkligen tuna så mycket.
Jag har själv aldrig pillat på OSCTUNE så jag vet inte, men att man kan "finjustera" 3MHz låter inte rimligt.
Det hela låter väldigt konstigt.
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 01:15:24
av ElectricNooB
Hehe, 1 poäng till dig!
Men jag misstänker att det har med mjukvaran att göra. Jag kopplade nämligen in en likadan µC köpt vid ett annat tillfälle men problemet kvarstod. Men som du sa, det är skumt med tanke på OSCTUNE. Jag måste nog hårdstudera databladet men det gör jag imorgon, Go natt!
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 11:27:28
av sodjan
Vi behöver hela ditt ASM exempel inkl CONFIG uppsättning.
Utan det så blir det bara gissningar. Dina beräkningar ser
väldigt märkliga ut.
> Jag har ställt in OSCCON registret så att frekvensen är 8MHz.
Jag har ingen som helst anledning att tro på det.
Visa att vad du har gjort och inte vad du tror att du har gjort.
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 11:38:54
av ElectricNooB
Okej, will do när jag kommer till den datorn, men det är väl fysiskt omöjligt att få till en 5MHz klockfrekvens även om jag skulle försöka?
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 11:45:47
av sodjan
Jo, det låter konstigt. Ett rent mätfel/handhavandefel
med oscilloskopet är ju också tänkbart. Jag fattar inte hur
ditt program är gjort, är det ingen loop ??
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 11:52:06
av Icecap
Omedelbart låter det som mätfel. Då jag inte vet vilket oscilloskop det rör sig om och inte heller vilka inställningar det har är det ju svårt att svara på speciellt mycket men jag skulle tippa att PIC'en nog är den som gör rätt...
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 11:53:26
av sodjan
> Instruktionerna movlw 0x00 och movwf PORTC tog 1.600µs.
Hur vet du det ?
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 13:25:38
av ElectricNooB
Jag gjorde ett nytt program som togglar RC0. RC0 är nu en ”etta” i 800ns och en nolla i 2.400µs
Oscilloskopet jag använder är kjells oc co´s UNI-T UTD2052CL
Jag skickar med ett par screenshots, det kan ju vara jag som mäter fel.
Kod: Markera allt
__CONFIG b'010010000101'
list p=16f690
#include <p16f690.inc>
ORG 0x000
bsf STATUS,RP0 ;bank 1
bcf STATUS,RP1
movlw 0x000
movwf TRISC
movlw b'01110110'
movwf OSCCON
movlw 0x000
movwf OSCTUNE
bcf STATUS,RP0 ;bank 0
bcf STATUS,RP1
movlw 0x000
movwf PORTC
loop
bsf PORTC,RC0
bcf PORTC,RC0; Tills denna är klar är RC0=1, detta varar 1 cykel, rätt eller fel?
goto loop
END
RC0:
RC0.PNG
OSC2:
OSC2.PNG
EDIT: Kan någon klargöra, Om allt var som det skulle, skulle frekvensen på OSC2 vara 2MHz?
DUBBELEDIT: Nvm, jag testade en gammal 18f4550´a och där var frekvensen på pinne RA6 2.00MHz. Detta borde väl utesluta oscilloskopet?
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 13:55:00
av Icecap
Kollade lite på CONFIG och jag fick värdet till:
0b00000011110101
Sedan kan man testa att toggla bit'en på följande sätt:
movlw 0x01 ; Motsvarar vilken bit man vill toggla
loop
iorwf PORTC, f
goto loop
Det ger jämn pulsbredd på båda sidorna så att säga.
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 13:57:28
av ElectricNooB
Ja, jag är ingen mästare på asm, men det borde väl inte orsaka problemet? Btw kolla min edit på mitt föregående inlägg.
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 14:01:36
av Icecap
Nej, jag skulle bara visa hur jävla överlägsen jag är
Men din mätning verkar korrekt och jag undrar om kretsen ha varit utsatt för mobbning eller andra psykiska påfrestningar? Har du testat med den "rätta" config-rad?
Re: Konstig frekvens på OSC2 pinnen. PIC16F690. Hilfe!
Postat: 14 september 2012, 14:09:11
av ElectricNooB
Det har jag aldrig betvivlat
Jag provade med din config rad och problemet kvarstod. Jag har även provat med en annan 16f690 och där var frekvensen 1.24MHz... Jag skall leta fram några andra µC´s men dom är SMD chip så det tar ett tag att få igång dom alá deadbug... Det kan hända att dom jag använder nu är ESD-skadade då dom är rätt gamla. Men att båda har exakt samma problem är märkligt...