Hoi,
Na een jaar programmeren met arduino wil ik graag met avr beginnen.
Ik heb net het avr microcontroller tutorial artikel gelezen op deze site.
Uit dat artikel wordt me niet duidelijk wat je nou precies allemaal nodig hebt.
Onder andere een programmer de AVR Dragon lijkt me geschikt, ook voor de toekomst?
En in welke taal kan ik het beste de avr programmeren als ik arduino gewent ben? En welke compiler kan ik daarvoor het best gebruiken?
Met welke software laad (flash) ik het programma op de avr? Zit dat bij de programmer?
Hoe sluit ik de avr aan op de programmer?
Welke UC?
Ik hoop dat iemand me verder kan helpen of nog een goeie tutorial heeft het liefst in het Nederlands.
Groet,
Emiel
w12101
Ouder en wijzer
ik heb niet de programmer van CircuitsOnline gemaakt maar er een voor 50 euro gekocht en hij doet het prima het is de Genius G540
daar zit de software die je nodig hebt om de .hex file te programeren
[Bericht gewijzigd door w12101 op (22%)]
Je kan gewoon in de Arduino IDE blijven werken...
Er zijn programmers die hiermee samenwerken, zoals de USBTinyISP, AVRISP mkII en nog veel meer.
Ik ben hier nu ook mee bezig, maar ik gebruik m'n Arduino als programmer.
http://provideyourown.com/2011/arduino-program-attiny/
Ik gebruik 'n ATTiny2313.
ik denk dat je idd het best die dragon kan kopen.
Die is van Atmel zelf, dus je hebt support voor alle nieuwe AVRs die ooit uit gaan komen. Daarnaast ook voor Attiny`s of XMEGA`s.
De software die je nodig hebt om de AVRs te programmeren is AVR studio.
Wederom van atmel zelf. Dit is tevens een ontwikkel omgeving als je WinAvr erbij installeerd.
Op de website van Atmel zul je waarschijnlijk AVR studio 5 tegen komen, maar die moet je niet downloaden. Die is kut. Zoek naar Avr studio 4.18 of een hogere als die nog is uitgebracht.
Je programmeerd dan in C. Ben niet zo bekend met de arduino maar dacht dat dat ook redelijk gelijk aan C was.
Een kant en klare tutorial heb ik niet, maar we kunnen je hier allemaal helpen.
Je sluit de processor op de programmer aan via 2 verschillende interfaces.
Vrijwel elke AVR heeft een ISP aansluiting. Dit zijn de pinnen
(reset, Mosi, Miso, ScK, GND en VCC)
De wat grotere AVRs hebben ook een JTAG aansluiting, dit zijn de pinnen (TMS, TDO, TDI, TCK,RESET, VCC, GND)
de AVR dragon kan via beide interfaces programmeren en debuggen wat het een hele fijne programmer maakt, voor weinig geld.
Een mooie AVR om mee te beginnen is de Atmega168, of één van zijn varianten met meer/minder RAM en Flash geheugen.
Wil je met segment lcd`s gaan werken, zoek je een atmega uit de serie
Mega169, mega329, mega649, of de Mega1690, mega3290, mega6490
Wil je wat meer IO en uart kies ik meestal de Mega324P of de Mega644P
Er zijn nog meer varianten, maar die zijn al wat ouder, of hebben mijn interesse nog niet gewekt, want kan met of de 644P of de 168 altijd wel uit de voeten voor 99%
even reclame maken, maar ik heb nog steeds een aantal programmer bordjes uit de AVR beschikbaar. Zie hier.
Deze werken met AVR Studio (geleverd door Atmel, de producten van de chips) en in code C. Veel over te vinden op internet, het aanleren van C gaat ook vrij eenvoudig.
Net als @Stijntjhe gebruik ik de Arduino ook als ISP. Net zo makkelijk, en als je er niet héél veel gebruik van maakt ook meer dan genoeg (feature-wise).
Daarnaast scheelt 't je weer een uitgave 
Bedankt voor al de reacties!
Ik denk dat ik maar een avr dragon ga bestellen met een paar verschillende hier genoemde UC's. Daarna AVR studio installeren met WinAvr.
Hoe zit het met bootloaders? Daar hoef ik geen rekening meer mee te houden denk ik....? Dit was toch alleen voor de IDE van arduino dat je die kon gebruiken?
Is een extern kristal nodig voor die uc's? Of zit er een ingebouwd en kan je die activeren met die fusebit's?
Is er ook ergens een zoek functie voor avr microcontrollers? Dat je je specificaties invult ergens en dat de microcontrollers die daar aan voldoen worden weergegeven, net zoals dat zoek vak bij farnell.
farnell heeft zo'n zoekfunctie.
maar ik gebruik zelf altijd de ATmega328p.
dat is ene manusje van alles
3 timers met elk 2 pwm kanalen.
ik geloof 3 manieren van seriele communicatie
6 kanaals AD converter
en de 328 heeft ook 32kByte flashgeheugen, en geloof me ,dat krijg je echt niet zomaar vol.
het is mij nog nooit gelukt om ook maar aan de helft te komen.
als je minder wilt zou je ook de 168 (16Kbyte) of 88 (8kbyte) kunnen kiezen.
deze controller is overigens wel relatief duur (ca 5 euro in kleine aantallen), mede door de vele mogelijkheden (dure chip).
ik heb zelf ook een dragon. ideaal ding. alleen is hij goedkoop. en dat is negatief in de zin van beveiliging. als je oplet gaat er niet zo snel wat fout, maar als het een keer fout gaat is de kans groot dat de dragon kapot gaat.
maar dat is wel op te lossen met een buffer systeempje erachter op basis van de 74hc244 (dacht ik). dan heb je de lage kosten van de dragon (en vele mogelijheden), en de beveiliging.
verder is avr studio prima. soms wat buggy, maar werkt verder goed.
bootloaders heb je niet nodig. kan wel als je wilt, maar voor normale dingen totaal overbodig
extern kristal kan. maar standaard staan ze op de interne 8MHz klok.
met de fusebits kun je dit inderdaad aanpassen.
EricP
mét CE
Die draak is zo gek niet. Overigens zijn er zat andere programmers die het ook prima doen. Afhankelijk van je wensen (en budget). Ben zelf wel gecharmeerd van het ding van Guido van Tuxgraphics. Dat is eigenlijk de 'standaard' geworden, tenzij de STK500 voor development gebruikt wordt (maar dat is eigenlijk steeds minder... als het klein (overzichtelijk) of groot (ga je met een dev. board niet redden) is, maak ik doorgaans gelijk de PCB (of laat die maken als het zakelijk is)).
Bootloader is voor Arduino IDE idd.
Als je bijv. je Arduino als programmer gebruikt, moet je eerst even 'n bootloader installeren anders doet je uC het niet (goed).
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Op 18 augustus 2011 17:38:00 schreef timberleek:
en de 328 heeft ook 32kByte flashgeheugen, en geloof me ,dat krijg je echt niet zomaar vol.
het is mij nog nooit gelukt om ook maar aan de helft te komen.
Je moet hoognodig wat beter je best doen! 
avr-size -d LabV.out
text data bss dec hex filename
41038 78 334 41450 a1ea LabV.out
In de ATmega644 waar het hier over gaat, zit een 126 * 256 array, vandaar
Overigens is die ATmega328 wel degelijk een goede allround. kost amper meer dan de ATmega88.
Oké mooi.
Ik heb het net allemaal besteld 
Denk dat er weer een wereld voor me open gaat!!
Maar hoe sluit ik de uc aan op de programmer?
Kan ik de uc gewoon in de zif socket doen en dan programmeren?
En hoe sluit ik hem dan aan voor ICP?
Ook zoek ik nog een tutorial/handleiding voor het programmeren in avr studio.
Frysk
Kom, laten we geen daglicht verknoeien
Ik heb bij leren programmeren van AVR's de volgende tutorial gebruikt: http://www.mikrocontroller.net/articles/AVR-Tutorial.
Hij is wel in het Duits. Maar de tutorial is wel goed.
Frysk
Dat klopt, 32kByte is ook wel vol te krijgen, maar dan moet je ook echt wel een flink programma maken.
tot nu toe heb ik het nog nooit gebruikt.
misschien dat het nu komt nu ik een wat groter project ga beginnen (domotica systeem op mijn kamer).
ik heb op school nog wel eens een pdf gehad met een avr studio tutorial. weliswaar met een stk500 ipv een dragon, maar dat maakt niet zoveel uit. alleen een andere programmer selecteren in het rijtje.
ik zal eens kijken of ik hem nog kan vinden.
edit:
nee, blackboard ligt plat (een of ander school systeem waar die documenten op staan).
misschien staat alles er binnenkort weer op
[Bericht gewijzigd door timberleek op (12%)]
Op 18 augustus 2011 17:25:46 schreef Emielzij:
Hoe zit het met bootloaders? Daar hoef ik geen rekening meer mee te houden denk ik....? Dit was toch alleen voor de IDE van arduino dat je die kon gebruiken?
Nee heb je niet nodig, kan handig zijn in sommige situaties, maar voor jezelf niet in ieder geval.
Uiteindelijk moet de bootloader er ook ooit in geprogrammeerd worden. Dit is bijvoorbeeld handig voor gebruikers hun product te laten updaten zonder kennis of bezit van een programmer te hebben.
Op 18 augustus 2011 17:25:46 schreef Emielzij:
Is een extern kristal nodig voor die uc's? Of zit er een ingebouwd en kan je die activeren met die fusebit's?
Dat ligt van je applicatie af.
Elke AVR (de meest gangbare iig) hebben een interne RC oscilaator van 8Mhz. Als je hele precisie timibng nodig hebt om een tijd bij te houden bijvoorbeeld of aan strenge communicatie timing moet voldoen heb je een extern kristal nodig. Dmv de fuses kun je dit instellen of hij de interne of de extrene oscillator moet gebruiken. Pas wel op met deze fuses, als je ze verkeerd zet kun je je microcontroller niet meer zo eenvoudig herstellen.
Op 18 augustus 2011 17:25:46 schreef Emielzij:
Is er ook ergens een zoek functie voor avr microcontrollers? Dat je je specificaties invult ergens en dat de microcontrollers die daar aan voldoen worden weergegeven, net zoals dat zoek vak bij farnell.
Ja, hier heb je de parametric table van atmel, daar staan alle MEGA AVR`s in met wat ze in hun huisje hebben.
http://www.atmel.com/dyn/products/param_table.asp?category_id=163&fami…
Ik zit nu in Spanje ik kan de 23e bij mijn bestelling dan ben ik terug. En zal dan wel even wat laten weten.
Nu weet ik nog niet hoe ik de avr uc aansluit op de dragon. Ik heb ook zo'n 40 pin zif socket mee besteld neem aan dat ik hem daar in kan doen en hem kan programmeren? En voor ICSP welke connecties moet ik daarvoor maken? Alleen de reset, Mosi, Miso, ScK, GND en VCC? Voor zover ik uit de datasheet kan opmaken zit er al een header op voor het ISP.
Ook zoek ik nog een tutorial voor het programmeren zelf in avr studio.
Bijvoorbeeld voor de if else structuur en hoe je bijvoorbeeld een logic or aangeeft || geloof ik, maar dat soort dingen...
Op 17 augustus 2011 16:24:24 schreef Pieturp:
Net als @Stijntjhe gebruik ik de Arduino ook als ISP. Net zo makkelijk, en als je er niet héél veel gebruik van maakt ook meer dan genoeg (feature-wise).Daarnaast scheelt 't je weer een uitgave
Maar niet de uno, die is niet compatibel met de isp code.
zif socket is niet direct nodig. kan handig zijn in sommige situaties, maar je kan ook gewoon een draadje leggen tussen het betreffende pinnetje en de dragon.
daar zit inderdaad een isp header op.
die heeft deze pinout:
(de 6 pin).
gewoon aansluiten aan de betreffende pin (gnd is natuurlijk de ground en v+ de positieve spanningslijn.
in het geval van de atmega328 is de pinout als volgt:
bij de pinnen staan alle 'functies' die ze kunnen vervullen.
avr studio is op zich redelijk makkelijk. misschien heeft avr zelf een tutorial. die van mijn school kan ik nu jammer genoeg niet bij door die problemen met blackboard
Ik heb m'n avr dragon programmer binnen ook 4 uc's namenlijk:
2x atmega168PA-PU
2x atmega324A
Ook heb ik avr studio geinstalleerd en heb ik de dragon succesvol ge-upgrade.
Verder ben ik nog niet en kom ik nog niet. Hoe hebben jullie in C leren programmeren? En om leren gaan met avr studio. Bij arduino is er een mooi overzicht van verschillende functies met daarbij uitleg, werking en voorbeeld programma's, is dat hier ook van te vinden? Of een mooi boek of site met uitleg?
in c leren programmeren kan op allerlei manieren.
in mijn geval de basis grotendeels via school, daarna zoeken op internet.
maar er zijn ook zat tutorials te vinden op internet en in boek vorm.
waarschijnlijk als je c tutorial googled kom je een heel eind.
geen idee hoe het zit met de avr studio tutorial. maar ik denk wel dat dat op internet te vinden is (in elk geval de basis)
Voor mij is dit een heel duidelijk boek. http://mic.dolman-wim.nl/index.html
Uitgebreide uitleg van de taal C + AVR's. Bovendien veel voorbeeld progjes.
Wanneer ik de ATmega168 heb geplaatst in de ZIF socket en een simpel knipper led programma van internet in avrstudio laad en hem probeer te "builden" krijg ik de volgende melding:
Uploaded with ImageShack.us
ook als ik probeer te connecten onder tools krijg ik die foutmelding.
ik weet eerlijk gezegt niet of je de zif op de dragon kan gebruiken voor ISP programming. Misschien dat deze enkel parallel?
Probeer eens de PP/HVSP optie ipv ISP.
Ik zou de controller in een los voetje op je print solderen ledje eraan en dan een isp aansluiting maken naar je dragon.
heb je enkel de zif socket erop gesoldeerd?
dan doet hij het niet.
de gaten van voor de ic's op het bord staat alleen maar in verbinding met de 2x10 header net rechts van de isp headers (op de foto):
vanaf die 2*10 header moet je zelf nog verbindingen leggen tussen de juiste pinnen van de isp, jtag, hvprog en/of power header (vergeet die laatste ook niet).