ISP
In System
Programmer
sprung zu : makefile_eintraegeALLES ändert sich. und leider sind
die sehr gut funktionierenden In
System Programmer, die auf LPT
und COM Schnittstellen
beruhen, veraltet und somit nicht mehr zu empfehlen.
Hier baue ich langsam die neue Beschreibung auf.
Relvant ist jetzt der USB Fischl USB-ISPAdapter
Die USB Treiber sind ebenfalls auf der Fischl Seite. http://www.fischl.de/usbasp/
This
programmer is based on Thomas Fischl's USBasp design and connects to
your computer's USB port. Not only is it quite compact, but the design
is really elegent. The USB interface is achieved by using an atmega
processor and the rest is done in firmware. For those interested, the
firmware source code can be downloaded from the USBasp website.
http://www.fischl.de/usbasp/
Some of the features include:
Support for AVRDude from version 5.2 onwards
Allows you to to read or write the microcontroller EEPROM,
firmware, fuse bits and lock bits
Support for Linux, Mac OS X and Windows (will work on vista)
5 KB/sec maximum write speed
Software controlled SCK option to support targets with low clock
speed (< 1.5MHz)
10 pin ISP interface
These programmers are a perfect companion to the Protostack 28
pin AVR Development Board or the Protostack ATMEGA8 Development Kit.
Supported microcontrollers
include:
Mega
Series
ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega64 ATmega640 ATmega644 ATmega649
ATmega6490 ATmega8515 ATmega8535
Tiny Series
ATtiny12 ATtiny13 ATtiny15 ATtiny25 ATtiny26
ATtiny45 ATtiny85 ATtiny2313
Classic Series
AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535
CAN Series
AT90CAN128
PWM Series
AT90PWM2 AT90PWM3
STK500 Modus !
ACHTUNG Vor
Anstecken des ISP an das Zielsystem, mit myAVR ProgTool Stromversorgung
Ausschalten !!! und Deaktivieren!
Sonst kollidieren interne und externe Stromversorgung:
Neuer Serieller ( etwas
langsamerer ) ISP Dongle: Arbeitet hervorragend mit Pony-Prog
zusammen.
Achtung: Dieser geht nur bei "echten" COM Ports. USB-COM Wandler
funktionieren "nicht"
!
AVR.-Studio Programmer geht auch nicht!^
MEINE Platine, die ich im Kurs verwendete,. Geht nur mit "ECHTEN"
Com Ports und nur unter Windows XP getestet.
EAGEL Files: AVR_Serial_ISP_V2C.schAVR_Serial_ISP_V2C.brd
Platinenenansicht:
und die Schaltung:
Orginal: von Pollin-Evalboard geklaut:
R1 33 kOhm R2,R6 4,7 kOhm R3,R5 10 kOhm D1,D2 Z-Diode 5,1 V D3 1N4936 T1 BC846 bzw. BC546B
Darin ist enthalten is auch schon ein Superpraktischer
Wandler für 10-Polig auf 6-Polig ISP
Hier
eine beliebte Verwechslunsgsfehlerquelle, aber korrigiert
MISO heisst, Master in, Slave Out , entprechend MOSI Master
Out, Slave In. SCK = Clock, Reset ist, was es heisst.
?
Wo ist die Com-Schnittstelle ( wie heisst Sie ? )
Es ist ganz einfach, dies ezu finden.!
Drücke mal die FENSTER-Taste und "Pause" rechts oben
gleichzeitig.
Es öffnet sich Systemiegenschaften
Dann weiter: Hardware,
Gerätemanager dann gucke unter Aschlüsse ( COM und LPT
)
TIP: Es geht weiter mit rechter Maustaste auf die
ComSchnittstelle die man bearbeiten möchte
Dann kommen Schnittstellenparameter, unter Erweitert kann man
die Zuordnung COM1..2.3..usw
ändern!! makefile
Einträge
für das Serielle Programmiergerät:
so wirds ausgeschrieben. gemacht, aber mit
Pseudodefines
avrdude -c ponyser ist der entsprechende Parameter.
So
stehts im Makefile: suche
nach->
#---------------- Programming Options (avrdude) ----------------
Programming hardware
# Type: avrdude -c ?
# to get a full listing.
AVRDUDE_PROGRAMMER = ponyser
AVRDUDE_CLOCK_DELAY = 3 #von mir eingefügt,
Hardwarebremse <µS>
AVRDUDE_PORT = com1 # programmer
connected to serial device
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
# -i <µS> ist Bremse
#AVRDUDE_FLAGS = -p $(MCU) -P
$(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
#AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
-i 2 #direkt reingeschrieben oder mit Alias
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c
$(AVRDUDE_PROGRAMMER) - i $(AVRDUDE_CLOCK_DELAY)
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
so
ist der PonyProg einzustellen: In Setup -->, Interface
Setup,
dann...mit Probe muss OK kommen. (Vergiss nich, ist die µC
Platine unter Strom ?)
AVR
Burn-O-Mat,
die Alternative zu Pony-Prog
Googeln, Downloaden, braucht den Java Softwarebackground... oder siehe
CD für das COM Port, aber auch
für den USB-AVR Adapter
Fuses:
Alter
aber guter paralleler Dongle. !!
So in etwa ist der ISP Parallel Dongle aufgebaut.
Leider etwas veraltet, weil Paralelports aussterben.
und
so simpel ist die Schaltung.. Der IC dient hauptsächlich zum Schutz des
PC... es ginge auch nur mit Widerständen...( Aber das sollte man nicht
tun)
Um einen Adpater zu haben von 6poligen ISP zum 10 Poligen gibts hier
die Eagledatei: ISP_10To6.sch ISP_10To6.brd
makefile für Parallel
Programmer
AVRDUDE_PROGRAMMER = pony-stk200
# com1 = serial port. Use lpt1 to connect to parallel port.
AVRDUDE_PORT = lpt1
AVRDUDE_CLOCK_DELAY = 2
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
#- i <µS> ist Clock delay
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c
$(AVRDUDE_PROGRAMMER) -
i $(AVRDUDE_CLOCK_DELAY) AVRDUDE_FLAGS
+= $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
AVRDUE vom CMD
Beispiel AVRDUDE zufuß Kommando: im CMD Fenster: avrdude -p atmega8
-c <programmer> -P <port> -t
//im terminal mode
avrdude -p atmega8 -c <programmer> -P <port> -i <µs> -t // mit -1 kann man delays einbauen
Einstellung des makefiles
Kommentar:
# suche mit "Strg + F" nach "avrdude" zum Einstellen des
Programmers
#aktiviere für den Seriellen Programmer ponyser oder pony-stk200
# ponyser
# AVRDUDE_PROGRAMMER = ponyser
# wähle com 1 odercom2
# AVRDUDE_PORT = com1
# programmer connected to serial device
#dies habe ich eingefügt AVRDUDE_CLOCK_DELAY = 2
#Device signature = 0x1e9403 für ATMega16
# stra --> cmd --> avrdude -c ? listte alle
vorhandnen Programmer auf.
So stehts im makefile:
Serieller Adapter
#AVRDUDE_PROGRAMMER = ponyser
#Paralleladapter
AVRDUDE_PROGRAMMER
= pony-stk200 # ist LPT
#USB
#USB Selbtbau Programmer.. ! Achtung DLL aus alter Version laden !
#AVRDUDE_PROGRAMMER = USBasp AVRDUDE_CLOCK_DELAY = 3
# com1 = serial port. Use lpt1 to connect to parallel port.
#AVRDUDE_PORT = com1
# programmer connected to serial device
#AVRDUDE_PORT = usb
# programmer connected to USB port
AVRDUDE_PORT = lpt1
#programmer connected to parallel device