Serial Downloading

Gast #105613
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!
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.