Forum: Mikrocontroller und Digitale Elektronik ATTINY2313 und ATMEGA8 nach flash ohne funktion


von Daniel S. (danielsun)


Lesenswert?

Hallo zusammen

Habe vor kurzem erst mit dem Programmieren angefangen und stehe nun vor 
einem kleinem Problem.

Habe eigentlich ein Projekt mit einem Atmega32 jedoch habe ich 
ausversehen die Fusebits auf Ext. Clock gestellt und hatte keinen 
Zugriff mehr drauf (flashen/löschen/Fusebits).

Habe als ganz artiger Forumnutzer die Suche benutz und gelesen das ich 
einen anderen Prozessor nehmen könnte um eine ext. Clock zu bauen und 
ihn an XTAL1 zu verbinden und ihn wieder richtig einzustellen.

Also gesagt getan und habe kurzerhand dieses Programm geschrieben:

#include <avr/io.h>
int main(void) {

        DDRD = 0xff;
  while(1)
  {
                PORTD = 0xff;
                PORTD = 0x00;
  }
        return (0);
}


Nunja was soll ich sagen geflasht hab ich ihn aber verifzieren ging 
nicht mehr und ansprechen kann ich ihn auch nicht mehr!!!
Erst war der Atmega8 in diesem Zustand und dann der ATTINY2313.
So jetzt sind mir die Prozessoren ausgegangen und die Ideen auch! :-(
Was hab ich falsch gemacht?

Wäre net wenn mir jemand helfen kann.

Morgen sollte ich wieder neue ATMEGA's bekommen dann hab ich wieder 
welche zum probieren :-) Auf das se ganz bleiben.

Das mit dem ATMEGA32 und den ext. clock sollte ich hinbekommen aber 
warum gehen die anderen beiden nicht mehr das geht mir nicht ganz in den 
Kopf!!!

Eigentlich wird ja nur am PORTD alle Bit's als Ausgänge definiert und 
dann abwechselnd erst ein und dann ausgeschaltet. Komisch.

Noch eine Info habe die 2 an einem Pollin-Board angeschlossen und 
geflasht gehabt hat bis jetzt eigentlich immer geklappt!!!

Ich sag schon mal danke und noch an alle tolle Site geniale Projekte und 
klasse Hilfe der Mitglieder.

Gruß und Danke
Daniel Sun

von pillepalle (Gast)


Lesenswert?

moin

hier auf der Seite gibts nen tolles tutorial - oben links unter AVR....

aber wieso return (0); - main is doch (void)

und ohne ein bis 2 'nop' dazwischen gehts halt ein bissel zu schnell -
oder include noch die delay.h und mach ein wait 1 dazwischen


hf

von Matthias D. (marvin42)


Lesenswert?

Hallo

mit welcher HW/SW Umgebung arbeitest du denn ?

Ich verwende AVRstudio und einen AVRISP mkII - und hatte neulich 
dasselbe Problem mit einem ATmega8. Nachdem ich (dann aus Verzweiflung) 
im Studio aus dem Menü "Tools" mal "AVRISP mkII upgrade" ausprobiert 
habe, lief er wieder und seitdem ohne Probleme.

Ich vermute das ich ungültige Fuses programmiert hatte.

von Daniel S. (danielsun)


Lesenswert?

Hallo

danke für die Antwort ob return (0) oder nicht macht doch keinen 
unterschied oder?
Erreiche return (0) ja eh nie!

Das es ohne nop oder delay zu schnell ist verstehe ich nicht ganz will 
ja keinen LED Blinken sehen sondern nur den ATMEGA32 antakten. Aber 
selbst wenn es zu schnell wäre müsste ich ihn doch trotzdem flashen 
können oder zumindest löschen?

Das tut von der seite habe ich fasst durch.

Gruß
Daniel

von Daniel S. (danielsun)


Lesenswert?

Hallo Matthias

verwende auch AVR Studio verwende aber keinen mkII.

Verwende den ziemlich einfachen seriellen Programmer des Pollinboards.

Habe aber bereits einen USBprog bestellt.

Gruß
Daniel

von Michael H* (Gast)


Lesenswert?

pillepalle wrote:
> hier auf der Seite gibts nen tolles tutorial - oben links unter AVR....
hmm. ja schon... aber wozu der hinweis hier?

> aber wieso return (0); - main is doch (void)
darüber denken wir nochmal ganz genau nach =)
@daniel: kannst du ignorieren.

> und ohne ein bis 2 'nop' dazwischen gehts halt ein bissel zu schnell -
aber bitte nicht nur dazwischen, sondern davor und dahinter. der 
freundlichkeit halber. aber es geht auch ohne.
> oder include noch die delay.h und mach ein wait 1 dazwischen
_delay_us(10);
gääähn; ^^

