mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega168 über AT91 C-Programm programmieren


Autor: Christian V. (caegger)
Datum:

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

Autor: Jonas Mitschang (jonen)
Datum:

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

Autor: Christian V. (caegger)
Datum:

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

Autor: Jonas Mitschang (jonen)
Datum:

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

Autor: Christian V. (caegger)
Datum:

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

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian V. wrote:

> ...Linux...

Was spricht da gegen avrdude et al.? Gibt's doch schon alles.

Autor: Christian V. (caegger)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

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

Autor: Ulrich P. (uprinz)
Datum:

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

Autor: Christian V. (caegger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Infos. Werde versuchen Bootloader umzuschreiben. Hat 
jemand vielleicht Erfahrung mit den chip45 Bootloader?

gruß

Christian

Autor: Ulrich P. (uprinz)
Datum:

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

Autor: Christian V. (caegger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo bei Atmel direkt, oder auch bei den Distributoren?

Gruß

Christian

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.