Forum: Mikrocontroller und Digitale Elektronik Startprobleme mit 8515


von Matthias (Gast)


Lesenswert?

Hi Leute

Also wir haben eine Anzeigetafel gebastelt die mit einem 8515
angesteuert wird.

die Einheit zum Anzeigen funktioniert schon einwandfrei nur wir haben
noch ein problem mit dem Controller. Wie kann es sein dass es teilweise
beim einschalten mit der Initialisierung funktioniert und teilweise
nicht?Der Controller ist ordentlich gestützt usw. auch wenn man am
anfang eine Zeitschleife einbaut haut es bei 5 versuchen vielleicht 2
mal hin!

RESET:

  ldi   temp,LOW(RAMEND)
  out   SPL,temp
  ldi   temp,HIGH(RAMEND)
  out   SPH,temp      ;Stack initialisiert

  sbi   UCR,RXEN           ;Receiver freigegeben
  sbi   UCR,TXEN           ;Transmitter freigegeben
  sbi  UCR,RXCIE    ;RxC Interrupt freigegeben
  ldi   temp,11
  out   UBRR,temp          ;Baudrate=19000 (bei 3.6864Mhz)

  cbi  SPCR,SPIE    ;Interrupt lokal gesperrt
  sbi  SPCR,SPE    ;SPI aktiviert
  sbi  SPCR,MSTR    ;Microcontroller = Master
  sbi  SPCR,CPOL
  cbi  SPCR,DORD    ;MSB wird zuerst geschickt
  sbi  SPCR,CPHA    ;Übertragungsformat
  sbi  SPCR,SPR0
  sbi  SPCR,SPR1    ;Frequenz von SCK = 3.68MHZ / 128

  sei
INIT:

  ser  temp
  out  DDRB,temp
  ldi  temp,0b11111011
        out   PORTB,temp    ;PortB als Ausgang definiert (SPI)

        ser  temp
  out  DDRC,temp
        out   PORTC,temp    ;PortC als Ausgang definiert (CS)
  out  DDRA,temp
        out   PORTA,temp    ;PortA als Ausgang definiert (CS)

        ldi  temp,0b00001110    ;Pin 0,1: UART / Pin 2,3: Leds / Pin
4,5,6,7: Taster
        out  DDRD,temp
        ser  temp
        out  PORTD,temp    ;Leds sollten dunkel sein

  clr  XH
  ldi  XL,$60

  rcall  REGISTERLADEN

  rcall  RAMBESCHREIBEN

  rcall  LOESCHEN    ;Unterprogramm zum Löschen der SMS auf dem
Speicherplatz Nr.1 im Modem

  rcall  MODE      ;Unterprogramm zum Ändern des Modus (Modem meldet 
sich
beim Erhalten einer SMS)

  clr  temp      ;Nach Ende der Initialisierung
       leuchten die LEDS
  out  PORTD,temp

  clr  XH
  ldi  XL,$60

  clr  Status



Vielleicht ist irgendwas nach dem Reset falsch initialisiert.
Irgendeine Standartkomponente oder so??

Aus den Unterprogrammen wird ordnungsgemäß wieder rausgesprungen!!!

Bitte um Hilfe

von Uwe (Gast)


Lesenswert?

Hi Matthias!

Du musst den Fehler schon etwas genauer beschreiben, frei nach dem
Motto Was, Wann , Wo!

MFG Uwe

von Thomas (Gast)


Lesenswert?

Hallo Matthias!

Wie hast du den Reset-Pin beschaltet?

Gruß Thomas

von Matthias (Gast)


Lesenswert?

also es ist ein programm das einen Bestimmten Initialisierungsteil hat
und dann pollt es die ganze zeit ein Modem ab. Damit ich weiß wann das
programm fertig initialisiert hat hab ich zum abschluss der
initialisierung 2 leds eingschalten. nur teilweise kann er die init
nicht fertig machen und springt nicht in den Pollteil!

Das Problem tritt aber nur auf wenn ich die Versorgung komplett
wegkappe und wieder anschließe bei einem Reset haut es einwandfrei
hin!!!!!

Ich frage mich nur warum!


Beschalten ist der Reset Pin mit 47p gegen maße und einem 10k gegen
versorgung (5V)

ist diese beschreibung genauer?

von Uwe (Gast)


Lesenswert?

Hi Matthias!
Schon etwas besser. Du kannst also nicht sagen wo das Progr.
hängenbleibt, und bei Reset geht alles sauber? Melden sich eventuell
irgendwelche Komponenten nicht so schnell wie es der uC braucht? Mit
"sei" sind Int.aktiv, sind die schon alle mit richtigen Werten
versorgt? Du hast 2 LED's, benutze sie doch in der Art einer
Durchlaufzahl:00->01->10->11. Die Zustände kannst du an wichtigen
Stellen setzen. 47p und 10K am Reset sind recht gewagt, 100n kannst du
ruhig spendieren. Ansonsten ist die Sache noch zu weitläufig um
spezielleres sagen zu können, versuche mal dein Glück und finde mehr
heraus.

