Forum: Mikrocontroller und Digitale Elektronik µC programmieren ohne ISP ?


von Anfänger (Gast)


Lesenswert?

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) ??

von Teo D. (teoderix)


Lesenswert?


von Fuchs (Gast)


Angehängte Dateien:

Lesenswert?

Mit sowas

von dasrotemopped (Gast)


Lesenswert?

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.

von Jens P. (picler)


Lesenswert?

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.

von W.A. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Jens P. (picler)


Lesenswert?

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.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

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.

von simpel (Gast)


Lesenswert?

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.

von Volker S. (vloki)


Lesenswert?

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.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

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

von W.A. (Gast)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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.

: Bearbeitet durch User
von Anfänger (Gast)


Lesenswert?

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 ?

von Volker S. (vloki)


Lesenswert?

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...

von Stefan F. (Gast)


Lesenswert?

> Meint ihr das ist brauchbar ?

Ich meine, dass das Ding vor allem teuer ist, wenn man es mit einem 
Arduino Nano aus China vergleicht.

von Anfänger (Gast)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

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

von Volker S. (vloki)


Lesenswert?

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.

: Bearbeitet durch User
von Anfänger (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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.

von Volker S. (vloki)


Lesenswert?


von Robert V. (malso)


Lesenswert?

Bin da nicht so bewandert. Gibts eigendlich so eine Art Miniklemmen die 
man an Verbaute µC-Beichen klemmen kann?

Robert

von Sascha_ (Gast)


Lesenswert?

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.

von Volker S. (vloki)


Lesenswert?

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" ...

von Programmiergast (Gast)


Lesenswert?

Anfänger schrieb:
> 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) ??

Für die Atmels gibts eine witzige und einigermaßen universelle Lösung:

https://guloshop.de/shop/Mikrocontroller-Programmierung/guloboard-G10::3.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.