mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Serial Downloading


Autor: Gerald Gschwandegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gerald Gschwandegger (Gast)
Datum:

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

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.