Ik heb hier op Voti een leuke (goedkope) PIC gevonden:

http://www.voti.nl/winkel/p/PIC-16F628A-DIP.html

maar daar staat uitdrukkelijk bij '20MHz', wil dat zeggen dat dat zijn optimale klokfrequentie is? Of zal deze het ook prima doen op 4MHz? Ik kan me voorstellen dat dit de maximale frequentie is.

Maar ik vraag het maar even voordat ik er weer eentje opblaas :(

alvast bedankt!

dat is de max frequentie ,lager mag altijd.
sneller dan 20mhz kan ook maar met onbekende afloop.

Okay, bedankt :D
Maar ik houd nu nog niet op met vragen... it has only started;

als ik in de datasheet kijk:

http://ww1.microchip.com/downloads/en/devicedoc/40044b.pdf

dan naar pagina 18 scrollen, zie ik verschillende 'banks'. Ik heb de tutorial van deze site gevolgd, maar het is me nog niet duidelijk wat deze precies doen. Zo zie ik bijvoorbeeld dat 'portB' op 06h en op 106h zit.

Dus als ik mijn vraag iets concreter stel:
-> hoe moet ik zo'n datasheet interpreteren?

En dan vooral ten opzichte van de 4 banks...

sommige registers bevinden zich alleen in bank 0 anderen bevinden zich ook in andere banken.
beide kan je gebruiken zolang je maar in de juiste bank werkt.om deze aan te roepen.

Ik ga zo is een 16F628 opofferen @ 48Mhzhttp://www.planet.nl/~hees0970/smilies/schater.gif.
Misschien de spanning ook maar wat opvoeren, heatsink, fan, .... >:).

Op 5 maart 2006 20:25:55 schreef jossie:
Ik ga zo is een 16F628 opofferen @ 48Mhz[afbeelding].
Misschien de spanning ook maar wat opvoeren, heatsink, fan, .... >:).

@ jossie
Hoe is het afgelopen?
Ben benieuwd...

heb dat wel eens met een 16F505 geprobeerd, ging tot 66 MHz goed ! (moest die dan wel extern uit een TTL-oscillator aanbeiden, maar de PIC werkte op die freq langdurig stabiel)
een 80 MHz deed de pic al snel (te) heet worden.

Met die banken moet je even krom denken... Als je in de instructie set kijkt, dan zie je dat de maximale adres ruimte van f loopt van 0 tot 127 (0x00 tot 0x7F) Dit is het adresbereik van 1 bank. Nu zijn er nog andere adresbereiken, afhankelijk welke PIC je hebt. Om deze te bereiken moet je twee bits in het status register goed zetten. (00 voor bank 0, 01 voor bank 1 etc)

Nu kun je ook nog indirekt adreseren via het FSR. Dit is een 8 bit register dus je bereik is van 0x00 tot 0xFF. Om nu hoger te komen heb je het hoogste bit van he status register. Is dit bit 0 dan adresser je in de laagste twee banken, is het 1 dan adreseer je de hoogste twee banken.

De laatste 16 adressen van elke bank zijn onafhankelijk van de bankselekt bits. Hier kun je dus variabelen plaatsen die je altijd nodig hebt, als je gebruik maakt van een schadow voor de status o.i.d.

Haha... die zal dan wel heet worden ja :P

Maar zou ik bij het programmeren ook zo moeten switchen tussen banks als in de tutorial op deze site?
Want in de datasheet staat dat adressen:

20h -> 6Fh
A0h -> EFh
120h -> 14Fh

'general purpose registers' zijn, ofwel vrij te gebruiken :P En stel je nou eens voor dat ik met de eerste 80 niet uit de voeten kan... moet ik dan van bank switchen om die anderen te kunnen gebruiken?

Inderdaad... Bij de MPLAB van microchip zit er een macro(?) in banksel, die uitrekent welke bank je moet selecteren voor een bepaalde variable. Dus eigenlijk heb je de adressen:


 Adres     Adres geslecteerd: door:
 20 - 6F  ->   20 - 6F        access via Bank 1
 70 - 7F  ->   70 - 7F        onafhankelijk van bank selektie
 A0 - EF  ->   20 - 6F        access via Bank 2
 F0 - FF  ->   70 - 7F        onafhankelijk van bank selektie
120 -16F  ->   20 - 6F        access via Bank 3
170 -17F  ->   70 - 7F        onafhankelijk van bank selektie
1F0 -1FF  ->   70 - 7F        onafhankelijk van bank selektie

Daarom is het handig om veel gebruikte variabelen in de laatste 16 adressen te stoppen, hoef je niet zoveel bank te schakelen. Trouwens banks switchen moet je sowieso als je de interupts/richtingen van je porten e.d. wilt gaan zetten. (zitten in bank 1)