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


von Marian (Gast)


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

von Dirk (Gast)


Lesenswert?

Hi,

befinden sich andere SPI Teilnehmer auf den Leitungen?

Gruß,

Dirk

von Marian (Gast)


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?

von Flash Gordon (Gast)


Lesenswert?

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

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

von Marian (Gast)


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?

von Marian (Gast)


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?

von Hannes L. (hannes)


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.

...

von Marian (Gast)


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

von Hannes L. (hannes)


Lesenswert?

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

...

von Marian (Gast)


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?

von Dirk (Gast)


Lesenswert?

Hi,

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

Gruß,
Dirk

von Marian (Gast)


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?

von Dirk (Gast)


Lesenswert?

Hi,



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


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

Gruß,
Dirk

von Rahul (Gast)


Lesenswert?

Du könntest auch einen anderen Pin als /SS als ChipSelect benutzen...

von Marian (Gast)


Lesenswert?

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

Gruß Marian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.