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!
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
Ja ich muss das vom C++ aus heruas programmieren. Mit einem Programm wäre das kein Problem.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.