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%)]

Krijg een foutmelding!

CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, HS_OSC, MCLRE_OFF  

invalid fuse setting [MCLRE_OFF]!

dat was een gokje :p

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%)]

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

MCLR heeft toch hopelijk wel een pull-up weerstand?

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

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.

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

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,...)

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

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.

Nieuw tussen de downloads.

[Bericht gewijzigd door Henry S. op (19%)]

het werkt!;) met behulp van die 10K

nog even snel een vraagje

T2CON = %01000111                       ; Postscaler 1:5, Prescaler 1:16

geeft 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

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:16

Zo staat het toch in de datasheet?

Zonder verdere informatie over de timer valt er niet veel te zeggen over de interrupt rate. Waarmee laad je de timer?

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?

Op 8 oktober 2009 20:32:06 schreef sjors007:
maar nu wil ik overgaan naar 20Mhz dus moet ik mem'n postscaler veranderen naar 1:5 en aangezien het getal 5, 4 binearbinear is (0100) lijkt het mij dat er moet komen staan in mem'n T2con

T2CON = %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 16

Welk 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.