@jürgen: wie sieht denn deine beschaltung aus? wie schnell ist dein isp 
zum programmieren?

von Daniel S. (danielsun)


Lesenswert?

Aber warum die Controller nicht mehr ansprechbar sind hab ich jetzt
immernoch nicht kapiert

Jemand noch ne Idee?

Hallo Micheal

@juergen????
du meinst wohl matthias oder? :-)

Gruß und danke
Daniel

von Michael H* (Gast)


Lesenswert?

lol, ja sorry, ich mein natürlich dich. war gestern nimmer ganz fit ^^

von Hmm... (Gast)


Lesenswert?

> > und ohne ein bis 2 'nop' dazwischen gehts halt ein bissel zu schnell -
> aber bitte nicht nur dazwischen, sondern davor und dahinter. der
> freundlichkeit halber. aber es geht auch ohne.

Wirklich auch davor und dahinter ein nop? Zum Glück sind die AVRs nicht 
sooo mäkelig was das Tastverhältnis des Taktes angeht. Je näher man am 
50:50 ist, desto besser aber trotzdem ;)

von Daniel S. (danielsun)


Lesenswert?

Hallo Michael

hab ich mir schon gedacht was meinst du eigentlich geschwindigkeit der
Seriellen Schnitstelle wo der Programmer dranhängt?

Angeschlossen und geflasht hab ich es über das Evaluationboard von 
Pollin mit dem einfachen Seriellen Flasher der onboard ist.

Gruß
Daniel

von Michael H* (Gast)


Lesenswert?

wenn du den avr mit dem takt bla versorgst, muss die clk leitung des isp 
langsamer als 1/4*bla laufen. sonst kommt der avr nimmer mit.

das beantwortet aber immer noch nicht, warum deine avrs nach dem flashen 
gar nichts mehr sagen. sry...

von Daniel S. (danielsun)


Lesenswert?

Hallo Michael

ich verwende den internen Takt 1 MHz.

Die serielle Schnittstelle ist auf 57600 eingestellt hab aber auch 
andere geschwindigkeiten getest ohne Erfolg.

Hast doch die Geschwindigkeit der seriellen Schnittstelle gemeint oder?

Zum flashen verwende ich Ponnyprog da kann ich die Geschwindigkeit ja 
soviel ich gesehen habe nicht ändern.

Gruß
Daniel

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich habe auch so ein Pollin-Board und hatte derartige Probleme auch 
schon mal.
Bei mir hat es meist geholfen, den RESET-Knopf während des 
Programmierens gedrückt zu halten. Ich verwende auerdem nicht Ponyprog, 
sondern avrdude. Wäre vielleicht auch noch einen Versuch wert.
Die Geschwindigkeit der seriellen Schnittstelle zu ändern hilft gar nix, 
weil das Pollin-Board die Datenübertragung(RxD und TxD) gar nicht nutzt, 
sondern nur die Statusleitungen (Bit-Banging). Du kannst höchstens 
avrdude umprogrammieren und da Wartezeiten für die Übertragung einbauen 
(habe ich auch schon mal gemacht, weil ich einen ATTiny mal auf 16384Hz 
Takt gestellt habe; dafür war selbst der lahme Bit-Banging-Programmer 
noch zu schnell...)

Noch ein Tipp: Bau oder kauf dir mal einen vernünftigen Programmer. Den 
kann man auch einfach am ISP-Stecker des Pollin-Boards aufstecken. Wenn 
dumal größere Projekte machst, die den Flash eines Mega32 auch nur 
ansatzweise ausnutzen, wirst du sowieso einen anderen Programmer 
brauchen, es sei denn du  willst für Write + Verify 5 Minuten 
einplanen...
Ich habe mir vor kurzem usbasp gebaut und bin damit recht zufrieden.

von Daniel S. (danielsun)


Lesenswert?

Hallo Markus

danke werde es heut abend mal testen.

Das mit dem Programmer bin ich schon angegangen.

Habe mir hier im Shop usbprog V3.0 bestellt sollte diese Woche 
hoffentlich auch noch kommen.

Gruß
Daniel

von Karl H. (kbuchegg)


Lesenswert?

Daniel Sun wrote:

> Zum flashen verwende ich Ponnyprog da kann ich die Geschwindigkeit ja
> soviel ich gesehen habe nicht ändern.

Doch, kann man.
Aber nicht in der Oberfläche.
Ponnyprog macht sich selbst ein Konfigurationsfile. Da drinn gibt es 
einen Eintrag, der die Programmiergeschwindigkeit regelt. Zwar nur in 
ein paar Stufne (aka: langsam, schnell, ultra-schnell), aber immerhin.

Versuch wäre es wert.

(Wenn ich blos noch wüsste, wie das Konfig-File bzw. der Eintrag dort 
heisst. Ist ein ganz normales Textfile)

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.