ATMEL ATmega Prozessor ID auslesen

Kann man bei den ATMEL ATmega Prozessoren die ID per Software auslesen damit man per Bootloader erkennen kann welcher Controller verbaut ist?

Gerald

Reply to
Gerald Oppen
Loading thread data ...

Am besten die Jungs von Schaeuble fragen, die sollten das aus dem FF beherrschen :-)

--
SCNR, Joerg

http://www.analogconsultants.com/
Reply to
Joerg

Gerade nochmal nachgesehen. Koennte sein, dass es hiermit geht:

formatting link

Braucht aber wohl .NET :-(

--
Gruesse, Joerg

http://www.analogconsultants.com/
Reply to
Joerg

Da der Bootloader eh' kaum so geschrieben werden kann, daß das Binary auf jedem Atmel läuft, muß er ohnehin unter Benutzung der jeweiligen maschinenspezifischen Header für jedes Zielsystem extra übersetzt werden.

Du brauchst also bloß eine Funktion im Bootloader vorsehen, die die ID an den Host meldet. Die IDs sind nämlich auch in diesen Headern deklariert.

Reply to
Heiko Nocon

Wenn die ID gleich dem "Prozessor Signature Byte" ist dann geht das auch mit der avrdude-gui.exe die beim AVR-GCC dabei ist...

Gruss, Artur

Reply to
Artur

Sorry, hatte Deine Frage falsch verstanden. Wie es aus dem Bootloader heraus funktioniert wei=DF ich leider nicht...

Gruss, Artur

Reply to
Artur

Ja, so sollte man es wohl machen. Ein Bootloader der alles und jedes kann wird nachher fuer kleine CPUs zu fett.

Es gibt aber ein paar AVRs die ihre Signature selbst lesen koennen (ATmega406 gehoert wohl dazu). Da muss man in SPMCSR ein paar Bits setzen und dann kann man mit LPM zugreifen.

Micha

--
> > Ich mag es immer noch nicht glauben.
> Glaube gehoert in die Kirche!
Stimmt und wir sind hier nicht in der Kirche.
                           Gesehen in defa
Reply to
Michael Baeuerle

Die Schnittstelle zwischen Bootloader und dem Host-Rechner über den das Update durchgeführt werden soll bleibt gleich. Es wäre daher eine elegante Lösung einfach als erstes vor einem Updatevorgang die ID zu übertragen ohne im Bootloader selbst noch mal beim compilieren in Host-lesbarer Form die Zielsystemdaten ablegen zu müssen.

Gerald

Reply to
Gerald Oppen

Wenn die Schnittstelle bisher keine Meldung der ID an den Host vorsah, dann kann sie natürlich nicht gleich bleiben, sondern muß um eben diese Funktionalität ergänzt werden.

Die Übertragung der ID müßte logisch zwischen dem Host-Discovery-Teil und dem eigentliche Update-Teil des bestehenden Protokolls plaziert werden.

Was stört dich daran?

Es ist nicht nur die einfachste und universellste Lösung, sondern obendrein bezüglich des Platzverbrauchs im PM die mit Abstand sparsamste.

Reply to
Heiko Nocon

Heiko Nocon schrieb:

Gelegentlich werden Geräte mal mit grösseren Controllern ausgestattet - je nach Verfügbarkeit. Es ist nicht auszuschliessen dass dann auch mal jemand den falschen Bootloader aufspielt, ohne dass man es sofort merkt. Das Auslesen der ID könnte diesen Fehler verhindern bzw. leicht erkennbar machen.

Gerald

Reply to
Gerald Oppen

Der würde dann aber mit einiger Wahrscheinlichkeit sowieso nicht funktionieren, könnte also auch die ID nicht melden. Trotzdem gebe ich dir Recht, weil ja auch der Fall eintreten kann, daß er zumindest teilweise funktioniert.

Allerdings besteht das Problem genauso, wenn die ID vom Bootloader aus der Hardware ausgelesen werden würde. Da es dafür keinen universellen Weg gibt, würde natürlich bei falschem Bootloader ebenfalls ein falsches Ergebnis geliefert werden.

Die Lösung des Problems ist absolut simpel: Man muß schlicht verhindern, daß ein falscher Bootloader aufgespielt wird.

Und netterweise ist DAS möglich, denn das erstmalige Flashen des Bootloaders muß ja über ISP, JTAG oder parallele Programmierung erfolgen. Und bei allen diesen Programmiermöglichkeiten besteht ein Zugriff auf die Hardware-ID. Man braucht also bloß der an dieser Stelle verwendeten Software beizubringen, zu welcher ID welcher Bootloader gehört und das Problem ist an der Wurzel gelöst.

Reply to
Heiko Nocon

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.