Moin,
auf der Suche nach Programmiergeräten für µC habe ich nun 2 Geräte
gefunden:
AVRISP mkII
PICKit 3
Mit dem mitgelieferten Kabel kann man ja mit den Geräten PICs und Atmels
programmieren die in einer Schaltung eingebaut sind (ISP)
Schön und gut, nur habe ich aber gar keine ISP Anschlüsse,
sondern z.B.so etwas:
http://www.instructables.com/id/LogicProbePIC/
also ein Hexfile und eine Schaltung zum Aufbau.
Sodele, und wie brenne ich nun mit dem AVRISP mkII oder PICKit 3 ein
Hexfile in einen Atmel / PIC ?? Irgendwie brauch ich doch noch Hardware
dazu wo man dann den µC reinsteckt (kopf kratz) ??
bei deinem PicKit 3 ist ein Poster dabei, auf dem mit vielen Bildern
gezeigt wird, wie man einem Pic an den Programmer anschliessen muss.
wenn du das schon verlegt hast, hier ist der Download:
http://ww1.microchip.com/downloads/en/DeviceDoc/50002010B.pdf
Viel Spass.
Gruß,
dasrotemopped.
Anfänger schrieb:> Mit dem mitgelieferten Kabel kann man ja mit den Geräten PICs und Atmels> programmieren die in einer Schaltung eingebaut sind (ISP)
Genau, dafür stellt der PIC 5 Anschlüsse bereit (Vcc, GND, Vpp, Takt und
Daten) die mit dem PICkit 3 verbunden werden. Dazu muss man natürlich
einen passenden ISP-Anschluss auf der Platine vorsehen (oder
nachträglich einbauen).
> Schön und gut, nur habe ich aber gar keine ISP Anschlüsse,
Vorher programmieren oder ISP mit einbauen.
> Sodele, und wie brenne ich nun mit dem AVRISP mkII oder PICKit 3 ein> Hexfile in einen Atmel / PIC ?? Irgendwie brauch ich doch noch Hardware> dazu wo man dann den µC reinsteckt (kopf kratz) ??
Wenn du den PIC unbedingt extern programmieren willst und davon nicht
gerade 1000 Stück brauchst kannst du dir aus einer passenden IC-Fassung
und ein Stück Lochrasterplatine einen simplen Adapter zusammenlöten.
Einfach die passenden Anschlüsse vom PICkit mit der Fassung verbinden,
PIC reinstecken und programmieren.
Viele Tipps für PIC-Einsteiger gibt es unter www.sprut.de
PS: Das ist jetzt nur für PICs geschrieben, aber bei den AVRs ist es
quasi das gleiche. Dazu einfach mal die Forensuche benutzen.
Jens P. schrieb:> Dazu muss man natürlich einen passenden ISP-Anschluss auf der Platine> vorsehen (oder nachträglich einbauen).
Man soll den Aufwand nicht übertreiben. Was soll man da einbauen müssen.
Der µC ist doch nicht ohne Grund so ausgerichtet, wie er ausgerichtet
ist.
Einen dafür passenden Prüf-Clip gibts (fast) überall.
W.A. schrieb:> Man soll den Aufwand nicht übertreiben. Was soll man da einbauen müssen.> Der µC ist doch nicht ohne Grund so ausgerichtet, wie er ausgerichtet> ist.
Keine Ahnung, wo eine 5-polige Stiftleiste, etwas Draht und je nach
Schaltung ein Widerstand und zwei Dioden für dich Aufwand sind?
Jedenfalls sehe ich in quasi allen meinen Basteleien mit PICs einen ISP
vor. Das hat den Vorteil, das man jederzeit an den µC (bzw. dessen
Speicher) ran kommt.
> Einen dafür passenden Prüf-Clip gibts (fast) überall.
Wenn du mit überall Ebay meinst, gebe ich dir Recht. Beim örtlichen C
habe ich ihn noch nicht liegen sehen... Außerdem sind mir solche Dinger
zu unhandlich. Den muss man mit einer Hand immer festhalten. Das macht
sich beim Debuggen immer etwas ungünstig.
AVR Mikrocontroller (die meisten jedenfalls) haben eine ISP
Schnittstelle. Die Pins sind mit MISO, MOSI, SCK und RESET beschriftet.
Diese musst du mit dem ISP Programmieradapter verbinden. Natürlich auch
VCC und GND nicht vergessen.
Du kannst die Pins auch als "normale" I/O Pins verwenden, wenn du deine
Schaltung so auslegst, dass der Programmieradapter Vorrang hat. Zum
Beispiel:
1
_____ 1kΩ
2
GND |------- ------[===]--------o SCK Pin
3
Taster
So kannst du den Zustand des Tasters am SCK Pin abfragen, aber wenn der
ISP Programmieradapter dort angeschlossen ist, dann hat dieser Vorrang.
Der 1kΩ Widerstand verhindert einen Kutzschluss durch die
Doppel-Belegung.
Achtung, jetzt kommt der Fallstrick Nr 1:
Wenn du mit dem Programmieradapter die Fuses so änderst, dass der µC
eine externe Taktquelle verwendet, dann muss die auch vorhanden sein.
Ansonsten hat er nach dem nächsten Strom aus/an Wechsel keine Taktquelle
mehr und dann funktioniert auch die ISP Schnittstelle nicht mehr.
Weitere häufige Fallstricke:
- Wenn der µC mit weniger als 8Mhz getaktet ist (was standardmäßig der
Fall ist), kommuniziert der Programmieradapter zu schnell, der µC kommt
nicht mit. Du musst die Geschwindigkeit des Programmieradapter herab
setzen. Bei avrdude geht das z.B. mit dem Parameter -B20
- ISP benötigt den RESET Pin. Wenn du die Reset-Funktion des Pins (bei
kleinen ATtinys) deaktivierst, geht ISP nicht mehr.
- Wenn du JTAG oder Debug-Wire aktivierst, geht die ISP Schnittstelle
nicht mehr. Dann brauchst du einen ICE-Debugger oder High-Voltage
Programmer, um den Fehler wieder rückgängig zu machen.
- Da der Reset-Pin Teil des ISP Protokols ist, darf da kein dicker
Kondensator direkt dran hängen. 100nF sind Ok, bei mehr kann es zu
Fehlfunktionen kommen. Du kannst das Problem so umgehen:
1
100µF 1kΩ 100kΩ
2
GND |----||----[===]----+----[===]----o VCC
3
|
4
o
5
Reset
Also im Prinzip genau wie oben mit dem Taster.
Bei Mikrocontrollern mit PDI und TPI Protokoll (statt ISP) dürfen gar
keine Kondensatoren an den betroffenen Leitungen hängen.
Es reicht ja, auf der Platine, dort wo Platz ist, ein paar Einzelstifte
für den ISP hochstehen zu lassen. Darauf kann man dann die female-Enden
der billigen Breadbordboardkabel stecken, die mit dem Progger verbunden
sind. Dann muss nicht mal Platz für einen Wannenstecker verschwendet
werden.
Bei der ICSP Geschichte muss man allerdings auch darauf achten, dass die
benötigten Pins nicht durch äußere Beschaltung unbrauchbar werden. Das
kann bei kleinen uC mit wenigen Pins dann schonmal zusätzlichen Aufwand
bedeuten (Jumper...)
Für Pickit3 bei aliexpress suchen. Da gibt es haufenweise Angebote
inklusive Programmier-Sockel zu einem Preis, für den man bei einem
ordentlichen Distributor noch nicht mal einen nackten Sockel bekommt.
Dann hat man für 2€ mehr auch eine einfache Lösung, falls es "In
Circuit" mal nicht geht.
Stefan U. schrieb:> AVR Mikrocontroller (die meisten jedenfalls) haben eine ISP> Schnittstelle. Die Pins sind mit MISO, MOSI, SCK und RESET beschriftet.> Diese musst du mit dem ISP Programmieradapter verbinden. Natürlich auch> VCC und GND nicht vergessen.
Bei PIC heißen die Pins PGC/PGD oder ICSPCLK/ICSPDAT und der Reset heißt
da MCLR. Das Prinzip ist aber gleich.
> Achtung, jetzt kommt der Fallstrick Nr 1:
den gibts bei PIC nicht, ICSP funktioniert immer.
> - Wenn der µC mit weniger als 8Mhz getaktet ist (was standardmäßig der> Fall ist), kommuniziert der Programmieradapter zu schnell, der µC kommt> nicht mit. Du musst die Geschwindigkeit des Programmieradapter herab> setzen. Bei avrdude geht das z.B. mit dem Parameter -B20
Ist bei PIC auch irrelevant, ICSP ist fast idiotensicher.
> - ISP benötigt den RESET Pin. Wenn du die Reset-Funktion des Pins (bei> kleinen ATtinys) deaktivierst, geht ISP nicht mehr.
Ist bei PIC auch irrelevant. Da gibts aber eine andere Fallgrube. Der
Programmer legt bei den 8 Bittern eine Spannung zwischen 8 und 13.5V
(typabhängig) an, um in den Programmiermodus zu wechseln. Die externe
Beschaltung muss damit zurecht kommen.
> - Wenn du JTAG oder Debug-Wire aktivierst, geht die ISP Schnittstelle> nicht mehr. Dann brauchst du einen ICE-Debugger oder High-Voltage> Programmer, um den Fehler wieder rückgängig zu machen.JTAG und ISP gehen bei AVR gleichzeitig, Debugwire und ISP aber nicht.
> - Da der Reset-Pin Teil des ISP Protokols ist, darf da kein dicker> Kondensator direkt dran hängen. 100nF sind Ok, bei mehr kann es zu> Fehlfunktionen kommen. Du kannst das Problem so umgehen:
Ist bei PIC genauso.
fchk
Jens P. schrieb:> Keine Ahnung, wo eine 5-polige Stiftleiste, etwas Draht und je nach> Schaltung ein Widerstand und zwei Dioden für dich Aufwand sind?
Wie lange brauchst du, um das hinzufädeln?
Wieviel größer wird die Platine?
Reicht das Gehäuse dann noch?
Für einmalige Programmierung ist das doch arg übertrieben.
Wenn man dann unbedingt eine separate Verbindung braucht, und sei es
wegen der Pin-Beschaltung, ist statt einer Stiftleiste bei
durchkontaktierten Platinen meist einfacher, in Randnähe eine Reihe Vias
vorzusehen, in die man zum Programmieren nur eine
Stiftleiste/Wannenstecker reinhält, z.B. einen gewinkelte Wannenstecker
(wegen der größeren Elastizität der Beine).
Da beim TO schon ein µC im DIP-Gehäuse verwendet wird, besteht doch
überhaupt kein Grund für zusätzliche Kontakte und Kabeleien, falls denn
die Schaltung so ausgelegt ist, dass sich Programmierung und normale
Beschaltung nicht in die Quere kommen.
Anfänger schrieb:> wie brenne ich nun mit dem AVRISP mkII oder PICKit 3 ein> Hexfile in einen Atmel / PIC ?? Irgendwie brauch ich doch noch Hardware
Die "Hardware" besteht aus 5 (PIC) bzw. 6 (AVR) Verbindungen (vulgo:
Drähten) zwischen dem µC und dem Programmiergerät. Wie du das konkret
löst, ist dir überlassen. Am universellsten ist ein entsprechender
Steckverbinder auf der Platine, z.B. einreihig 5-polig für PIC und
zweireihig 6- oder 10-polig für AVR. Die Steckverbinder und ihre
Belegung sind genormt (idR so, daß ein 1:1 Kabel zwischen Programmier-
gerät und Platine paßt). Du kannst aber beliebige Steckverbinder nehmen
und dir ein Spezialkabel dafür bauen. Für AVR ist Micromatch 6-polig
beliebt, weil schön klein.
Wenn du den µC nur einmalig programmieren mußt, dann kannst du diese
Verbindungen auch einfach einmalig an die entsprechenden Punkte auf der
Leiterplatte anlöten und nach dem Programmieren wieder entfernen.
Oder du baust/kaufst so einen Adapter mit Nullkraftsockel, wo du den µC
zum Programmieren einsetzt.
Danke erstmal für die Beiträge.
Der PICKit ist nun unterwegs, habe das Gerät also noch nicht.
Nun habe ich aber noch etwas anderes gefunden:
http://www.watterott.com/de/USB-Bit-Whacker-18F2553-Development-Board
Meint ihr das ist brauchbar ?
Wenn man noch in die Lötstellen an den Seiten so Stiftsockel einlötet
und von da die Drähte zu einer Fassung auf einer Lochrasterplatine
verbindet müsste doch auch funktionieren ?
Brauchbar für was? Als Programmiergerät für andere PICs würde ich mal
sagen NEIN. Der Bootloader darauf ist zumindest zum Entwickeln auch
unnütz, wenn du dann demnächst sowieso ein PICkit hast...
Brauchbar meinte ich um lediglich ein vorhandenes Hexfile in den PIC zu
programmieren und ob das Teil dazu taugt.
Sicher ist es doppelt so teuer wie ein PICKit, aber wenn man nur diese
eine Funktion braucht.
War aber sowieso mehr eine theoretische Frage.
Anfänger schrieb:> Danke erstmal für die Beiträge.> Der PICKit ist nun unterwegs, habe das Gerät also noch nicht.> Nun habe ich aber noch etwas anderes gefunden:>> http://www.watterott.com/de/USB-Bit-Whacker-18F2553-Development-Board>> Meint ihr das ist brauchbar ?> Wenn man noch in die Lötstellen an den Seiten so Stiftsockel einlötet> und von da die Drähte zu einer Fassung auf einer Lochrasterplatine> verbindet müsste doch auch funktionieren ?
Für 8 Bit PICs nicht. Dafür fehlt noch die programmierbare
Spannungsquelle für die Programmierspannung, die an Vpp/MCLR angelegt
werden muss. Und DU musst das ICSP-Protokoll für den jeweiligen Chip
(das ist von Chipfamilie zu Chipfamilie unterschiedlich!) selber
implementieren.
Sorry, aber wenn ich mir Deine Beiträge so anschaue, glaube ich nicht,
dass Du das in endlicher Zeit hinbekommst.
fchk
Anfänger schrieb:> Brauchbar meinte ich um lediglich ein vorhandenes Hexfile in den PIC zu> programmieren und ob das Teil dazu taugt.> Sicher ist es doppelt so teuer wie ein PICKit, aber wenn man nur diese> eine Funktion braucht.> War aber sowieso mehr eine theoretische Frage.
Das Teil taugt nur dazu ein vorhandenes hex-file für das Teil in das
Teil zu laden. Mit anderen PICs kan das Teil erst mal gar nichts
anfangen.
na da war mein Japanisch doch au wieder net so gut ich hab das so
gelesen :o)
Taugt dann das da wenigstens etwas um ein Hexfile in einen PIC zu
flashen?
http://www.ebay.de/itm/252117924313?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Auf der Rückseite ist noch aufgedruckt wie man die Jumper für die
entsprechenden PICS setzen muss.
Da ich die Schaltung sowieso aufbauen muss setze ich eben noch ein paar
Lötstifte mit drauf für ISP da hätt ich auch selber drauf kommen können
Nein, das ist nur ein mechanischer Sockel, kein Programmieradapter.
Du brauchst einen Programmieradapter. Auf der einen Seite hat er einen
USB Anschluss, in der Mitte einen bereits prigrammierten Mikrocontroller
und auf der anderen Seite eine Schnitttselle zum Ziel.Mikrocontroller,
der programmiert werden soll.
Für den Fall dass das noch nicht erwähnt wurde: Der ESP8266 mit esp-link
kann AVRs programmieren, aber es ist mir nicht ganz klar ob per ISP oder
UART+Bootloader.
Robert V. schrieb:> Gibts eigendlich so eine Art Miniklemmen die> man an Verbaute µC-Beichen klemmen kann?W.A. schrieb:> Einen dafür passenden Prüf-Clip gibts (fast) überall.
Oder such mal nach "Micro Kleps", "E-Z Hook" ...