Forum: Mikrocontroller und Digitale Elektronik ISP Atmega32 Anschluss PC-Parallelport


von Dietmar P. (dietmar2)


Lesenswert?

Hallo,

vorab ich kenne das Risiko eines selbst gebauten ISP-Dongles.

Habe aber eine grundsätzliche Verständnisfrage.
Ich hatte bis jetzt mit dem Butterfly getestet und ihn via ISP geflasht.
Dort war Anschlussbelegung am Druckerport wie folgt:

         Druckerport
Sck      Pin 1
Mosi     Pin 2
Miso     Pin 11
Reset    Pin 16

Nun wollte ich auch einen Dongle löten für den Atmega 32. Im Netz habe 
ich nochmals die Anschlussbelegung nachgesehen und bin total konfus. Ich 
habe
dort verschiedene Belegungen gesehen:

         Druckerport
         Variante A       Variante B
Sck      Pin 6            Pin 2
Mosi     Pin 7            Pin 8
Miso     Pin 10           Pin 11
Reset    Pin 9            Pin 3

Da passt aber auch nix.
Teilweise wird (sinnvollerweise votgeschlagen Widerstände dazwischen zu 
schalten).

Kann mir bitte jemand die richte Anschlussbelegung mitteilen?

Gruß
Dietmar

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Dietmar P. schrieb:

> Kann mir bitte jemand die richte Anschlussbelegung mitteilen?

Ja: der Hersteller der Software, die dann diesen Port ansteuern soll.
Bei AVRDUDE beispielsweise kann man diese Belegung relativ frei
wählen, und sie wird für den jeweiligen ISP-Adapter im avrdude.conf
konfiguriert (wo es natürlich schon ein Dutzend vorkonfigurierte
Versionen gibt).

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Da gibt es sogar noch mehr. Ich würde eine Pinbelegung wählen, die in 
einem der Programme für AVR In System Programmer unterstützt wird. 
Als erstes fällt mir dabei AVRDUDE ein - gibt es für Windows, Linux, 
BSD, Mac OS... und dort ist die Konfiguration der Hardware in dem 
avrdude.conf abgelegt. Ein Ausschnitt daraus für diese 
Parallelport-Programmer lautet:
1
# Parallel port programmers.
2
3
programmer
4
  id    = "bsd";
5
  desc  = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/";
6
  type  = par;
7
  vcc   = 2, 3, 4, 5;
8
  reset = 7;
9
  sck   = 8;
10
  mosi  = 9;
11
  miso  = 10;
12
;
13
14
programmer
15
  id    = "stk200";
16
  desc  = "STK200";
17
  type  = par;
18
  buff  = 4, 5;
19
  sck   = 6;
20
  mosi  = 7;
21
  reset = 9;
22
  miso  = 10;
23
;
24
25
# The programming dongle used by the popular Ponyprog
26
# utility.  It is almost similar to the STK200 one,
27
# except that there is a LED indicating that the
28
# programming is currently in progress.
29
30
programmer
31
  id    = "pony-stk200";
32
  desc  = "Pony Prog STK200";
33
  type  = par;
34
  buff  = 4, 5;
35
  sck   = 6;
36
  mosi  = 7;
37
  reset = 9;
38
  miso  = 10;
39
  pgmled = 8;
40
;

Deine Variante A entspricht dem "stk200" bzw. "pony-stk200" - eine 
besonders gängige Pinbelegung. Für die STK200 Belegung gibt es auch ein 
Plugin von Kanda mit dem man den ISP-Adapter direkt aus AVR Studio 
heraus benutzen kann. Daher wäre diese Variante meine Wahl bei einem 
Parallelport-Programmer.

Aber wie gesagt in AVRDUDE ist das fast frei konfigurierbar, 
vorausgesetzt IN/OUT ist an den ausgewählten Pins möglich.

von holger (Gast)


Lesenswert?

>Dort war Anschlussbelegung am Druckerport wie folgt:
>         Druckerport
>Sck      Pin 1
>Mosi     Pin 2
>Miso     Pin 11
>Reset    Pin 16

Dann nimm die auch für den ATmega32.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

holger schrieb:

>>Dort war Anschlussbelegung am Druckerport wie folgt:

> Dann nimm die auch für den ATmega32.

Das ist im AVRDUDE übrigens der programmer namens "dapa" (also
»-c dapa«).

von Dietmar P. (dietmar2)


Lesenswert?

Hallo,

danke für die Antworten.

Habe mir das Ding zusammengebastelt mit der mir bekannten Pin-Belegung 
vom Butterfly und versucht den Atmega32 zu flashen.

Habe leider nur teilweise Erfolg.
Der Anschluss wird erkannt und die Pin-Belgung wird, wie von mir 
geschaltet, ausgegeben:

   VCC     = 3
   BUFF    =  (not used)
   RESET   = 16
   SCK     = 1
   MOSI    = 2
   MISO    = 11

Danach erfolgt ein "Reading" mit Ergebnis 100%, auch OK.

Leider erhalte ich dann die Meldung:

  avrdude: Device signature = 0xffffff
  avrdude: Yikes!  Invalid device signature.
           Double check connections and try again, or use -F to override
           this check.
  avrdude done.  Thank you.
  make: *** [flash] Fehler 1

Damit ist der µC nicht geflasht. Was kann ich da tun?

Gruß
Dietmar

von Dietmar P. (dietmar2)


Lesenswert?

Hurra Leute ich habs's!!

Zur Sicherheit hatte ich 1K Ohm Widerstände in die Leitung gelötet.
Habe in der Leitung SCK ihn herausgenommen und alles ist paletti.

Danke nochmals für Eure Tipps.

Werde mir doch mal ein ordentliches Dongle kaufen.

Gruß
Dietmar

von Zaphod B. (brezel) Benutzerseite


Lesenswert?

ich hab meinen ersten und einzigen ISP-Dongle auch selbst gelötet, und 
dabei den 74HC244 zur Signalverstärkung benutzt. Würde ich dir auch 
empfehlen, einfach bei der nächsten Runde einen mitbestellen und 
einbauen. Sonst könnte es jetzt Vorkommen, das dein SCK-Pin vom Atmega 
aufgrund eines Schaltfehler (oder was auch immer) mit GND oder VCC zu 
niedrigohmig verbunden ist und den Port durchhaut. Der 74HC244 kann auf 
einem Pin über 30mA durchlassen, und selbst wenns den mal verbrät, 
besser als den Port...

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.