ATmega168 vs ATtiny

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Atmega168 vs attiny

Inlägg av bearing »

Jaha=)
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

Re: Atmega168 vs attiny

Inlägg av ghost_rider »

För att kasta lite ljus över tillvaron.
I skolan fick vi lära oss prgrammera mha arduino. Där fick vi hela upplägget och vi behövde inte bry oss så mkt om ngt annat. Sen gick det ifrån arduino till en nerskalad atmega168 som arduinon består av. Fortfarande samma chip, dvs ingen förändring.

O nu när jag tittar på attinyn så saknar den vissa saker om man jämnför med 168:an, t.ex ingen extern kristall. Då tänkte jag att det kanske är skillnad i koden på så sätt att man måste kompensera för den saknade kristallen. :oops:
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Atmega168 vs attiny

Inlägg av PHermansson »

Då får du nog läsa lite nogrannare... Men i alla fall. Det behövs ingen bootloader om man inte vill programmera via UART som med Arduinon. Vanligtvis kör man ICSP vilket i princip är lika enkelt, förutsatt att man har en lämplig programmerare. Och kodar du i C är det som redan nämnts ingen större skillnad, ofta anger man processortypen i Makefile så blir det rätt.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Atmega168 vs attiny

Inlägg av jesse »

Då tänkte jag att det kanske är skillnad i koden på så sätt att man måste kompensera för den saknade kristallen.
När du programmerade atmega168 satte du väl fuses som valde "external crystal"? Det enda du behöver göra är att inte sätta dessa fuses på attinyn, så kör den på 1 MHz per default. Personligen så ser jag bara en fördel att slippa kristallen om du inte behöver väldigt exakta frekvenser av någon orsak.

Och så får du ju ange rätt frekens i ditt projekt så att F_CPU får värdet 1000000L.
Den ändrade frekvensen kommer antagligen att påverka klock-frekvensen till den timer som styr PWM. Om inte PWM-frekvensen är väldigt noga så kan du ju lätt modifiera så att den passar. Det är bara att höfta till något inom rimliga gränser.

Men som sagt, man kan ju diskutera i evighet om det är lätt eller svårt, enkelt eller omöjligt att låta en attiny göra samma sak som din atmega. Men det blir ju bara åsikter och spekulationer.

Vi kan i alla fall konstatera:

(A) En attiny kan göra allt du behöver göra i det här fallet.
(B) Koden kommer antagligen att kunna vara nästan identisk.

Om det sedan är fler detaljer som du funderar över så kolla in databladet så ser du ju exakt där vad som skiljer. Vilka funktioner använder du?

* in- och utgångar på port B
* en timer programmerad som PWM-generator.
* någon analog ingång (ADC) kanske?
* något mer?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Atmega168 vs attiny

Inlägg av jesse »

Jag har visst missat bilderna på första sidan. De laddade inte ner. Men nu ser jag dem.
(helst hade jag kombinerat den med en drivarkretsen direkt)
Hur ansluter du 168:ans pwm-utgång till LED-drivaren?

Har du nån ingång på LED-drivaren som du använder eller hur funkar det?

LED-drivaren är en switchad strömgenerator, den kan nog inte bli mycket mer kompakt än vad den är.
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

Re: Atmega168 vs attiny

Inlägg av ghost_rider »

De gånger jag har lagt in bootloadern har jag inte tänkt på vad jag klickar i. Hade en mall som jag följde.jag tänkte att kan kunde göra led driven o attinyn på samma kort för att spara utrymme. Har aldrig tänkt på timers och liknande till pwm , det har bara varit till att plugga in. Det finns en ingång på driven som används för att dimma ljuset. Det styrs med pwm så jag skickar bara ett värde till drivern för att få ut rätt ljusstyrka.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Atmega168 vs attiny

Inlägg av jesse »

>Har aldrig tänkt på timers och liknande till pwm

Då har du alltså inte skrivit koden själv?
Men om du har källkoden så går det säkert lätt att modifiera.
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: ATmega168 vs ATtiny

Inlägg av snigelen »

Han har väl använt Arduino-miljön, så typ analogWrite(pin,value); (lustigt namn) för PWM, så timer-initieringen ligger dolt i bakgrunden.

Men det är inte så svårt att fixa till initieringen av timern och sedan skriva "OCR0A = 100;" i stället för analogWrite(0, 100) (för pwm på PB0 på en tiny25).
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: ATmega168 vs ATtiny

Inlägg av blueint »

analogWrite() är ett funktionsnamn som förvillar skulle jag säga. Den får programmeraren att tro att processorn gör en sak, när den i verkligheten gör det på ett helt annat sätt. Vilket upptäcks om man t.ex vill ändra värdet snabbare än PWM frekvensen eller vill göra många "analogWrite()".. :vissla:

(borde heta setPWM(pin,value))
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: ATmega168 vs ATtiny

Inlägg av jesse »

Det kan ju finnas vissa nackdelar med att man "döljer" den verkliga koden bakom snygga funktioner, om de inte är noggrant beskrivna. Det är som att linda in koden i bomull. Det blir så fint, men man vet inte vad man håller på med.... :?
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: ATmega168 vs ATtiny

Inlägg av snigelen »

Jo namnet är lite missvisande.

Men annars är det väl lite av poängen med Arduino-miljön att förenkla vissa saker genom att dölja lite bakom kulisserna.

Beskrivningen av analogWrite är väl ganska ok, men det kanske kunde finnas en liten länk, för de som vill veta lite mer, som beskriver lite om vad som händer i bakgrunden. Och att en timer är involverad. (Edit: jo ordet timer nämns ju i alla fall)

Edit2: Det är en länk till en timer tutorial som väldigt kortfattat beskriver vad en PWM-signal är.
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

Re: ATmega168 vs ATtiny

Inlägg av ghost_rider »

>> Jesse<<
i ditt intlägg på första sidan pratar du om attiny45 och reset pinnen.
Det skulle kanske funka preics med 6 pinnar ink reset, men som du skrev att det inte går att programmera om den efter det, ifall inte med en 'vanlig' programmerare.
Vad är en 'ovanlig' då? ;) eller det är heltorsk om man kör om reset ?
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: ATmega168 vs ATtiny

Inlägg av snigelen »

Om du skall använda reset-pinnen till IO behöver du ha en programmerare som klarar HVS (High Voltage Serial Programming (för de små, parallell för de större)) för att programmera igen. Typ STK500 eller dragon eller STK600. Eller så kan man stoppa in en bootloader först.

Ibland kan man ju använda en pinne till mer än en sak. Men vi vet ju inte riktigt detaljerna om hur du tänkt dig det hela, så det är svårt att komma med konkreta förslag.
Användarvisningsbild
ghost_rider
Inlägg: 2211
Blev medlem: 26 maj 2008, 21:48:15
Ort: Genarp

Re: ATmega168 vs ATtiny

Inlägg av ghost_rider »

designen är väldigt enkel.
En attiny45* 1 vippbrytare med tre lägen (on-off-on) och fyra smd leds
1 led visar att det är ström i kretsen de andra tre ska visa vilket 'steg' som är aktiverat.
Dvs. trycker man brytaren upp ska den första led börja lysa, då steg 1 är aktiverat. +1 = steg 2 osv.
trycker man på andra håller blir det såklart minus ett steg.
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Re: ATmega168 vs ATtiny

Inlägg av eqlazer »

Räknar du med två ingångar för brytaren? Om du drar in den till en analogingång och kopplar in olika resistanser i en spänningsdelare istället så sparar du en pinne.
Lite omständigare men det sparar som sagt IO.
Skriv svar