Autor |
ISP-Adapter für RS232 ohne MAX232? |
|
|
|
|
BID = 929234
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
|
Hallo zusammen,
ich möchte meinen ersten ISP-Adapter zum Programmieren von Mikrocontrollern zusammenlöten.
Dazu habe ich folgende Seite gefunden:
http://spurtikus.de/basteln/avr-020-hardware.html
Nun ist es aber doch so, dass mein COM-Port mit -12V und +12V arbeitet, der Mikrocontroller jedoch mit 0V und +5V programmiert wird - korrekt?
Sehe ich es richtig, dass ich eigentlich mit einem MAX232 arbeiten müsste, in dem Adapter hier mit Z-Dioden die +12V auf +5,1V "runtergerissen" werden? Kann ich dies als zuverlässig ansehen oder sollte ich lieber mit IC arbeiten?
Danke und Gruß
[ Diese Nachricht wurde geändert von: Maik87 am 19 Jun 2014 20:44 ] |
|
BID = 929235
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Zitat :
| Nun ist es aber doch so, dass mein COM-Port mit -12V und +12V arbeitet, der Mikrocontroller jedoch mit 0V und +5V programmiert wird - korrekt? | Kommt darauf an.
Manche µC benötigen eine hohe Spannung, z.B. 12V, um den Programmiermodus freizuschalten.
|
|
BID = 929239
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
Ich habe den ATMEGA 16A-PU hier.
Ich lese nichts von einer abweichenden Programmierspannung im Datenblatt - oder bin ich blind?
Angenommen es wäre ein 5V-Kandidat. Deute ich den Schaltplan richtig mit den Z-Dioden? Ist das so ausreichend oder wäre ein MAX232 sicherer?
|
BID = 929240
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Ich lese nichts von einer abweichenden Programmierspannung im Datenblatt - oder bin ich blind? |
Möglich.
Zitat :
| 26.7 Parallel Programming
26.7.1 Enter Programming Mode
The following algorithm puts the device in Parallel Programming mode:
1. Apply 4.5 - 5.5V between VCC and GND, and wait at least 100 μs.
2. Set RESET to “0” and toggle XTAL1 at least 6 times
3. Set the Prog_enable pins listed in Table 26-8 on page 268 to “0000” and wait at least
100 ns.
4. Apply 11.5 - 12.5V to RESET. Any activity on Prog_enable pins within 100 ns after
+12V has been applied to RESET, will cause the device to fail entering Programming
mode. |
Es gibt auch andere Verfahren solche Chips zu programmieren, die ohne die Programmierspannung auskommen, aber gelegentlich haben Leute dabei ihren den Prozessor verloren, weil sie den Pin umgewidmet haben.
Ich weiß auch nicht, ob dieser Primitiv-Adapter überhaupt für den Mega16A geeignet ist.
|
BID = 929241
clembra Inventar
Beiträge: 5404 Wohnort: Weeze / Niederrhein
|
Der Adapter dürfte für alle normalen Atmel AVR geeignet sein. Problematischer wird die PC-Seite sein. Mit USB-Adaptern dürfte das wohl nichts, ebenso wie mit den meisten anderen ISP-Programmierern für den COM-Port ohne eigenen Prozessor.
Halb-OT:
Wenn man mit einem solchen einfachen Adapter an den Fuse-Bits arbeitet und dabei den Reset-Pin zu einem normalen I/O-Pin macht bekommt man das über den gleichen Weg nicht wieder rückgängig gemacht. Dazu bräuchte es eine Möglichkeit der 12V-Programmierung, wie es z.B. mit dem STK500 möglich wäre. Die ISP-Adapter können das nicht, unabhängig ob PC-seitig ein Com, LPT oder USB-Anschluss genutzt wird.
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 929242
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
Zitat :
clembra hat am 19 Jun 2014 21:54 geschrieben :
|
Der Adapter dürfte für alle normalen Atmel AVR geeignet sein.
|
Zitat :
|
Problematischer wird die PC-Seite sein. Mit USB-Adaptern dürfte das wohl nichts, ebenso wie mit den meisten anderen ISP-Programmierern für den COM-Port ohne eigenen Prozessor.
|
Wie du meinen?
Einen USB-Adapter nutze ich nicht - der PC hat noch einen echten COM-Port.
Wieso muss/sollte der Adapter einen eigenen Prozessor besitzen, um mit dem PC kompatibel zu sein?
|
BID = 929248
clembra Inventar
Beiträge: 5404 Wohnort: Weeze / Niederrhein
|
Mit der Satzstellung Yoda Konkurrenz ich mach.
Wenn ein echter Com-Port vorhanden ist funktionieren auch die einfachen Adapter. Gemeint war, dass diese einfachen Adapter normalerweise aber nicht nach USB-COM-Adaptern funktionieren. In dem Fall bräuchte es einen Controller, der von "echtem" RS232 auf SPI/ISP übersetzt. Mit echten Com-Ports braucht es den nicht.
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 929249
wulf Schreibmaschine
Beiträge: 2246 Wohnort: Bozen
|
USB-RS232 Adapter können prinzipbedingt das sogenannte Bit-Banging nicht. Aus diesem Grund braucht es im Programmierer einen µC der das genaue Timing übernimmt.
USB (Low und Full-Speed) kann maximal ein mal pro Millisekunde aktualisiert werden. Das reicht für die Kontrolle einzelner Bits nicht bzw. damit würde der Brennvorgang des µC unerträglich lange dauern.
Beste Grüße
Edit: Zu Langsam.
[ Diese Nachricht wurde geändert von: wulf am 19 Jun 2014 22:50 ]
|
BID = 929269
Brizz Stammposter
Beiträge: 386 Wohnort: Rheine
|
Hallo Maik87
Die gezeichnete Schaltung wird mit einer UART nicht funktionieren, weil an einer V24 Schnittstelle +12V einer logischen 0 und -12V einer logischen 1 entspricht.
Das heißt, bei -12V muss die Schaltung +5V am Pin der CPU anlegen, bei +12V muss sie 0V anlegen.
[ Diese Nachricht wurde geändert von: Brizz am 20 Jun 2014 11:00 ]
|
BID = 929353
clembra Inventar
Beiträge: 5404 Wohnort: Weeze / Niederrhein
|
Der TX-Anschluss wird durch den Transistor invertiert, der Rest per Programmiersoftware im PC. Das ist kein Problem.
Wobei mir ehrlich gesagt ein Pull-Up am Kollektor fehlen würde, auch wenn viele AVR den intern haben. Dazu kommt dass die komplette Pin-Belegung des RS232 falsch ist, die sieht aus wie an einem DSUB25. (Nur Beschriftung, Schaltung ist ok) Beim DSUB9 ist Rx auf der unbelegten 2, 3 Tx, RTS/CTS liegt auf 7/8 und 5 ist Gnd.
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 929409
Brizz Stammposter
Beiträge: 386 Wohnort: Rheine
|
Wenn eine UART invertierte Daten erhält, wird sie nur Frame-Errors und Frame-Error-Interrupts erzeugen.
|
BID = 929423
clembra Inventar
Beiträge: 5404 Wohnort: Weeze / Niederrhein
|
Die Rx-Leitung wird bei diesem Adapter gar nicht verwendet, daher besteht die Gefahr nicht. Die Kommunikation verläuft (zumindest eingehend?) ausschließlich über die Handshake-Leitungen, und da die ohnehin nur eine 1 oder 0 ausgeben kann man das per Software wieder gerade rücken.
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 931806
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
So Leute, kurze Rückmeldung:
Ein Fehler in der Zielschaltung sowie ein Bedienfehler in der Programmiersoftware hätten mich zwar fast zur Verzweifelung getrieben, aber es läuft!!
Ich konnte mit dem Adapter problemlos mit PonyProg2000 einen Atmega8 programmieren. Das ganze unter Win7 64bit.
|