PIC utan Kristall

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

PIC utan Kristall

Inlägg av ankan »

Kan man köra picen utan kristall om den har inbyggd oscillator?
Den går visserligen inte lika snabbt men kan man använda den som vanligt?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Jepp, lite sämre precision på den inbygda oscilatorn bara, tänk på det vid tidskritiska applikationer.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Hur kritiskt är det? Varför är det sämre precision?
macgyver
Inlägg: 321
Blev medlem: 8 juni 2005, 00:24:09
Ort: Göteborg
Kontakt:

Inlägg av macgyver »

beror på t.ex temperatur mm, men 1 till 2% avvikelse från grundfrekvensen kan du räkna med iaf
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Högre tolerans och lite mer temperaturberoende på en RC-oscillator, som de integrerade oftast är.
Kritiskt är om du t.ex. ska mäta exakta absoluta tidsintervall eller köra snabb och/eller intensiv asynkron kommunikation.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Kan man köra picen utan kristall om den har inbyggd oscillator?

Hm, det är väl själva meningen ? :-)
Referera gärna till databladet så att det går att kolla vad
det var som du inte riktigt förstog ! Då blir det lättare
att förtydliga.

> Den går visserligen inte lika snabbt men kan man använda den som vanligt?

Vad är "som vanligt" för dig ?

> Hur kritiskt är det? Varför är det sämre precision?

Hur kritiskt det är beror på vad du ska göra.
*Varför* det är sämre precision ? Tja, "by design" kanske ? :-)

> beror på t.ex temperatur mm, men 1 till 2% avvikelse från grundfrekvensen kan du räkna med iaf

Går inte att ge något generellt svar, och det finns inte någon anledning
eftersom DATABLADET har uppgifter om detta för varje PIC modell.
Ca 2% för den äldre INTRC, bättre än 1% för den nyare INTOSC (i princip).

> Kritiskt är om du t.ex. ska mäta exakta absoluta tidsintervall...

Det går inte med något, du får alltid ett mer eller mindre stort fel.
*Hur* stort fel som är acceptabelt avgör val av oscillator.

> eller köra snabb och/eller intensiv asynkron kommunikation.

Rätt om du tänker på att sätta baudrate räknaren för att få rätt baudrate.
Fel om du menar att onoggranheten i klockan har med baudraten att göra.
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

Det beror väl på vilken PIC kanske?

Inlägg av manw »

Jag har senast använt mest PIC16F628, den har en intern oscillator som i de flesta fall har "gått rätt". Det var bara i ett fall jag var tvungen att stoppa på en kristall för att seriekomunikationen (i drift) med datorn skulle fungera.

Har använt PIC12F629 som också har en inbyggd oscillator, och där får man en fråga i IC-PROG om man vill ändra ett hex-värde där man kan fintrimma klockan, men har inte tagit reda på hur.

Exvis PIC16F84 saknar intern klocka, men jag tror att man kan lägga ett RC nät extern om man inte vill använa kristall. Fast en kristall kostar å andra sidan bara 12kr hos Kjell & Co.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

En kristall tar visserligen inte mycket plats men varför inte använda den interna om man ändå har en.
Så manw, det funkade inte att köra med den interna oscillatorn på 16F628 för seriellkommunikation?
Användarvisningsbild
manw
Inlägg: 207
Blev medlem: 16 november 2005, 11:16:17
Ort: Södermalm

Inlägg av manw »

Jodå, visst gör det det. Det var bara för ett enda exemplar (av 3 testade) på krets, och min kanske kräsna serieport i datorn som det inte funkade. Med en annan 16F628 har jag för mig att det funkade bra.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag har senast använt mest PIC16F628, den har en intern oscillator
> som i de flesta fall har "gått rätt".

Som alltså har den äldre "INTRC" vilken ligger "on the edge" för USART
kommunikation. Fungerar på vissa exemplar, vid viss temperatur och
vid viss matningsspänning...

> Har använt PIC12F629 som också har en inbyggd oscillator,

D.v.s den nyare "INTOSC" som är fabrikskallibrerad till 1% (inom vissa
gränser, se databladet).

