ATmega168 vs ATtiny

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

Nja, Atmel har båda storlekarna på SOIC. 0.150" och 0.200"

Atmel om attiny45:
soic-8 : "0.150" Wide Body", 4.9 x 6.0 mm, yta = 29 mm2
dip-8: 0.300" Wide Body, 9.3 x 7.9 mm, yta = 73.5 mm2

så visst är det skillnad.
DSCN5869.JPG
ghost_rider: Har du programmerat någon AVR någon gång? Assembler eller C?
Har du gjort programmet till ATMega168:an som du vill byta ut?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
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 »

Hm, nu börjar det finnas lite att välja på :humm:
jap, koden som liggger där nu har jag knåpat ihop. Altså själva programmet, bootloadern laddade jag ner och tryckte in utan att titta något närmare på.
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 »

OK. Då är det intressanta hur du modifierar koden för att passa t.ex en attiny45.
De mest konkreta skillnaderna är att du kanske måste använda andra i/O-pinnar. Du får planera vilka pinnar som ska vara till vad. Bäst är att först kolla vilka pinnar som "finns", och kolla vilka specialfunktioner som de ska ha. I det här fallet är det bara en pinne som är unik, och det är pwm-utgången. Då kollar vi på en bild på attiny45:
Bild

Jag antar att man kan använda #oc1b,oc1b eller oc0a som pwm-utgång.
Om du väljer oc0a (dvs använder timer0 som pwm-generator) är alltså pin5 = pwm-utgång.
Övriga pinnar som gpio (allmänna in/ut) är då PB1,PB2,PB3 och PB4.

Om du behöver ytterligare en pinne måste du ta resetpinnen och programmera om den så den blir en PB5. Problemet är att du inte kan programmera kretsen efter att denna ändring gjorts, så då måste programmet vara klart.

Skulle inte antalet pinnar räcka så finns t.ex. attiny44 (uppe till vänster på bilden ovan) med 14 pinnar. Fast om den har pwm utgång vet jag inte (men jag antar det). Annars är en mega48 tqfp32 inte mycket större än en attiny45 fast den har 32 pinnar. Den är också lätt att löda för hand. En lupp kan vara bra att ha.
Bild

Bootloader kan vara svårt att få in i en attiny (de har inte ens UART/USART). Programmeringspinnarna måste kunna samsas med in/ut. Programmeraren behöver ju MOSI,MISO,SCK och RESET.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Atmega168 vs attiny

Inlägg av bearing »

Ett annat problem med bootloader på ATtiny är att det inte finns hårdvarustöd för bootloader. Det går varken att skydda minnet som bootloadern håller till i, och inte att "context-switcha" mellan bootloader och vanlig kod. Därför finns det få bootloaders till ATtiny.
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 »

kanske en dum fråga, men är bootloadern nödvändig ?
Sitter och funderar på om man skulle köpa nån attiny44 o testa lite.
Men efter lite googling så verkar det som att det finns betydligt mindre 'dokumentation' dvs personliga inlägg om t.ex kodsnuttar och liknade om man jämnför med attmega168 .
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Atmega168 vs attiny

Inlägg av bearing »

Nej, den är inte nödvändig. Jag uppfattade det som att ett krav att använda bootloader.
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 »

nä om det går att lösa utan så.
Jag har som sagt bara kört med arduino, för att sedan gå över till atmega168:an o fick då lära mig att bootloadern var ett måste. Men vad den exakt gör vet jag helt ärligt inte :oops:
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Atmega168 vs attiny

Inlägg av bearing »

Arduino använder en bootloader för att föra över koden via USART. Men jag har för mig att det går att föra över koden via ICSP också, för kompilatorn ger väl en vanlig HEX-fil?

Kan Arduino-kompilatorn kompilera kod som går att köra på en ATtiny?
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 »

ah ok.
Arduino komp. verkar bara kunna kompilera kod till Atmega familjen
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Atmega168 vs attiny

Inlägg av bearing »

Ifall du googlar lite kan du nog hitta info om Arduino på Attiny. Jag hittade den här:
http://hlt.media.mit.edu/wiki/pmwiki.ph ... ATtiny4585

EDIT: jag hade inte läst så noga på den där länken. Det verkar som att den mest handlar om programmeringshårdvaran. Men det framgår också att man kan lägga en arduino "sketch" på en ATtiny, så då måste det ju även gått att kompilera.
Senast redigerad av bearing 18 mars 2011, 23:09:05, redigerad totalt 1 gång.
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 förstår inte vad du upplever vara problemet? AVR-processorerna är såpass lika att det är ingen skillnad på koden i stort sett. Har du programmerat en atmega så kan du programmera en attiny. Och jag antar att du programmerat i C ?

Små skillnader kan vara att namn på olika perifera register kan vara lite annorlunda, enstaka assembler-instruktioner kan saknas i tiny (t.ex. mul) men 99% är ju samma sak. Troligtvis kan du använda exakt samma program, bara du ändrar nån bokstav här och där...

Om du vill ha mer specifik information om vad som skiljer som är relevant för ditt program, så berätta vilka enheter du använder (timer / interrupt / I/O annat?) så ska du se att alltsammans är nästan identiskt.

Vad so förvånar mig är hur du har kunnat programmera mega68? Hur fick du information om den kretsen? Det är väl bara att läsa samma saker om tiny, så är det klart.

Istället för att googla så föreslår jag att du läser databladet för den tiny du valt att titta närmare på. Där står alla detaljer, och det är ju nödvändigt att läsa om du ska kunna programmera.

datablad, attiny44
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Atmega168 vs attiny

Inlägg av bearing »

Alltså, det är kompilatorstödet jag pratar om här. Eftersom att ATmega och ATtiny inte har samma instruktionsuppsättning tror jag inte att kod som är kompilerad för ATmega går att köra på en ATtiny. Men det verkar ju som att det ska kunna gå att kompilera Arduino-kod för ATtiny på något sätt, fast kanske inte just med den miljö som han använder.
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 menar förstås källkoden i mitt inlägg.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Atmega168 vs attiny

Inlägg av bearing »

Eftersom att du i avslutningen skrev "istället för att googla" så verkade det som att inlägget även var ett svar på mitt inlägg om att googla, vilket handlade om kompilatorstöd.
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 »

hehe... nej, jag syftade på denna:
Men efter lite googling så verkar det som att det finns betydligt mindre 'dokumentation' dvs personliga inlägg om t.ex kodsnuttar och liknade om man jämnför med attmega168 .
Skriv svar