pickit2 till 16f877/887
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: pickit2 till 16f877/887
Kristallen är bra om du behöver ha hög nogrannhet i klockan, tex om vid serieportskommunikation och andra tidskritiska applikationer. Så om man använder kristall eller inte beror på vad man bygger.
Re: pickit2 till 16f877/887
Den interna oscillator är oftast exakt nog för att köra UART och dylikt men inte till att göra en klocka med den.
Ofta ska mikroprocessorn bara göra jobbet, om klockan varierar 1% mellan olika enheter har knappast betydelse och då kan man fint använda den interna oscillator.
Men ibland ska lampan blinka ganska exakt och då kan man behöva kristall.
Ofta ska mikroprocessorn bara göra jobbet, om klockan varierar 1% mellan olika enheter har knappast betydelse och då kan man fint använda den interna oscillator.
Men ibland ska lampan blinka ganska exakt och då kan man behöva kristall.
-
- Inlägg: 349
- Blev medlem: 24 oktober 2008, 19:40:50
- Ort: Lomma
Re: pickit2 till 16f877/887
Interna oscillatorn går väl dessutom i de flesta fall inte att köra lika högt som det går att gör med en extern.
Re: pickit2 till 16f877/887
Nja... på de nyare PIC med PLL kan man köra den interna oscillator med PLL inkopplat, det brukar ge ordentligt skjuts.
Men saker man kör på en PIC16F ska vara bra knasiga om man måste skrämma upp µC'n på full patte för att klara grejen, 8MHz räcker mycket långt.
Men såklart finns det tillfällen där hög hastighet är viktig men då är man ju oftast på high-end PIC, t.ex. PIC24 eller PIC32.
Men saker man kör på en PIC16F ska vara bra knasiga om man måste skrämma upp µC'n på full patte för att klara grejen, 8MHz räcker mycket långt.
Men såklart finns det tillfällen där hög hastighet är viktig men då är man ju oftast på high-end PIC, t.ex. PIC24 eller PIC32.
- SeniorLemuren
- Inlägg: 8402
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: pickit2 till 16f877/887
Ok, Jag letade i natt i databladet och hittade inte vilken högsta frekvens som snurrade internt, men nyss hittade jag detta dokument. Där framgår att den går upp till 8 Mhz.
Det betyder att jag låter kristallen sitta kvar kan vara bra, med lite reserv. Frågan blir då att om jag väljer att köra intern osc. så blir ju RA6 och RA7 I/O och där sitter en kristall och 2 kondensatorer.
Kvittar det hur de bitarna är satta om dom inte använts, eller ställer kristallen till det på något vis, eller kan kristallen bli skadad om RA tex råkar vara satt som output och av misstag råkar få ett värde 01 eller 10 på bitarna 6 och 7 när man använder de andra bitarna på RA. Kanske måste man se till att de bitarna alltid är 00 eller 11?
Ytterligare en fråga uppstår, nämligen om det finns någon beskrivning på vad som skiljer mellan resp µC. Typ *migrationsbeskriving*? Det kan man ju förstås se om man lusläser databladen, men det är ju ett antal sidor, skillnaderna borde ju lätt kunna beskrivas på max. ett par sidor.
I den länk jag skickade ovan, står vad som skiljer rent funktionsmässigt. Vad jag söker är t.ex. om något konfigurationsregister eller liknande hanteras olika.
Det finns ju en uppsjö av exempelkod för 16F877A och det vore bra att kunna använda de till även 16F887 utan att behöva dammsuga databladen.
Det betyder att jag låter kristallen sitta kvar kan vara bra, med lite reserv. Frågan blir då att om jag väljer att köra intern osc. så blir ju RA6 och RA7 I/O och där sitter en kristall och 2 kondensatorer.
Kvittar det hur de bitarna är satta om dom inte använts, eller ställer kristallen till det på något vis, eller kan kristallen bli skadad om RA tex råkar vara satt som output och av misstag råkar få ett värde 01 eller 10 på bitarna 6 och 7 när man använder de andra bitarna på RA. Kanske måste man se till att de bitarna alltid är 00 eller 11?
Ytterligare en fråga uppstår, nämligen om det finns någon beskrivning på vad som skiljer mellan resp µC. Typ *migrationsbeskriving*? Det kan man ju förstås se om man lusläser databladen, men det är ju ett antal sidor, skillnaderna borde ju lätt kunna beskrivas på max. ett par sidor.
I den länk jag skickade ovan, står vad som skiljer rent funktionsmässigt. Vad jag söker är t.ex. om något konfigurationsregister eller liknande hanteras olika.
Det finns ju en uppsjö av exempelkod för 16F877A och det vore bra att kunna använda de till även 16F887 utan att behöva dammsuga databladen.

