www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90S2313 kann nicht programmiert werden


Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe ein STK500 seit kurzem gekauft und habe einen AT90S2313
eingesetzt. Irgendwie habe ich zuviel rumprobiert und kann jetzt im ISP
Modus nicht mehr programmieren. Ich habe die Fuses gesetzt und kann
nichts mehr proggen. Irgendwie habe ich das Gefühl, dass die Frequenz
nicht stimmt.
Kann mir jemand weiterhelfen?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibts hier ettliche Threads zu.

Dein STK500 kann im HV (HighVoltage) Programmier-Modus den AVR Retten
(Fuses zurückstellen)

Aber auf die richtige Progammierspannung achten, sonst isser ganz
hinüber.

/Ernst

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weisse leider nicht, wie ich die zurücksetzten soll. Mit dem
Parallelmodus aber ich meine, wie muss ich die Häckchen setzen, damit
dieser wieder funktionier`?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal einfach alle wieder auf Auslieferungszustand zurückstellen.
Wie der war steht im Datenblatt.

/Ernst

Autor: **** (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

im ISP Modus kannst Du die Fuses bei einem 90S2313 ja garnicht setzen,
also auch nicht verkehrt. Hast Du einen Quarz dran?

HTH,
****

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ahnung, ich bin Anfänger!

Ich habe diesen MC in das STK500 Board eingesetzt und es funzt nicht.
Mit einem Atmega klappt alles gut, denn an diesem habe ich nichts
rumgemacht. Ich habe das Gefühl, dass ich den Oszillator faslcht gewäht
habe. Keine Ahnung!

Autor: **** (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@dili,

Gefühle sind in der Digitaltechnik immer gut, sie ersparen einem oft
das Lesen der Anleitung und Datenblätter.

Leider nicht immer.

Ich hab leider auch keine Ahnung was Du machst.

Gute Nacht

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAHAHAHA

Danke! Habe ich nicht gewusst!

Wenn ich ein Blinklichtprogramm in einen ATMEGA8 flasche funktioniert
alles einwandfrei!
Aber wenn ich das in den AT90S2313 flasche funzt nichts!
Versteht ihr das Problem?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Programm für nen ATMega 8 läuft natürlich nicht auf nem 90S2313! Das
ist ein völlig anderer Controller! Das Programm muss umgeschrieben
werden , wenn es in den 2KB-Speicher vom 2313 überhaupt reinpasst. Dann
musst Du es für den 2313 neu compilieren. Sonst läuft gar nichts.

Autor: Jens D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LOL
das Programmieren geht??
wenn icht kann die ISP Frequenz zu hoch sein
an sonsten kannst du kein Programm von einem 90S2313 in einen Mega8
Programmieren oder umgekehrt

Gruss

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Program ist sehr klein.
Ich habe es mit AVRStudio Umgebung programmiert. Ich habe einzeln die
beiden MC eingesetzt.
Den Code habe ich so programmiert, dass er für beider MC passt.
PORTB ist Ausgang, mit denen ich die LEDs ein und ausschalte.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habe es mit AVRStudio Umgebung programmiert

Also in Assembler?

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein in C, den ich habe die neue Version runtergeladen, wo man den
GCC-Compiler benutzen kann.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann gehts erst recht nicht. Der Compiler erzeugt doch nen völlig
anderen Hex-File! Das kriegste in den Mega8 nicht rein!!!!!! Der Mega
hat ne andere Speicheraufteilung. Du musst das Programm für den 2313
neu compilieren und vorher den richtigen Controller auswählen. Sonst
fügt der auch die falsche I/O-Lib ein!

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den MC auf AT90S2313 gewechselt und dann compliliert. Ging
nicht!

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab gestern Abend einen neuen AT90S2313 eingesetzt, siehe da, der
funzt auch nicht, obwohl ich nichts an den Fusebits geändert habe.

Vorher habe ich mittels Ponyprog über das meistverwendete ISP-Interface
programiiert und es klappte immer.

Seit ich aber die MC auf dem STK500 Board programmiere funktionieren
diese mit Ponyprog auch nicht mehr,

Ausser der Atmega8 der geht bei beiden.

Komisch oder?

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich hab gestern Abend einen neuen AT90S2313 eingesetzt, siehe da, der
>funzt auch nicht, obwohl ich nichts an den Fusebits geändert habe.
Was heisst "funzt nicht"
Du kannst nicht auf den Controller zugreifen? Oder dein Programm
funktioniert nicht? <- Woran machst du das fest? Quelltext?

>Vorher habe ich mittels Ponyprog über das meistverwendete
ISP-Interface
>programiiert und es klappte immer.
Was ist das meistverwendete Interface???

>Seit ich aber die MC auf dem STK500 Board programmiere funktionieren
>diese mit Ponyprog auch nicht mehr,
Nochmal was heist funktionieren?

>Ausser der Atmega8 der geht bei beiden.
analog...

Hast du überhaupt schonmal in die Datenblätter und die Hilfe zum STK500
reingeschaut? Wenn nicht tu es.

Der Hauptunterschied zwischen atmega8 und at90s2313 ist das der atmega8
einen internen Oszillator hat. d.h. wenn der aktiv ist funktioniert er
auch ohne das ein Takt anliegt. der at90s2313 braucht einen externen
Takt. Kann es sein das du diesen abgeschaltet hast?

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ist mein Code
#include <avr/io.h>                             //Zugriff auf IO's des
Controllers
#include <avr/simple_delayroutinen.c>

int main (void) {
  DDRB = 0xff;        //PB0...PB7 als Ausgänge definieren
  DDRD=0x00;
  for (;;)        //Endlosschleife
    unsigned short x=0;
    unsigned int keys;
    keys=~PIND;
    PORTB=0xff;
    if(keys & 0x01){
      for(x=0;x<4;x++){
        PORTB=0xfe;
        delay_ms (900);  //warte
      }
    }
    if(keys & 0x02){
      for(x=0;x<4;x++){
        PORTB = 0xfd;
        delay_ms (900);
      }
    }
  }
}

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

Bewertung
0 lesenswert
nicht lesenswert
Angehängt findest du die Einstellungen die ich gemacht habe einmal im
ISP-Modus
2tes mal Parallal/High Voltage Serial

Wenn ich den oben angegebenen Code in ATMEGA8 hineinprogrammiere
(STK500), dann leuchteten die esrten 2 LED (PORTB) auf, wenn ich die
Tasten vom PORTD drücke. Also=> Das ist OK!!

Aber wenn ich das gleiche mit einem AT90S2313 oder AT90S8115 machen
will, geht nur die erste LED auf, obwohl ich nichts drücke.

Wenn ich anstatt STK500 das ISP-Interface nehme, dann funktioniert das
mit dem ATMEGA( immer noch.
Den AT90S2313  & AT90S8115 kann ich damit auch nicht proggen¨

Ist das Problem nun klar??

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du auf Deinem STK500 den On-Board-Oszillator deaktiviert hast
(Jumper) und auch keinen Quarz eingesetzt hast, dann kann der 90SXXXX
nicht funktionieren!

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DANKE!!!!


Ich werde heute Abend nochmals dies anschauen, und hoffe, dass das das
Problem ist! Ein Quarz ist drin.

Den Jumper habe ich zw. 2 und 3 gesetzt, half aber auch nicht.

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens wie kann man den den On-Board-Oszillator aktivieren resp.
deaktivieren. Das geht doch nur mit den Junper oder?
Softwaremässig kann das nicht gemacht werden oder?

Noch was: Wenn ich im ISP Modus unter Einstellungen des STK500 Fuses
oder Lockbits wähle kommt bei den ATS... immer diese Fehlmeldung.

Beim ATMEGA 8 jedoch nicht!

Könnte das auch ein Grund sein, wieso es nicht richtig funktioniert?

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Jumper habe ich kontrolliert, an liegts leider nicht. Kann es sein,
dass ich die Fusebits oder Lockbits im Parallemodus falsch gesetzt
habe? Weiter oben habe ich eine Word-Datei angehängt, wo die einzelnen
Einstellungen ersichtlich sind.
Kann mir jemand weiterhelfen?

Autor: nemcron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Fehlermeldung ist denn "diese Fehlermeldung" ?
Lässt sich die Signatur auslesen ?

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja aber nur manchmal, kann ich die Signatur nicht auslesen.

Autor: nemcron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und welche Fehlermeldung ist "diese Fehlermeldung" ?

Autor: dili (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er meckert immer mit einer Fehlermeldung bez. der Spannung. Ich bin
zurzeit nicht daheim, deswegen kann ich erst heute Abend den genauen
Fahler mit PrintScreen erfassen und dann ins Netz legen.

Danke!

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

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang ist die Fehlermeldung zu entnehmen!

Ich habe nun einen neuen AT90S2313 genommen und versucht diesen mit
diesem Code zu programmieren:

#include <avr/io.h>          //Zugriff auf IO's des Controllers

void delayxy(int c){
  int x;
  for(c=0;c<4000;c++)
  for(x=0;x<10;x++);
}


int main (void) {
  DDRB = 0xff    //PB0...PB7 als Ausgänge definieren
  DDRD=0x00;
  for (;;) {           //Endlosschleife
    unsigned short x=0;
    unsigned int keys;
    keys=~PIND;
    PORTB=0xff;
    if(keys & 0x01){
      for(x=0;x<4;x++){
        PORTB=0xfe;
        delayxy(10);
      }
    }
    if(keys & 0x02){
      for(x=0;x<4;x++){
        PORTB = 0xfd;
        delayxy(10);
      }
    }
    if(keys & 0x04){
      for(x=0;x<4;x++){
        PORTB = 0xfb;
        delayxy(100);
      }
    }
}

Beim ATMEGA8 funktioniert das, nämlich wenn ich am PORTD PIN0 od PIN1
oder PIN2 den Taser betätige, so leuchtet am PORTB die LED.

Wenn ich aber den gleic^hen Code in einen AT90S2313 hineinflashe so
leuchtet am PORTB die LED 1 auf und nichts passiert, obwohl ich die
Tasten drücke.

Ich habe am die Frequenz mit einem KO am EIngangspin der MC gemessen
und die stimmt.

Kann mir jemand weiterhelfen?

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.