pickit2 till 16f877/887

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
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

Inlägg av PHermansson »

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.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: pickit2 till 16f877/887

Inlägg av Icecap »

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.
sugarman64
Inlägg: 349
Blev medlem: 24 oktober 2008, 19:40:50
Ort: Lomma

Re: pickit2 till 16f877/887

Inlägg av sugarman64 »

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.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: pickit2 till 16f877/887

Inlägg av Icecap »

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.
Användarvisningsbild
SeniorLemuren
Inlägg: 8405
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: pickit2 till 16f877/887

Inlägg av SeniorLemuren »

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. :)
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: pickit2 till 16f877/887

Inlägg av sodjan »

> 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.
Användarvisningsbild
SeniorLemuren
Inlägg: 8405
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: pickit2 till 16f877/887

Inlägg av SeniorLemuren »

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. :)
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: pickit2 till 16f877/887

Inlägg av sodjan »

> 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".
Användarvisningsbild
SeniorLemuren
Inlägg: 8405
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: pickit2 till 16f877/887

Inlägg av SeniorLemuren »

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.
Användarvisningsbild
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

Inlägg av PHermansson »

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.
Användarvisningsbild
Glenn
Inlägg: 36628
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: pickit2 till 16f877/887

Inlägg av Glenn »

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.)
Senast redigerad av Glenn 23 mars 2011, 16:57:03, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: pickit2 till 16f877/887

Inlägg av sodjan »

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.
Användarvisningsbild
SeniorLemuren
Inlägg: 8405
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: pickit2 till 16f877/887

Inlägg av SeniorLemuren »

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.
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.
Vill man kunna flytta sej mellan pic'ar så kan man ju använda ett kompilerat språk så underlättas det ju.
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. :)

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. :)
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: pickit2 till 16f877/887

Inlägg av sodjan »

> 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...
Användarvisningsbild
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

Inlägg av PHermansson »

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.
Skriv svar