Sida 1 av 1

Knuff i rätt riktning - extern oscillator eller ej

Postat: 20 mars 2018, 20:42:26
av Magnus_K
Hej!

Helst vill jag inte använda en extern oscillator, men jag försöker förstå hur mycket det påverkar om jag använder en eller ej.
Jag vill mäta en inkommande puls med så hög upplösning som möjligt och försöker klura ut hur mycket det skiljer mellan extern oscillator eller utan.

MCU:n i fråga är en ATmega328P (datablad).
Tänkte använda Timer1 som är 16 bitar men sen tar det lite stopp. Sitter och kikar på schemat på sidan 150 och blir mest förvirrad.

Någon som kan knuffa i rätt riktning?

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 20 mars 2018, 21:52:44
av hawkan
8 MHz vs 16 MHz för extern osc. Blir det en faktor två i timern, tror det.
Det sägs att precisionen på den interna 8 MHz-oscillatorn inte är världens bästa.
Har sett exempel där vanlig seriekommunikation ska spåra ur pga det. Men har inte
råkat ut för det själv de gånger jag kört utan exten osc.
Nu har jag fått tag i en hög med ytmonterade osc. så jag brukar löda dit en och
undviker interna 8 MHz. Det strular också om man har en cpu som är inställd
med intern osc och vill ändra fusarna till extern osc. Då måste man ändå
ha en 8 MHz extern klocksignal. Adafruit har en lösning https://github.com/adafruit/ArduinoISP

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 20 mars 2018, 21:56:48
av Janson1
Aruino har ju Atmega328 från början med 16 MHz kristall (extern) Där finns det kommando (pulseIn()) som mäter med några Micros marginal, skulle detta passa i upplösning? Jag tror den använder 16 bit timer från början.

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 20 mars 2018, 21:59:27
av Magnus_K
hawkan skrev:8 MHz vs 16 MHz för extern osc. Blir det en faktor två i timern, tror det.
Det sägs att precisionen på den interna 8 MHz-oscillatorn inte är världens bästa.
Har sett exempel där vanlig seriekommunikation ska spåra ur pga det. Men har inte
råkat ut för det själv de gånger jag kört utan exten osc.
Nu har jag fått tag i en hög med ytmonterade osc. så jag brukar löda dit en och
undviker interna 8 MHz. Det strular också om man har en cpu som är inställd
med intern osc och vill ändra fusarna till extern osc. Då måste man ändå
ha en 8 MHz extern klocksignal. Adafruit har en lösning https://github.com/adafruit/ArduinoISP
Ja det är lite det här jag blir helt förvirrad över... Har också hört varningens ord om den seriella kommunikationen.
Fördelen är att min MCU kommer endast vistas i 20-25C så temperaturpåverkan blir inte så stor.
Kommer inte köra så fort då jag vill kunna gå ner till 3V i matningen.
Janson1 skrev:Aruino har ju Atmega328 från början med 16 MHz kristall (extern) Där finns det kommando (pulseIn()) som mäter med några Micros marginal, skulle detta passa i upplösning? Jag tror den använder 16 bit timer från början.
Jo, men frågan är lite mer vad det kommer skilja mellan intern kontra extern oscillator.
Jag kommer inte använda ett färdigt Arduino-kort utan en 328:a med Arduino bootloader för att underlätta mina extremt dåliga programmeringsfärdigheter.

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 20 mars 2018, 22:09:57
av Glattnos
Om vi tar det från andra hållet. Du vill inte ha extern oscillator, då blir frågan hur exakt behöver du mäta? Om svaret är som du skrev "så exakt som möjligt" så är inte intern oscillator rätt. Men beroende på vad du ska mäta så kan det ju ändå vara tillräckligt och då slipper du extern :)

Sen går det väl inte att programmera om fuse för intern oscillator via Arduino bootloader utan man behöver väl en ISP-programmerare för det(vilket en Arduino kan agera som). Eller har jag fel?

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 20 mars 2018, 22:31:05
av Glattnos
Här är en mycket bra video:

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 20 mars 2018, 22:40:31
av hawkan
Isp behövs för bootloader vad jag vet. ArduinoISP gör man enkelt av en Uno eller nåt annat man har liggande. Men mål-328 behöver en klocksignal och den interna osc räknas inte, det ska vara på en pinne. Extern osc går bra likaså den sketchen jag länkadee till.

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 21 mars 2018, 04:58:19
av lillahuset
Det enkla svaret är att du ska använda intern oscillator med extern kristall om du vill att hastigheten ska vara någorlunda förutsägbar. Det finns numera ganska bra keramiska resonatorer som kan vara ett alternativ eftersom de oftast är billigare och alltid (?) stöttåligare.
Om det räcker att processorn "sprattlar" kan du nöja dig med RC-oscillatorn. Har du extrema krav eller en lämplig klocksignal tillgänglig använder du extern klocka.

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 21 mars 2018, 06:42:01
av papabear
Glattnos skrev:Här är en mycket bra video:
Intressant. Jag visste inte att den diffade så mycket. Men jag har inte brytt mig om att läsa databladet där dock.

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 21 mars 2018, 09:05:08
av Klas-Kenny
Vad gäller precision i inbyggda oscillatorn, databladet specat +-10% från fabrik, +-1% om man gör "User Calibration".

Så det är väl så man får räkna med att det ligger till.

Re: Knuff i rätt riktning - extern oscillator eller ej

Postat: 22 mars 2018, 23:57:58
av Magnus_K
Tackar för alla bra svar. Ska stuva om lite och trycka in en kristall. Den där videosnutten fick en tänka till lite.
Hade varit kul att göra en kalibrering men finns inte utrustning för det tyvärr.