Hallo, ich möcht einen Atmega168 durch einen AT91SAM9261 programmieren. Die einfache SPI Kommunikation der beiden Einheiten funktioniert bereits einwandfrei, so daß ein Datenaustausch möglich ist. Auf dem AT91 läuft Linux, eine Steuerung der Atmega Reset Leitung ist ebenfalls per Treiber realisiert. Hat jemand vielleicht ein C/C++ Programm, welches diese oder ein ähnliche Aufgabe durchführt? Ziel ist es, den Atmega aus der laufenden Linux Applikation zu programmieren. Gruß Christian
Hallo, falls du auf die schnelle kein Programm für SPI findest könntest du den AVR auch über UART-Bootloader programmieren - das sollte ja schnell realisiert sein (ich schätze mal die serielle Verbindung besteht ohnehin schon). Gruß, Jonen Edit: Programm für SPI direkt habe ich keins aber ggf lässt sich das in den USBprog sourcen ausfindig machen
hallo, UART Schnittstelle wäre natürlich grundsätzlich auch möglich, würde aber eine Anpassung im Linux Kernel erfordern. Günstiger wäre es, falls ich eeprom und flash HEX Files via SPI Schnittstelle, Atmega in Programmierspannung, übertragen könnte. Gruß Christian
was meinst du mit anpassung im kernel? du willst doch nicht den bootloader im kernel implementieren? und UART des AT91SAM9261 wird im linux kernel vollkommen unterstützt. du kannst einfach im userspace (wie man es auch auf dem PC macht) ein programm starten, welches /dev/ttyS1 benutzt.
Hallo, da mir keine zusätzlichen PINs zur Verfügung stehen, müßte ich die PINs des AT91 auf UART umprogrammieren. Dies ist allerdings nicht zweckmäßig, da noch weitere Einheiten als Slave am Master (AT91) betrieben werden. Gruß Christian
Christian V. wrote:
> ...Linux...
Was spricht da gegen avrdude et al.? Gibt's doch schon alles.
Grundsätzlich nichts, und ich programmiere den Controller aktuell auch über avrdude. Allerdings benötige ich die Option der Programmierung über den AT91, da ich sonst zukünftlich keine physikalischen Kontakt zum Atmega besitze. Gruß christian
Christian V. wrote: > Grundsätzlich nichts, und ich programmiere den Controller aktuell auch > über avrdude. Allerdings benötige ich die Option der Programmierung über > den AT91, da ich sonst zukünftlich keine physikalischen Kontakt zum > Atmega besitze. Dann ist ein Bootloader umso mehr zu empfehlen. Es sollte kein großes Problem sein, nen UART-Bootloader auf SPI umzuschreiben. SPI-Programming birgt nämlich die Gefahr des versehentlichen Totfusens (Reset, Clock), wonach nur noch Auslöten angesagt ist. Peter
Das kann ich so bestätigen! Lass den AVR in den Bootloader springen und auf ein GO seitens des AT91 warten, welches Du ihm per SPI übermittelst. Dann startet er in die Hauptsoftware und mledet sich von da erneut, damit der AT91 weiß, dass es dem AVR gut geht. Verpass der Hauptsoftware eine Funktion, damit sie per SPI-Kommando in den Bootloader springt, oder steuere den AVR-Reset vom AT91 aus an, damit der wieder in den Bootloader Modus kommt. Dann Flashen und neu starten. Damit kannst Du auch dann den AVR wieder neu flashen, wenn der vorangegangene Versuch fehl geschlagen ist. Das Verfahren über den ISP Mode ist einfach zu gefährlich, weil man sich leicht die Fuses zerlegt und dann garnicht mehr mit dem AVR reden kann. Im schlimmsten Fall muss man also Löten. Gruß, Ulrich
Vielen Dank für die Infos. Werde versuchen Bootloader umzuschreiben. Hat jemand vielleicht Erfahrung mit den chip45 Bootloader? gruß Christian
Hi! Noch ein Tip... Du kannst Dich ( als Firma) übrigens an ATMEL wenden. Gegen eine NDA bekommst Du deren Bootloader im Quelltext und kannst dann nicht nur selbigen auf Deine Software anpassen, sondern auch deren FLIP-Tool einsetzen. Kommt halt darauf an, was Du machen willst und wie kritisch ein schneller Fertigungsprozess ist. Das gilt auch für deren USB-Bootloader Gruß, Ulrich
Hallo bei Atmel direkt, oder auch bei den Distributoren? Gruß Christian
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.