AVR MCU Signature abfragen

Gast #4539739
Lesenswert?
• ▲
▼
Hallo,

ich würde gerne die Signature des AVR MCU auslesen (also vom MCU) und 
von diesem über Beispielsweise USART versenden. Gibt es da eine 
Möglichkeit diese herauszufinden? Wenn ja, wie :) ? Hab hier und bei 
google noch nichts finden können... was mich etwas stuzig macht...

Schöne Grüße
Gast #4539769
Lesenswert?
• ▲
▼
Zitat aus dem datasheet des ATMEGA8: (beispielhaft, Deinen controller 
hast Du nicht genannt)

"Signature Bytes All Atmel microcontrollers have a 3-byte signature code 
which identifies the device. This code
can be read in both Serial and Parallel mode, also when the device is 
locked. The three bytes
reside in a separate address space.
For the ATmega8 the signature bytes are:
1. 0x000: 0x1E (indicates manufactured by Atmel)
2. 0x001: 0x93 (indicates 8KB Flash memory)
3. 0x002: 0x07 (indicates ATmega8 device)"

Dem und dem weiteren Text inkl. Beschreibung des Lesen und den 
Zugriffsdiagrammen würde ich entnehmen, dass die Signatur nur von außen 
zu lesen ist, der Chip selbst kann das nicht.

Korrigiert mich, wenn ich falsch liege.
Gast #4539816
Lesenswert?
• ▲
▼
google schrieb:

> Dem und dem weiteren Text inkl. Beschreibung des Lesen und den
> Zugriffsdiagrammen würde ich entnehmen, dass die Signatur nur von außen
> zu lesen ist, der Chip selbst kann das nicht.
>
> Korrigiert mich, wenn ich falsch liege.

Du liegst falsch. Zumindest bei den meisten neueren AVRs kann man die 
Signaturbytes vom "Programm" aus lesen (eigentlich: vom Bootloader).

Gelesen wird ähnlich wie Fuse- und Lockbytes via LPM-Instruktion mit 
vorheriger Zuweisung des zu Lesenden Zeugs an SPMCSR. Ein spezielles 
Timing ist dabei einzuhalten.

Beipiel für Atmega1284P:

.INCLUDE "m1284pdef.inc"
  ldi ZH,0
  ldi R18,(1<<SIGRD)|(1<<SPMEN)
  ldi ZL,0
  out SPMCSR,R18
  lpm R16,Z
  ldi ZL,2
  out SPMCSR,R18
  lpm R17,Z
  ldi ZL,4
  out SPMCSR,R18
  lpm R18,Z


Danach liegen in R16::R18 die drei Signaturbytes.
Gast #4539842
Lesenswert?
• ▲
▼
Ok, danke für die Korrektur, beim 1284P steht es auch im datasheet:

"24.8.10 Reading the Signature Row from Software
To read the Signature Row from software, load the Z-pointer with the 
signature byte address given in Table 24-5 on page 285 and set the SIGRD 
and SPMEN bits in SPMCSR.

..."

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.