> och där får man en fråga i IC-PROG om man vill ändra ett hex-värde
> där man kan fintrimma klockan, men har inte tagit reda på hur.

Korkat verktyg som ens frågar !
Jag hoppas att det i alla fall *behåller* det värde som Microchip
har lagt in vid tillverkningen. Annars ska verktyget i soptunnan direkt !!
Gör den inte det gäller inte lägre 1% kallibreringen.

> Exvis PIC16F84 saknar intern klocka,

Spelar ingen större roll eftersom modellen är "stendöd" i alla fall.

ankan:
> En kristall tar visserligen inte mycket plats men varför inte
> använda den interna om man ändå har en.

Har du inte läst tidigare svar i tråden ??
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Det beror väl på vilken PIC kanske?

Inlägg av bearing »

manw skrev:Har använt PIC12F629 som också har en inbyggd oscillator, och där får man en fråga i IC-PROG om man vill ändra ett hex-värde där man kan fintrimma klockan, men har inte tagit reda på hur.
Det där är märkligt. Enda sättet jag lyckats komma runt problemet har varit att läsa in kalibreringsvärdet (en RETLW-instruktion) och sedan lägga in den instruktionen på sista positionen i programmet. Men det är ju en fullösning eftersom det blir omständigt när man ska byta IC-krets. Använder inte IC-PROG längre.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Vilken programmerare som helst värd namnet ska fixa detta automatiskt.
D.v.s först läsa cal-värdet, sedan lägga tillbaka det under programmeringen.

Det är en annan sak om man har klantat sig och t.ex kört en "erase all"
utan att först noterat värdet... :-)

EDIT :
Notera också att senare processorer (t.ex 12F683 i just 8-pinnars kapsel)
har en INTOSC *utan* kalliberingsvärde. Så där finns inte detta problem.
I princip är det så för alla modeller med 8 Mhz INTOSC, vilket är den
nyare typen jämfört med 4 Mhz INTOSC.

EDIT_2 :
Lite parentetiskt, men notera också att många nyare processorer
i PIC18-serien har en 8 Mhz INTOSC som man även kan köra
genom PPL'en, och alltså köra 32 Mhz utan extern kristall eller klocka.
Då ligger man inte långt från maxhastigheten på 40 Mhz...
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Kommunikation mot dator

Inlägg av ankan »

Har inte lyckats få datakommunikationen mot datorn att lira.

Satte ihop en wisp628 idag vilken fungerar att bränna min 16F88 utan problem. Men jag har inte lyckats få kretsen att prata med datorn.
Har provat Tinybootloader http://www.etc.ugal.ro/cchiculita/softw ... loader.htm för just 16f88 med medföljande program vilket borde fungera men de har ingen kontakt.

Jag provade båda via Wisp628 (lödde fast de extra två sladdarna på kontakten) och en lös MAX232 krets med kondingar.
Ingen av dem gav utslag. Varken i terminalen eller programmet som tinybootloader skulle kunna jobba mot.

Provade annan 16f88 för att det inte skulle vara den det var fel på.

Någon som har förslag på annan testkod jag kan prova på min pic eller hur jag ska felsöka det jag har. Känns inte som kodfel när jag även provade med tinybootloader.

Vad ska jag felsöka och hur?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Det är lite oklart vad du vill testa.
Är det bootloadern eller RS232 kommunikationen ?

Har du alltså tagit ett beslut att du vill köra med bootloader ?

Sen finns det tydligen en del anpassningar i bootloadern
att göra, och det framgår inte av ditt inlägg vilka du har gjort...

> Någon som har förslag på annan testkod

Om det enbart är RS232 du vill testa, så kan du ju alltid
skriva ett litet testprog som enbart sätter upp USART'en och
skickar något. Om det är så, så är det att röra till det i onödan
med en bootloader också...

Men, varför vill du använda en bootloader ? Är det för något
speciellt projekt ?
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Bootloadern var för att den använde UARTen och jag ville testa UARTen.
Finns det något färdigt program jag kan testa kanske?
Skriv svar