sjors007
...
hallo,
ik ben nu bezig met een Pic 16F870. 20MHz kristal aangesloten op poorta.6,7 (pin nr 9,10) wanneer ik nu een simpel programma erin stop, werkt het niet!
device 16F870
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, HS_OSC
XTAL = 20
ALL_DIGITAL TRUE
clear
while 1 = 1
toggle portb.7
delayms 150
toggle porta.0
wend
end hij laat ongeveer 2 seconden knipperen en daarna stopt ie ermee. beetje aan het kristal rommelen maar verder geen resultaat. stroom eraf...en er weerop, weer paar seconden en dan weer uit. zie ik iets stoms over het hoofd..??:p
ik denk zelf dat het iets te maken heb met me kristal maar weet het niet zeker.
MVG Sjors
moet er niet nog 1 extra ding bij config.
is een gokje, hij lijkt wat kort ?
edit, ja de MCLR pin. wat doe je daarmee?
zet MCLRE_OFF er een bij, kijken we dan nog eens.
[Bericht gewijzigd door JesperR op (17%)]
sjors007
...
Krijg een foutmelding!
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, HS_OSC, MCLRE_OFF invalid fuse setting [MCLRE_OFF]!
dat was een gokje 
moet je even opzoeken van de variant is bij die pic
mijn 2e gok zou dan zijn MCLR_OFF
[Bericht gewijzigd door JesperR op (20%)]
Er is geen MCLR fuse in de 16F870.
Xtal met 2*22pF en hoe is /MCLR aangesloten?
[Bericht gewijzigd door Henry S. op (21%)]
sjors007
...
Xtal met 2*22pf ik heb de MCLR op pin nr. 1 aangesloten.
net deed ie het wel een tijdje maar wanneer ik dan me MCLR draad eruit haal stopt ie er weer mee. alsof ie afhankelijk is van die draad.
hij heeft ook enige tijd nodig met opstarten voordat ie werkt. dus als ik hem aanzet duurt het 1 a 2 seconden voordat ie begint met Togglen, dan werkt ie paar seconden en stopt hij er weer mee.
Sjors
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
sjors007
...
ik heb het zoals deze manier aangesloten:
http://www.picbasic.nl/frameload.htm?http://www.picbasic.nl/pic-wisp.h…
daar zie ik nergens een pull-up Weerstand (deze is voor een 16F628A, maar moet dat voor de 16F870 wel??)
Sjors
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Zucht... (Wanneer beginnen mensen nu eens met het lezen van de datasheet???
)
MCLR is de reset pin. Als die zweeft blijft 'ie resetten. Bij de 628 kun je de MCLR pin disablen.
Op 5 oktober 2009 19:31:06 schreef sjors007:
ik heb de MCLR op pin nr. 1 aangesloten.
Dus je hebt de /MCLR draad op de /MCLR aangesloten.
net deed ie het wel een tijdje maar wanneer ik dan me MCLR draad eruit haal stopt ie er weer mee. alsof ie afhankelijk is van die draad.
Ja, dat is de /MCLR ook, en bij de 16F870 niet uit te schakelen.
Op 5 oktober 2009 19:48:23 schreef sjors007:
daar zie ik nergens een pull-up Weerstand (deze is voor een 16F628A, maar moet dat voor de 16F870 wel??)
De zet vanaf pin1 10k naar de +5V en 100nF naar de gnd.
Idd datasheet lezen, ander type = andere datasheet, behalve binnen een serie.
sjors007
...
oke bedankt voor jullie informatie;) zal morgen even 10K weerstandje halen;)
ik snap eigenlijk nooit zoveel van die datasheets op dat gebied.
kan iemand me simpel uitleggen hoe je nou de juiste fuses nodig heb. sommige fuses gebruik je wel en sommige niet.
Sjors
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Je zult toch eerst de datasheets moeten lezen. Hoe weet je anders wat je aan welke pin moet of kunt aansluiten? Toch niet door uitproberen hoop ik?
De fuses staan er ook in beschreven. Welke je nodig hebt hangt af van welke opties je gebruikt.
(oscillator type, Power-up timer, Watchdog timer, Brown-out reset,...)
sjors007
...
ik lees de datasheets wel:p voor het aansluiten enzo maar over de fuses enzo dat gedeeelte snap ik nooit.
zoals je al zegt
(oscillator type, Power-up timer, Watchdog timer, Brown-out reset,...)
wat houd alles in en moet je deze bijvoorbeeld aan of uit zetten
Sjors
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Dat staat allemaal duidelijk omschreven in de datasheet, hoofdstuk 11.
Het heeft weinig zin om hier de hele datasheet te kopieeren...
Watchdog, Power-up, Brown-out zijn trouwens algemene termen die (bijna) alle MCU's gebruiken, ook andere merken.
En gebruik als hulpmiddel de Fuse Configurator plug-in.
[Bericht gewijzigd door Henry S. op (19%)]
sjors007
...
het werkt!;) met behulp van die 10K
nog even snel een vraagje
T2CON = %01000111 ; Postscaler 1:5, Prescaler 1:16geeft dit een postscaler van 1:5 weer en een prescaler van 1:16
ik gebruikte namelijk eerst interne oscilater(4Mhz) nu ben ik over gestapt naar 20Mhz kristal dus heb me postscaler naar 1:5 gezet (stond eerst op 1:1) maar nu werkt een seconden te traag en zie ik dus me 7 segment display knipperen
Sjors
sjors007
...
kan echt niemand vertellen of dit een postscaler van 1:5 weergeeft en een prescaler van 1:16?
T2CON = %01000111 ; Postscaler 1:5, Prescaler 1:16Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Zonder verdere informatie over de timer valt er niet veel te zeggen over de interrupt rate. Waarmee laad je de timer?
sjors007
...
me post scaler moet gewoon met 1:5 geladen worden en me prescaler 1:16
nu had ik eerst de interne oscilator(4MHz) daarmee had ik me postscaler 1:1 staan, dan kreeg ik een interrupt op 2 ms.
pr2 124
prescaler 1:16
postscaler 1:1
maar nu wil ik overgaan naar 20Mhz dus moet ik me postscaler veranderen naar 1:5 en aangezien het getal 5, 4 binear is (0100) lijkt het mij dat er moet komen staan in me T2con
T2CON = %01000111 ; Postscaler 1:5, Prescaler nou is me vraag klopt dit of niet? geeft T2con nou 1:5 postscaler en 1:16 prescaler
Op 8 oktober 2009 18:35:16 schreef Henry S.:
Zo staat het toch in de datasheet?
Of is je die niet duidelijk?
Jochem
If you want to succeed, double your failure rate.
Op 8 oktober 2009 20:32:06 schreef sjors007:
maar nu wil ik overgaan naar 20Mhz dus moet ikmem'n postscaler veranderen naar 1:5 en aangezien het getal 5, 4binearbinear is (0100) lijkt het mij dat er moet komen staan inmem'n T2conT2CON = %01000111 ; Postscaler 1:5, Prescaler
Het getal 5 is binair gewoon 5 (0101), wat zou het getal 0 anders voor representatie moeten hebben? Lees gewoon de datasheet en vul in.
T2CON
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
- TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0
bit 7 bit 0
bit 7 Unimplemented: Read as '0'
bit 6-3 TOUTPS3:TOUTPS0: Timer2 Output Postscale Select bits
0000 = 1:1 Postscale
0001 = 1:2 Postscale
0010 = 1:3 Postscale
.
0100 = 1:5 Postscale (bonusregel)
.
.
.
1111 = 1:16 Postscale
bit 2 TMR2ON: Timer2 On bit
1 = Timer2 is on
0 = Timer2 is off
bit 1-0 T2CKPS1:T2CKPS0: Timer2 Clock Prescale Select bits
00 = Prescaler is 1
01 = Prescaler is 4
1x = Prescaler is 16Welk deel van de datasheet heb je niet gelezen? Kijk naar welke bits je moet hebben en vul gewoon in. Ik neem aan dat je het rijtje zelf af kan maken, maar voor het gemak heb ik hierboven een regeltje voor je toegevoegd.