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
Hi Matthias! Du musst den Fehler schon etwas genauer beschreiben, frei nach dem Motto Was, Wann , Wo! MFG Uwe
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?
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
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! :-)?????
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) :-)
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.
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
"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
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
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
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
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?
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.