Re: pickit2 till 16f877/887
> Ok, Jag letade i natt i databladet och hittade inte vilken högsta frekvens som snurrade internt,
T.ex :
Produktsidan (http://www.microchip.com/wwwproducts/De ... e=en026561) :
# Precision Internal Oscillator:
- Factory calibrated to ±1%
- Software selectable frequency range of 8 MHz to 32 kHz
Databladet (http://ww1.microchip.com/downloads/en/D ... 41291F.pdf) :
- Sidan 1, under "Special Microcontroller Features:"
- Sidan 61, figur 4-1, notera ingångarna till MUX.
- Sidan 62, "REGISTER 4-1: OSCCON: OSCILLATOR CONTROL REGISTER".
- Sidan 63, "4.3 Clock Source Modes".
- Sidan 65, "4.5 Internal Clock Modes".
> Typ *migrationsbeskriving*?
Databladet för 16F887 :
"APPENDIX B: MIGRATING FROM OTHER PIC DEVICES".
> Det finns ju en uppsjö av exempelkod för 16F877A och det vore bra att kunna använda de till även 16F887 utan att behöva dammsuga databladen.
Det är generellt ganska små skillnader. Primärt har det med oscillatorn att göra.
Samt en modernare/bättre USART/EUSART enhet. Och kanske n¨ågot mer.
Man får helt enkelt kolla de prylar som man tänker använda.
T.ex :
Produktsidan (http://www.microchip.com/wwwproducts/De ... e=en026561) :
# Precision Internal Oscillator:
- Factory calibrated to ±1%
- Software selectable frequency range of 8 MHz to 32 kHz
Databladet (http://ww1.microchip.com/downloads/en/D ... 41291F.pdf) :
- Sidan 1, under "Special Microcontroller Features:"
- Sidan 61, figur 4-1, notera ingångarna till MUX.
- Sidan 62, "REGISTER 4-1: OSCCON: OSCILLATOR CONTROL REGISTER".
- Sidan 63, "4.3 Clock Source Modes".
- Sidan 65, "4.5 Internal Clock Modes".
> Typ *migrationsbeskriving*?
Databladet för 16F887 :
"APPENDIX B: MIGRATING FROM OTHER PIC DEVICES".
> Det finns ju en uppsjö av exempelkod för 16F877A och det vore bra att kunna använda de till även 16F887 utan att behöva dammsuga databladen.
Det är generellt ganska små skillnader. Primärt har det med oscillatorn att göra.
Samt en modernare/bättre USART/EUSART enhet. Och kanske n¨ågot mer.
Man får helt enkelt kolla de prylar som man tänker använda.
- SeniorLemuren
- Inlägg: 8402
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: pickit2 till 16f877/887
Jorå, jag hittade delvis informationen jag sökte i morse. Var väl lite dimmig i ögonen i natt.
Kollade även den tabell som finns i appendix B och där får man ju ledtrådar till vad som kanske måste ändras i ett tidigare program för 16f877.
Men sedan måste man ju "bröta" sig in i manualen och leta fram dom avsnitt som gäller just de skillnaderna, för att kolla vad som ev. behöver ändras.
Eftersom Microchip inte bemödat sig att skriva någon form av steg för steg checklista med beskrivnig över vad som gäller vid migreringen mellan föregångaren och ersättaren, så trodde jag i min okunskap att någon annan kanske filat ihop en sådan checklista som man kunde hitta på nätet. Sökt men inte funnit.
Att lasta över ett assembler eller C program från den gamla till den nya µC och finna att det inte funkar kan ju generera en hel del bläddring i databladen för att hitta orsaken om man inte är så kunnig i ämnet. En checklista som steg för steg täcker in alla tänkbara orsaker hade ju förenklat det hela avsevärt.
Kollade även den tabell som finns i appendix B och där får man ju ledtrådar till vad som kanske måste ändras i ett tidigare program för 16f877.
Men sedan måste man ju "bröta" sig in i manualen och leta fram dom avsnitt som gäller just de skillnaderna, för att kolla vad som ev. behöver ändras.
Eftersom Microchip inte bemödat sig att skriva någon form av steg för steg checklista med beskrivnig över vad som gäller vid migreringen mellan föregångaren och ersättaren, så trodde jag i min okunskap att någon annan kanske filat ihop en sådan checklista som man kunde hitta på nätet. Sökt men inte funnit.
Att lasta över ett assembler eller C program från den gamla till den nya µC och finna att det inte funkar kan ju generera en hel del bläddring i databladen för att hitta orsaken om man inte är så kunnig i ämnet. En checklista som steg för steg täcker in alla tänkbara orsaker hade ju förenklat det hela avsevärt.

Re: pickit2 till 16f877/887
> Eftersom Microchip inte bemödat sig att...
http://ww1.microchip.com/downloads/en/D ... 41305A.pdf
Kanske att du skulle kolla lite noggrannare på t.ex produktsidan för 16F887
innan du klagar.
http://www.microchip.com/wwwproducts/De ... e=en026561
Straxt under databladet under rubriken "Migration Documents".
http://ww1.microchip.com/downloads/en/D ... 41305A.pdf
Kanske att du skulle kolla lite noggrannare på t.ex produktsidan för 16F887
innan du klagar.
http://www.microchip.com/wwwproducts/De ... e=en026561
Straxt under databladet under rubriken "Migration Documents".
- SeniorLemuren
- Inlägg: 8402
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: pickit2 till 16f877/887
Det närmar sig, men redan i ingressen så klargörs:
When undertaking this migration, we recommended downloading data sheets and errata.
Det var precis det jag ville slippa bara för att flytta ett program till en uppgraderad version av samma µC, men det var ett kliv i rätt riktning
, får nöja mig med det.
When undertaking this migration, we recommended downloading data sheets and errata.
Det var precis det jag ville slippa bara för att flytta ett program till en uppgraderad version av samma µC, men det var ett kliv i rätt riktning

- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: pickit2 till 16f877/887
Du kan nog inte räkna med att komma särskilt långt med Pic om du inte har lust att läsa databladen... De är liksom basic, *RTFM* typ.
Re: pickit2 till 16f877/887
Vill man kunna flytta sej mellan pic'ar så kan man ju använda ett kompilerat språk så underlättas det ju.
Dock så får man ju tänka på skillnader ändå, men det är ju mer skillnader i form, av "finns funktionen X, och isåfall på vilken pinne"
Jag har bytt från 877A till 887 rakt av utan ändringar genom att bara kompilera om programmet mot 887.
(Just dessa PIC'ar är dessutom mina favoriter som jag använder absolut oftast.. förr 877A, men numera 887 då den ju är billigare och bättre.)
Dock så får man ju tänka på skillnader ändå, men det är ju mer skillnader i form, av "finns funktionen X, och isåfall på vilken pinne"
Jag har bytt från 877A till 887 rakt av utan ändringar genom att bara kompilera om programmet mot 887.
(Just dessa PIC'ar är dessutom mina favoriter som jag använder absolut oftast.. förr 877A, men numera 887 då den ju är billigare och bättre.)
Senast redigerad av Glenn 23 mars 2011, 16:57:03, redigerad totalt 1 gång.
Re: pickit2 till 16f877/887
Det senaste dokumentet var ju ganska tydigt med kodexempel och allt.
Och om man inte tänker använda komparatorerna så blir det inte
mycket att läsa/kolla om just det o.s.v.
Och om man inte tänker använda komparatorerna så blir det inte
mycket att läsa/kolla om just det o.s.v.
- SeniorLemuren
- Inlägg: 8402
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: pickit2 till 16f877/887
Jag har levt på programmering på den tiden dom hette Z80, 8080 m.m så nog vet jag att läsa datablad. Grejen är den att hittar man ett program som man vill använda i färdigt skick precis som det är, för att kanske testa någon teknisk tillämpning, så vill man inte lägga ner en massa jobb på att läsa datablad just då. Det får man ta tids nog, när man tillverkar sina egna program.Du kan nog inte räkna med att komma särskilt långt med Pic om du inte har lust att läsa databladen... De är liksom basic, *RTFM* typ.
Helt rätt, men det faller ju liksom i ovanstående resonemang. Hittar man ett assemblerprogram man vill använda så är det ju just assembler.Vill man kunna flytta sej mellan pic'ar så kan man ju använda ett kompilerat språk så underlättas det ju.

Egentligen är det ju inget stort problem för 16f877 finns ju fortfarande att tillgå, så det finns ju egentligen ingen orsak till att gradera upp det till 16f887. Frågeställningen var nog mer akademisk än praktisk om jag tänker efter. Tur att jag inte fimpade kristallen på mitt experimentkort.

Re: pickit2 till 16f877/887
> Egentligen är det ju inget stort problem för 16f877 finns ju fortfarande att tillgå,
Ja, det var det jag tänkte på. Om funktionen med befintligt program på
en 877A är "good enough", så kör med det...
Ja, det var det jag tänkte på. Om funktionen med befintligt program på
en 877A är "good enough", så kör med det...
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: pickit2 till 16f877/887
Då kan man ju se till att ha ett antal testkort med olika processorer som bara är att plugga in och köra. Sen kan man anpassa efter behov för mer specifika tillämpningar.