Forum: Mikrocontroller und Digitale Elektronik ATmega direkt über USB und FT232R mit avrdude ISP programmieren


von Alexander S. (alesi)


Lesenswert?

Hallo,

kann ich z.B. den ATmega32 auf dem ES-M32 [1] von AK MODUL-BUS
direkt über USB und dem FT232R [2] auf dem Board [3] (unter Linux)
mit avrdude [4] ISP programmieren? D.h. ohne weiteren Programmer,
wie z.B. Atmel ISP mk2, und ohne Bootloader (ala Arduino) auf dem
ATmega32.

Soweit ich es verstehe, müssten die Pins 2,4,6,8 von JP3 in [3]
mit RESET, PB7 (SCK), PB6 (MISO) und PB5 (MOSI) vom ATmega32
verbunden werden und avrdude mit der Option -c  ft232r (FT232R
Synchronous BitBang) aufgerufen werden.

Außer das BitBanging langsam ist, sollte das doch funktionieren,
oder nicht.

AK MODUL-BUS bietet für Windows dafür das Programm ESM32.exe an.

[1] http://www.elexs.de/ESM32.htm
[2] http://www.ftdichip.com/Products/ICs/FT232R.htm
[3] http://www.elexs.de/ESM32Schaltbild.jpg
[4] 
http://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das sollte tatsächlich gehen. Erstaunlich, warum sich das noch nicht 
durchgesetzt hat, das wäre --vom Parallelportgefrickel abgesehen-- der 
einzige (?) ISP-Programmieradapter, der keinen programmierten µC 
erfordert und somit das Henne-Ei-Problem umgeht.

Hier beschreibt jemand das Vorgehen:
http://make.kosakalab.com/arduino/bootloader/index_en.html

Viel Erfolg.

von USBProgga (Gast)


Lesenswert?

Alexander S. schrieb:
> Außer das BitBanging langsam ist, sollte das doch funktionieren,
> oder nicht.

Es ist wirklich langsam.

Wenn man pro USB-Zyklus (1ms) eine Flanke erzeugt (erzeugen kann,
und das wechselweise für Daten und Clock) dann dauert das für das
Programmieren eines Chips eine halbe Ewigkeit.

Naja, für Notfälle mag das akzeptabel sein aber im normalen
Entwicklungsablauf wünscht man sich was anderes.

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


Lesenswert?

Rufus Τ. F. schrieb:
> Das sollte tatsächlich gehen. Erstaunlich, warum sich das noch nicht
> durchgesetzt hat, das wäre --vom Parallelportgefrickel abgesehen-- der
> einzige (?) ISP-Programmieradapter, der keinen programmierten µC
> erfordert und somit das Henne-Ei-Problem umgeht.

Das ist bei weitem nicht die einzige Variante.
Und auch nicht die schrägste.

USB-Hub als AVR-Programmer: https://www.pjrc.com/hub_isp/

Oder mit den Keyboard-LED: 
https://hackaday.com/2012/11/26/usb-keyboard-becomes-an-avr-programmer/

von Hochleistungsprogrammierer (Gast)


Lesenswert?

Axel S. schrieb:
> USB-Hub als AVR-Programmer: https://www.pjrc.com/hub_isp/

Ja, ist nicht so weit weg von der Zwei-Schalter-Methode:
Einen für Clock und einen für Daten.

Ja, gut, für ISP braucht man vielleicht noch einen ....
... und eine LED zum Anzeigen der MISO-Daten beim
Verifizieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

USBProgga schrieb:
> Es ist wirklich langsam.

Wenn man darauf beharrt, den nicht für Bitbanging geeigneten FT232R zu 
verwenden.

Alternativ könnte man die MPSSE des FT2232 verwenden, wie es auch in den 
OpenOCD-JTAG-Adaptern für ARMe gemacht wird.

Damit sollte das "Henne-Ei"-Problem der AVR-ISP-Selbstbau-Adapter nach 
wie vor umgangen werden können, aber die erzielbare Geschwindigkeit doch 
eher brauchbar werden.

Oder hab' ich da irgendwas übersehen?

