[avr] Beginnersvraag programmer

Ik ben aan het kijken wat ik nodig heb om avr met c te gaan programeren. en ben van plan om een usb programmer (UsbTinyISP) te gaan kopen. Maar aan deze zit een 6 of 10 pins header. Hoe moet je dan je avr erop aansluiten? Prik je die in een breadboard en bedraad je dan de opgegeven pinnen?

Ik heb al best veel websites hierover gelezen, maar dit deel zie ik helemaal nergens beschreven? Wat zie ik over het hoofd?

Misschien weet iemand een interesante website om echt alles helder te krijgen?

High met Henk

Special Member

atmel heeft 2 types ISP connector standaard. de 6 en 10 pins variant.

Gewoon de draadjes goed erop aansluiten van de pinnen en klaar.
Uit mijn hoofd zeg ik:
VCC aan VCC (+ dus)
GND aan GND (- dus)
SCK aan SCK (serial clock)
MOSI aan MISO (master out slave in en Master in en Slave out)
MISO aan MOSI (master in slave out en Master out en Slave In

that's it. Let wel even op dat de ISP bij SOMMIGE atmels niet op de SPI bus zit, maar op andere I/O

[Bericht gewijzigd door High met Henk op dinsdag 12 februari 2013 08:54:58 (54%)

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???
EricP

mét CE

Vergeet die Vcc - tenzij je je knutsel uit je programmer wilt voeden of andersom. Beetje afhankelijk van welke programmer je hebt.

Denk aan je nRESET. Anders gaat het echt niet werken.

Heeft Atmel daar niet een mooie AP van? Ik kan me herinneren dat toen ik met een AT90S-weet ik wat begon, programmers nog schreeuwend duur waren, het hele protocol in de datasheet stond en ik dat zelf bit-banged op een DOS doos met de centronics poort in elkaar geklust heb.

Voor wat betreft de pinnen die je moet hebben: RTFD.

Zorg ervoor dat je draadjes tussen programmer en broodplank niet lang zijn. Wat werkt is oa. afhankelijk van hoe snel je je clock laat lopen. 30cm is hier nog nooit een probleem geweest - al moet ik zegen dat ik meestal met een 'testclip' programmeer.

MOSI aan MISO (master out slave in en Master in en Slave out)
MISO aan MOSI (master in slave out en Master out en Slave In

Hela! SPI is geen RS232, hoor!
MOSI moet aan MOSI
MISO moet aan MISO

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
EricP

mét CE

Daar had ik zelfs nog overheen gelezen. Zie je hoe verdomd makkelijk zijn testclip is... 1x erop prikken... En nooit meer over nadenken tot je een andere housing AVR hebt :+

High met Henk

Special Member

ehmmm ga ik mis PROS?

ik kan me toch herinneren dat je die 2 moest twisten. als je de orignele AVR SPI pakt... (maar is alweer 4 jaar geleden dat ik dat deed)

BTW ik heb een AVRISP MKII en die heeft de VTG (hij heette idd geen VCC nodig om een detectie te doen of het raget voeding heeft.

was trouwens idd de reset vergeten

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

nee, MOSI naar MOSI, MISO naar MISO. Als je daarentegen SDO en SDI lijnen hebt moet je ze wel kruisen!
MOSI/MISO staat voor Master out, slave in. (en andersom)
Je hebt dus altijd een master in SPI (degene die de SCLK levert), dat is degene die op MOSI zend en op MISO ontvangt. De andere (Slave) zal juist op MOSI ontvangen en op MISO zenden.

Meep! Meep!
High met Henk

Special Member

maar als je PROGRAMMEERT is de uC slave, echter als je de SPI van de uC gebruikt in je toepassing is de uC master, daarom dus.

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

Geen probleem, dan (als de benaming van de pinnen gewoon klopt) zal de MISO input zijn als de uC master is en output als de uC slave is.

Meep! Meep!

MOSI altijd aan MOSI
MISO altijd aan MISO
NOOIT twisten. Nooit.

Zo goed als het vroeger was, is het nooit geweest.

mosi = master out slave in
miso = master in slave out

als je dit twist krijg je toch master out naar slave out.

Dus kort gezecht. Kan je het op een breadboard verder bedraden vanaf je programmer. Mits je de draden goed aansluit (datasheet bekijken)

Ja, dat kan. Als je twijfelt, plaats dan weerstanden (470Ω of zo) tussen programmer en AVR. Dat werkt net zo goed, en de kans op schade bij verkeerd aansluiten wordt heel wat kleiner.
GND moet je uiteraard rechtstreeks aansluiten.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Op 12 februari 2013 09:29:04 schreef EricP:
Ik kan me herinneren dat toen ik met een AT90S-weet ik wat begon, programmers nog schreeuwend duur waren, het hele protocol in de datasheet stond en ik dat zelf bit-banged op een DOS doos met de centronics poort in elkaar geklust heb.

Dat doe ik nog steeds. Alleen heb ik he programma niet zelf geklutst, maar avrdude gedownload. En mijn kabel gaat van de printerpoort (oke, dat heeft niet iedereen meer) rechtstreeks naar de AVR. pinout volgens http://www.bsdhome.com/avrdude/, al lijkt die site nu stuk. Pinout staat ook in de avrdude documentatie:

code:


programmer
  id    = "bsd";
  desc  = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/";
  type  = par;
  vcc   = 2, 3, 4, 5;
  reset = 7;
  sck   = 8;
  mosi  = 9;
  miso  = 10;

pinout op de AVR chip staat gewoon in de datasheet: table 28.15 pagina 305 voor de 168P. Andere chips zal vast ook wel in hun respectievelijke datasheet staan.

Ik heb vorige week een "programmeer-een-andere-avr" programma voor een AVR geschreven. Was in minder dan een dag klaar. :-)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/