MFG Uwe

von Matthias (Gast)


Lesenswert?

Also habe nun die Reset beschaltung geändert und es hat sich vom starten
her nichts geändert

Habe die Resetbeschaltung sogar mit einem IC gemacht und auch damit ist
nichts besser geworden!

Warum startet er nicht

Auch die interrupts sind alle richtig da!

:-)?????

von Uwe (Gast)


Lesenswert?

Hi Matthias !

LED-Test schon eingebaut? Wie weit kommt dein Prog.?

MFG Uwe

von Matthias (Gast)


Lesenswert?

Led Test drin

Kommt keinen Meter

Startet überhaupt nicht

von mthomas (Gast)


Lesenswert?

Interrupt-Handler oder Interrupt-Vektor vergessen?

von Matthias (Gast)


Lesenswert?

Nope das Programm läuft ja nach anschließendem Drücken auf den Reset
Taster zu HUNDERT PROZENT an! und funktioniert auch (man glaubt es
kaum) :-)

von Ralph (Gast)


Lesenswert?

Atmel empfiehlt einen Kondensator von 10 nF von Reset zu GND:

http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

Damit schaffst Du auch eine kleine Reset-Verzögerung (RC-Glied).
Vielleicht hilft's.

von Matthias (Gast)


Lesenswert?

Hmm steht glaub ich oben dass ich dies schon probiert habe! alle
möglichen Dinge
lange reset verzögerung mittlere und kurze :-(
Aber trotzdem danke für den beitrag

Gibts sonst noch irgendwelche Ideen

von Peter D. (peda)


Lesenswert?

"Nope das Programm läuft ja nach anschließendem Drücken auf den Reset
Taster zu HUNDERT PROZENT an!"

Dann ist definitiv Deine Reset-Zeit zu kurz.

Erstmal mußt Du die Zeit nehmen, die Dein Netzteil braucht, um stabil
auf 5V zu kommen, dann noch etwa 5...20ms ehe Dein Quarz ordentlich
schwingt.

Ordentliche Reset-ICs machen deshalb so 200ms...500ms Resetimpuls.

Die internen 16ms der alten AVRs sind da meistens zu knapp und 10nF
blocken bestenfalls kurze Störungen vom Resetpin ab.

Wenn schon kein Reset-IC, dann den Resetpin mit wenigstens 10µF gegen
GND und 10k gegen VCC beschalten.


Peter

von Uwe (Gast)


Lesenswert?

Hi!
Has du schon mal einen anderen uC genommen? Eventuell ist deiner ja
tatsächlich nicht ganz top! Ein sehr langes Reset könnte natürlich
helfen. Komisch ist es aber schon. Ämmm, Takt ist aber sofort da?

MFG Uwe

von Matthias (Gast)


Lesenswert?

Hmm

Reset IC wurde eingesetzt und zwar der MAX811 der hat schön nach 200ms
nachdem die Vcc da war den Reset Pin auf High gsetzt hat aber nix
gebracht der atmel hat trotzdem nur ein paar mal gestartet so in etwa
von 5 versuchen 2-3 mal

Wie überprüfe ich ob der takt sofort da ist? nach 200 ms nehm ich mal
an das er sofort da ist!

Grüße Posseidon

von Uwe (Gast)


Lesenswert?

Hi!
<nehm ich mal an das er sofort da ist!
In deinem Fall würde ich nichts ungetestet lassen.
An welcher Stelle soll denn deine erste LED anspringen?
Takt testen an XTAL2 mit Oszi oder Frequenzmesser(DVM). Eventuell geht
auch WS-Messung mit DVM.

MFG Uwe

von Matthias (Gast)


Lesenswert?

Was sollte da raus kommen? der takt muss ja fast anliegen wenn er nach
normalen Reset ganz normal anspringt oder?

Wir haben auch ein ganz normales Programm getestet wo einfach 1 led
leuchtet und nach 1 sek nicht mehr dann wieder usw. so ein blinklicht
des programm is mit den selben Startprobleme nit hochkommen gleich oft
wie des normale! Led hat nie eine gebrannt dh eigentlich dass des
Programm nit amal a BISSAL anlafft oder?

von Uwe (Gast)


Lesenswert?

Dann hau den uC in die Tonne!

MFG Uwe

von Matthias (Gast)


Lesenswert?

is bereits der dritte!

sonst noch Vorschläge

ach ja die Refferenz des uC ist die Dritte also C des steht doch unten
am Atmel dabei!

von Uwe (Gast)


Lesenswert?

Hi!
Wenn es schon der dritte ist brauchst du den Fehler nicht im AVR
suchen! Er entsteht ganz bestimmt extern.
Du musst extern alles Testen, nicht vermuten!
- VCC - GND direkt am AVR
- Reset
- Takt
- ISP- Anschlüsse (wenn offen) def.über R's an GND

Absenkung von VCC hat auch schon bei manchen geholfen.

Die "def." AVR's laufen auch auf einem anderen Bord nicht?

MFG Uwe

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.