von USBProgga (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> den nicht für Bitbanging geeigneten FT232R zu verwenden.

Sorry, aber wenn man mit dem FT232R Bitbanging machen kann
dann ist er dafür auch geeignet.

Nur wird bei dieser Chip-Familie eben gerne unterschlagen
(sowohl seitens der Erfinder/Hersteller der Chips als auch
seitens der Befürworter allgemein) welche "Vorteile" man
sich da über USB einhandelt.

von USBProgga (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Oder hab' ich da irgendwas übersehen?

Ja. Dass du auf deinem geliebten FT2232 herumreitest.

Dass es nicht sinnvoll ist sich einen FT2232 oder ähnliches
zu holen, damit einen Programmieradapter aufzubauen und
einen ATMEL AVR zu programmieren um das Henne-Ei-Problem zu
umgehen. Dieser Weg ist nämlich wesentlich steiniger als sich
schnell mal bei ebay einen Programmieradapter zu kaufen
(dauert im schlimmsten Fall wohl drei Tage). Billiger ist
es auch noch.

Selbst wenn man den Programmieradapter mit FT2232 endlich
hat (dessen Definition noch aussteht) muss man immer noch eine
"kleine" Software schreiben um das Gerät zu bedienen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

USBProgga schrieb:
> Sorry, aber wenn man mit dem FT232R Bitbanging machen kann
> dann ist er dafür auch geeignet.

Hast Du auch gelesen, was andere schreiben?

> Ja. Dass du auf deinem geliebten FT2232 herumreitest.
>
> Dass es nicht sinnvoll ist sich einen FT2232 oder ähnliches
> zu holen, damit einen Programmieradapter aufzubauen und

Oh, Du bist ein Held. Ganz große Klasse, ganz großes Kino.

von Jim M. (turboj)


Lesenswert?

USBProgga schrieb:
> Selbst wenn man den Programmieradapter mit FT2232 endlich
> hat (dessen Definition noch aussteht) muss man immer noch eine
> "kleine" Software schreiben um das Gerät zu bedienen.

Nö. Das kann AVRDude seit Jahren, habe hier einen JTAGKey2 mit FT2232H 
rumfliegen und damit AVRs betankt.

FT232R kann IIRC Bitbang (schneller als 1mal pro ms, das ist hier ein 
Protokoll) aber kein MPSSE. Mit MPSSE würde man das SPI-ähnliche ISP 
relativ fix hinbekommen.

von Alexander S. (alesi)


Lesenswert?

Erstmal vielen Dank an alle für die Antworten.

Rufus Τ. F. schrieb:
> Hier beschreibt jemand das Vorgehen:
> http://make.kosakalab.com/arduino/bootloader/index_en.html

Danke für den Link, aber ich hoffe unter Linux geht das auch
direkt mit avrdude ohne irgend einen patch.

USBProgga schrieb:
> Selbst wenn man den Programmieradapter mit FT2232 endlich
> hat (dessen Definition noch aussteht) muss man immer noch eine
> "kleine" Software schreiben um das Gerät zu bedienen.

Eine Definition des Programmieradapters liefert doch der
Schaltplan zum ES-M32, siehe Link [3] im ersten Beitrag.
Die Software gibt es doch mit avrdude (und Option -c ft232r),
siehe Link [4] im ersten Beitrag.
Oder was meinst Du mit "Definition" und "Software"?

von Alexander S. (alesi)


Lesenswert?

Edit:
Habe gerade gesehen, dass USBProgga über den FT2232 geschrieben hat
und nicht den FT232R. Da müsste man noch Infos zur Hardware finden,
aber avrdude sollte den FT2232 mit
-c 2232HIO  FT2232H based generic programmer oder
-c avrftdi  FT2232D based generic programmer
ansteuern können.

von tommy_v (Gast)


Lesenswert?


von Alexander S. (alesi)


Lesenswert?

tommy_v schrieb:
> Hier im Forum unter Projekte & Code:
>
> Beitrag "AVR FTDI ISP-Prog (AVR-8 Programmersoftware für den FT232R)"

Danke für den Link.

Auf meiner Suche nach einer direkten Ansteuerung eines ATmegas
über USB und FT232R oder FT2232H, d.h. ohne ISP-Programmer wie
z.B. AVR ISP Mk2 und ohne Bootloader, und möglichst unter Linux,
bin ich neben
http://www.r-tron.de/uatmel.htm

noch auf folgende Seiten gestoßen:
http://wesche.bplaced.net/Homepage/Version_3/index.php?section=Android_FTDI_AVR_Programmer.html
http://wesche.bplaced.net/Homepage/Version_3/index.php?section=PC_Delphi_FT2232_AtmelISP.html

http://tenthousandfailures.com/blog/2014/2/16/ftdi-ft2232-mpsse-basics

Das ES-M32 von AK MODUL-BUS hat "nur" einen FT232R und ist nicht
gerade billig. Eine Alternative als "Programmer" wäre evtl. das
FT2232H Mini Module - USB Hi-Speed Evaluation Module
http://shop.clickandbuild.com/cnb/shop/ftdichip?productID=226&op=catalogue-product_info-null&prodCategoryID=317

von Stefan F. (Gast)


Lesenswert?

In der Zwischenzeit hätte ich mir längst einen gewöhnlichen ISP 
Programmieradapter gekauft. Dieser HickHack lohnt sich doch gar nicht.

> Erstaunlich, warum sich das noch nicht durchgesetzt hat

Auch die Programmierung über Kopfhörerbuchse hat sich nicht 
durchgesetzt. Dabei wäre das DIE Lösung für das Henne-Ei Problem bei 
selbst gebauten Programmieradaptern (wie z.B. dem USBASP). Mehr als ein 
Proof-of-Concept ist da leider nicht raus geworden - Schade.

von Alexander S. (alesi)


Lesenswert?

Stefan U. schrieb:
> In der Zwischenzeit hätte ich mir längst einen gewöhnlichen ISP
> Programmieradapter gekauft.

Ich habe bereits mehrere (von Atmel, ehajo, adafruit) und
damit kann man auch gut programmieren.
Aber mich interessiert auch, ob es evtl. auch ohne
programmierten u-Controller geht.

von Stefan F. (Gast)


Lesenswert?

Ja geht, aber mit vielen Nachteilen. Wer Geld für eine USB Buchse, ein 
USB Kabel und ein ISP-Kabel hat, sollte sich auch einen Mikrocontroller 
leisten können - also einen richtigen Programmieradapter. Wenigstens 
einen USBASP, wenn's schon billig sein soll.

von H2 O. (Gast)


Lesenswert?

Ich taue mal einen nicht allzu alten Thread wieder auf.

Hat das ganze von der Community hier schonmal jemand ausprobiert ob das 
funktioniert?
Der Link http://make.kosakalab.com/arduino/bootloader/index_en.html 
worin das ganze auf WinXP mit nem FT232RL gemacht wird ist ja schon 
relativ alt.

Und es wäre für mich imho interessant ob da jemand noch irgendwas zu 
sagen kann, Erfahrungen, Fehlschläge egal....finde es relativ 
Interessant das Thema

von Philipp (Gast)


Lesenswert?

Funktioniert, ist aber unglaublich langsam.
Nimm lieber einen FTDI mit MPSSE.
Damit und avrdude lässt sich ein AVR in null komma nix programmieren
und du brauchst dafür auch kein anderes Programmiergerät oder 
Bootloader.

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.