AT90S2313 kann nicht programmiert werden

Gast #310141
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?
Gast #310146
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!
Gast #310147
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
Gast #310149
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.
Gast #310151
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.
Gast #310154
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!
Gast #310156
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?
Gast #310157
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?
Gast #310158
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);
      }
    }
  }
}
Gast #310159
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??
Angehängte Dateien:
Gast #310162
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?
Gast #310163
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?
Gast #310167
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!
Gast #310168
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?
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren