www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ISP-Mode Error beim Atmega32


Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum :),

ich habe ein kleines Problem was ich leider nicht alleine lösen kann.
Vielleicht hatte das ja schonmal jemand von euch und kann mir
weiterhelfen. Es geht um das Programmieren des Atmega32 der auf einer
Platine verlötet ist. Ich möchte ihn über ISP mittels AVRStudio
programmieren, was leider des öfteren fehlschlägt. Und genau da liegt
mein Problem. Mein AVRStudio gibt mir fast immer einen ISP Mode
Error(ich denke ihr wisst was ich meine oder?) aus, wenn ich ihn
programmieren will(manchmal hingegen klappt es). Unten im AVRISP
Fenster steht:
Warning:Flash byte address 0x0020 is 0x00(should be 0x0C)...Failed

Die ISP Frequenz ist auch um 1/4 kleiner als die Taktfrequenz des
Atmega32. Somit denke ich, dass ich alle Bedingungen für das ISP
erfüllt habe aber trotzdem will er nicht.

Kann mir jemand erklären woran das liegen könnte? Falls ihr nochmehr
Information benötigt kann ich diese gern bereitstellen.

Danke schonmal für eure Hilfe.

Gruß Marian

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

befinden sich andere SPI Teilnehmer auf den Leitungen?

Gruß,

Dirk

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja und zwar gibt es noch einen Beschleunigungssensor der über SPI
ausgelesen wird.

Könntest du mir erklären wie dieser ein Problem verursachen könnte?

Autor: Flash Gordon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist sichergesetllt, dass dieser deaktiviert ist wärend du den AVR
flash'st?

z.B. Reset an nCS des Sensors oder so...

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja direkt sichergestellt ist es nicht aber er müsste eigentlich
resetet sein, da ja der µC während des Programmierens über das ISP auf
Reset gezogen wird und somit der Beschleunigungssensor ja auch auf
Low(da am Pin des µC´s ja in diesem Moment ein Low-Zustand ist) gezogen
ist.

Schlecht erklärt aber ich denke ihr wisst wie ich es meine oder?

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso habe noch etwas vergessen. Ich weiß aber auch nicht ob das möglich
ist. Ich hatte nämlich eine Vermutung woran das liegen könnte. Auf
meiner Platine ist ein Quarz(7,3728 MHz) direkt neben dem ISP-Stecker.
Kann es sein, das dieser Quarz irgendwie die ISP-Frequenz stört und
somit dieses Problem verursacht?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Während des Reset (ISP) sind die AVR-Pins nicht auf Low gezogen, sondern
hochohmig. Manche Chips interpretieren das als H-Pegel. Den
Beschleunigungssensor (und sein Verhalten) kenne ich aber mangels
Bedarf (noch) nicht.

...

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm...also könnte mein Beschleunigungssensor das Problem sein. Aber wie
genau funktioniert das denn, das er mir beim Programmieren dazwischen
funkt und verhindert, dass ich den Flash meines µCs programmieren
kann?

Kann mir das mal jemand genau erklären?
Also meint ihr, das es genügen müsste, einfach den
Beschleunigungssensor mit auf Reset zu ziehen, wenn ich per ISP
programmieren möchte?

Danke und Gruß,

Marian

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MISO mittels Widerstand entkoppeln? Also ISP direkt an AVR, Sensor über
Widerstand. Dann kan Sensor nicht dazwischensabbeln weil AVR
"stärker" ist.

...

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also "einfach" einen Widerstand in Reihe schalten zwischen MISO des µC
und MISO des Sensors? Und wenn ja wie groß soll dieser sein? Und würde
der nun enstandene Pegel vom Sensor denn noch genügen um mit dem µC zu
kommunizieren?

Könnte ich auch den CSB-Pin meines Sensors an die Resetleitung des ISP
mit dranhängen? Das würde doch auch garantieren, dass mein Sensor
während des Programmierens deaktiviert ist oder?

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

du solltest an deinen Beschleunigungssensor ( an CS) einen Pull Up /
down anschliessen, damit dieser waehrend der Programmierung disabeld
ist.

Gruß,
Dirk

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok ich habe mich jetzt etwas schlau gemacht. Ich brauche ein Highpegel
am Sensor um ihn zu deaktivieren. Wie stelle ich das an? Habe Pull-Up
Widerstände gefunden aber dann ist ja CS immer auf High gezogen...wie
soll ich ihn dann vom µC aus auf Low ziehen um mit ihm zu reden? Kann
ich wirklich einfach einen 10kOhm Wiederstand parallel zwischen SS und
Vcc legen damit das funktioniert?

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,



            VCC
             |
             R
µC ----------|----- CS Sensor


zur Aktivierung des Sensors muss der µC ein LOW Pegel erzeugen.

Gruß,
Dirk

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest auch einen anderen Pin als /SS als ChipSelect benutzen...

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schön an alle...so dachte ich mir das jetzt auch, wollte nur
sicher gehen.

Gruß Marian

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.