Forum: Mikrocontroller und Digitale Elektronik Serial Downloading


von Gerald Gschwandegger (Gast)


Lesenswert?

Ich habe folgendes Problem: Meine Aufgabenstellung ist es, µC von Atmel
(ATmega48,8, ATTiny12,15,...) über die parallele Schnitstelle zu
programmieren. Das HEX und auch das EEP- File sind schon vorhanden. Ich
brauche eigentlich nur das HEX- File in das in C++ geschriebene Programm
einzulesen und danach übertragen.
Im Datenblatt gibt es einen Punkt "Serial Downloading"; mit diesem
Schema sollte dies realisiert werden. Jedoch verstehe ich den 4 Pkt.
nicht wirklich:

"The Flash is programmed one page at a time. The memory page is loaded
one
byte at a time by supplying the 6 LSB of the address and data together
with the
Load Program Memory Page instruction. To ensure correct loading of the
page,
the data low byte must be loaded before data high byte is applied for a
given
address. The Program Memory Page is stored by loading the Write
Program
Memory Page instruction with the 8 MSB of the address. If polling is
not used,
the user must wait at least tWD_FLASH before issuing the next page.
(See Table
130.) Accessing the serial programming interface before the Flash write
operation
completes can result in incorrect programming."

Hat jemand schon Erfahrung mit dem Programmieren über die Parallele
Schnitstelle?? Bzw. wie kann ich die den MISO und MOSI Pin dann vom µC
ansprechen? (verwendet wird die inpout32.dll)

Danke schon im voraus!

von thkais (Gast)


Lesenswert?

Möchtest Du es unbedingt selbst schreiben oder kannst Du auch eine
fertige Software verwenden? Letzteres gibt es zuhauf, z.B. Ponyprog auf
http://www.lancos.com

von Gerald Gschwandegger (Gast)


Lesenswert?

Ja ich muss das vom C++ aus heruas programmieren. Mit einem Programm
wäre das kein Problem.

von mthomas (Gast)


Lesenswert?

Man muss im Prinzip eine SPI-Schnittstelle zur Programmierung mittels
Software an den Port-Pins des "Druckeranschlusses" nachbilden ("bit
banging"). Am Einfachsten duerfte es sein, sich eine
STK200-kompatibles Dongle zu bauen (siehe dazu z.B. die von thkais
gennante Seite) oder zu kaufen und sich dann vom avrdude- oder
uisp-Quellcode inspirieren zu lassen. Dabei die Lizenzen der jeweiligen
Software beachten (GPL etc.)

Das Zitat aus dem Datenblatt erlaeutert, dass die Daten-Bytes/Woerter
fuer eine Seite des Flash-Speichers in einen Zwischenpuffer abgelegt
(Load Programm Memory Page) und dann durch eine Anweisung (Write
Programm Memory Page) durch den AVR aus dem Puffer in die Zielseite
geschrieben werden.

Falls es keine "Hausaufgabe" ist, koennte man auch einfach avrdude
ueber "system()" oder aehnliche Funktionen der W32-API mit den
passenden Parametern aufrufen und spart sich damit einiges an Arbeit.

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.