www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR programmiert AVR, mega16 gibt keine antwort auf identify


Autor: Nik Bamert (nikbamert)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

es war leider etwas schwer einen möglichst aussagekräftigen Titel zu
finden, daher hier nochmal eine Beschreibung meines Problems:
Ich habe einen Atmega16 mit einem atmega168 verbunden (mosi/miso
gekreuzt) und möchte mit dem mega168 den atmega16 programieren.

Vorerst möchte ich nur ein IdentifyDevice durchführen, um zu sehen ob
die Verbindung überhaupt steht.

Ich glaube mein Problem liegt bei folgender Aussage aus dem Datenblatt:
"When writing serial data to the ATmega16, data is lcocked on the
rising edge of SCK. When reading data from the ATmega16, data is
clocked on the falling edge of SCK."

Je nachdem wie ich CPOL und CPHA setze, bekomme ich leider nur immer
entweder 0x00 oder 0xff zurück(ich hab schon alle möglichkeiten mit
CPOL und CPHA ausprobiert...) Die SPI Schnittstelle takte ich mit
128khz, der zu programmierende uC lauft mit 8Mhz, es sollte also genug
langsam sein .. (?)
Meinen Sourcecode habe ich einmal angehängt, ist noch recht
überschaubar, da ich erst eine nichtfunktionierende Identify Funktion
habe...

in der main.c sieht es so aus:
ISP_Start();
ISP_InitProg();
ISP_Identify(&buffer[0]);
ISP_Stop();

Ich wäre echt froh wenn mir jemand ein wenig weiterhelfen könnte damit
ich den Rest des Programms bald einmal funktionierend fertigstellen
kann.

Nik

Autor: tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"mosi = master out slave in" verbinde mosi mit mosi und miso mit
miso.
Es kann immer nur einen Master geben! Ansonstem kenne ich mich nicht
aus
mit SPI, aber soviel weiss ich.

Autor: Nik Bamert (nikbamert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das erschien mir zwar etwas merkwürdig, aber ich habs dennoch probiert,
nun bekomme ich einfach immer 0x1e,0x94,0x03,0xff zurück .. ich dachte
aber eher an etwas wie "m16" .. oder liege ich da falsch? Hab leider
gerade keinen anderen uC da, um zu testen ob der dieselbe Zeichenfolge
als antwort ausgibt...

Autor: tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na immerhin besser als gar nichts. Habe leider mein Breadboard nicht da,
sonst würde ich mich auch mal etwas mit spi beschäftigen. Das habe ich
nämlich noch nicht ausprobiert.

Autor: Christian Wolf (clupus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

du musst mal im Datenblatt schaun (bin mir nicht mehr sicher), aber
soweit ich mich noch errinnere, sendet der AVR einen speziellen Code;
das erste Zeichen gibt lediglich eine gültige Antwort an, das zweite
den Hersteller (Atmel) und das dritte den Chip.  Aber das sollte
irgendwo im Datenblatt beim "Programmieren" stehen.

MfG
Christian

Autor: Pit (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Nik,

das was du zurück bekommst IST die ID deines Atmega16. Als Anhang ein
Bildschirmabgriff den ich soeben gemacht habe. Dort kannst du die ID
eines Atmega16 sehen und die lautet : 0x1E 0x94 0x003 das andere ist
die ID meines JTAG MKII.
Ich hoffe das hilft dir weiter.

Pit

Autor: Nik Bamert (nikbamert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wow danke!!! Ja das hilft mir sogar seeehr weiter :) Ich dachte immer
das sei nur Müll den ich empfangen habe, da Bezichnungen wie "m16"
"m128" doch naheliegen würden, dachte ich zumindest ;-)
Merwürdigerweise antwortet mir der atmega immer mit diesen Signature
Bytes, gleichgültig ob CPOL und CPHA nun 1 oder 0 sind.

Nik

P.S. Im Datenblatt habe ich die Stelle mitlerweile auch gefunden, beim
atmega16 stehts auf seite 264 bei "Signature bytes"

Autor: Peter Z. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Nik,

vielleicht noch interessant...Wenn Du das AVR Studio installiert hast
findest Du unter folgendem Pfad sämtliche Einstellungen der Controller
zum proggen. Unter anderem auch die Signature Bytes. Zum anschaun
brauchst einen XML Viewer.

C:\Programme\Atmel\AVR Tools\Partdescriptionfiles

Gruß Peter

Autor: Nik Bamert (nikbamert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cool, danke! Schade nur, dass die Files jeweils sehr gross sind,
ansonsten könnte man ja über eine SD Karte und einen kleinen XML parser
auf dem Atmega nachdenken...So, dass das FirmwareUpdate für den
Programmer quasi aus diesen Files bestehen würde... träum :-)

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.