Atmega168, ID lesen

OP #787654
Lesenswert?
• ▲
▼
Hallo,

ich möchte gerne die Device ID beim Atmega 168 im Programmverlauf
auslesen. Gemäß Datenblatt ist das allerdings nur im Parallel bzw.
Seriell Mode möglich.
Kennt jemand eine Möglichkeit dies im C oder Assembler Programm
auszuführen?
uint8_t *avr_id = (*unit8_t) 0x00 ... war leider nicht erfolgreich.

Gruß

Christian
OP #788063
Lesenswert?
• ▲
▼
Ziel ist es, den atmega168 von einem at91 via SPI als slave 
anzusprechen. Wobei wahlweise am SPI Bus des AT91 auch andere Geräte 
hängen können. Meinen Software, auf dem AT91, muß prüfen welches Device 
sich am SPI Bus (fester CS) befindet und entprechend reagieren. Zur 
Erkennung der Gerätes möchte ich dessen ID auslesen, wie es z.B. bei A/D 
Wandler möglich ist.
Moderator Persönliche Seite #788104
Lesenswert?
• ▲
▼
Du müsstest den AVR zu diesem Zweck praktisch komplett außer Betrieb
nehmen, da das Auslesen der Fuses nur im Programmiermodus (der einen
Hardware-Reset impliziert) möglich ist.  Ich würde das an deiner
Stelle höchstens auf diese Weise tun, wenn 1.) der Reset des AVR
nicht stört und 2.) du die ISP-Funktionalität ohnehin implementieren
musst (weil z. B. der AVR damit auch Firmwareupgrades bekommen können
soll).

Ansonsten stimme ich Jörg W. zu.  Ferner solltest du dir darüber im
Klaren sein, dass SPI gegen einen AVR als Slave nicht sonderlich
glücklich ist: SPI ist letztlich ein Schieberegister und als solches
am besten in Hardware abbildbar.  Bei einer Softwareimplementierung
muss der Master sehr viel Geduld mitbringen, damit der Slave die
nötige Zeit bekommt, die Daten bereit zu stellen.  Anders als z. B.
I²C besitzt der SPI-Slave ja keinerlei Möglichkeit, den Master zu
informieren, ob er mit seiner internen Verarbeitung bereits fertig
ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren