ich habe ein Problem mit einem AT90S8515-8. Das Teil läuft überhaupt nicht an.
QOSC 8 MHz
An RESET liegen 4,8 V VCC 4,8 V AM XTAL AUSGANG sehe ich eine Sinus Schwingung mit 2,4 Volt Amplitude, am XTAL Eingang liegen so um die 0,5 V. Also müsste der interne Oszillator schwiengen.
Ich habe eine kleines Testprogramm geschrieben das alle Ports zu Ausgängen macht und an denen wird eine Variable die ständig inkrementiert wird ausgegeben. An keinem Portpin ist ein Toggeln festzustellen. Alles ist bleibt High.
Liegt Reset direkt oder über einen Widerstand an 4,8V? Ich habe mal mit dem Atmega16 experimentiert und hab Reset immer mit 10k gegen Vcc gelegt. Dadurch kann der Reset zeitrichtig erfolgen...
Allerdings wenn die Ausgänge auf L liegen dann lief das Programm schon. Dann kann ja nur mit der Zählvariable oder mit der Ausgabe etwas nicht stimmen. Ist noch was anderes programmiert wie z.B. Watchdog?
Das wars schon. Ich habe natürlich um sicher zu gehen dieses geniale Programm im Simulator laufen lassen um alle Fehler auszuschalten.
Aber Spass beiseite: Ich vermute das mit dem Oszillator was nicht stimmt. Bevor ich aber das Quarz tausche möchte ich mal abwarten ob jemand noch ne andere Idee hat.
Ciao
"Michael Rübig" schrieb im Newsbeitrag news: snipped-for-privacy@individual.net...
(Das soll offenbar die Reset-Beschaltung sein. An deinem Quoting darfst du noch ein bisschen arbeiten, damit andere das auch verstehen können. Bitte keine Fullquotes, sondern die zutreffenden Ausschnitte zitieren und die entsprechende Bemerkung daruntersetzen.)
Die 1 µF sind schon ziemlich viel. Damit wirst du wohl einen externen Reset triggern statt eines Power-on-Reset. Hast Glück, wenn dein Programmer dick genug treibt, um den fetten Kondensator noch rechtzeitig zu entladen.
Im Prinzip kannst du den Reset-Eingang unbeschaltet lassen, das ist jedoch gerade bei diesen alten AVRs im Hinblick auf die Einstreuung externer Störungen nicht sehr empfehlenswert -- aber laufen muss es damit. /RESET hat einen internen Pullup, und beim Power-on wird intern ein Reset ausgelöst. Eine Appnote von Atmel (die über ESD, Nummer habe ich vergessen) empfiehlt 10 k externen Pullup und 10 nF C nach Masse, der Widerstand mit einer Diode gebrückt, damit die Kondensatorladung über diese abfließen kann.
Prinzipiell sollte ja erstmal alles tun. Wenn du keinen Takt hättest, könntest du den AVR ja gar nicht programmieren (ich nehme mal an, du benutzt ISP). Hast du eigentlich mit dem Programmer mal zurückgelesen, ob der ROM-Inhalt stimmt?
Ist der Programmer bei deinen Laufversuchen abgezogen?
Du kannst natürlich den Quarz allemal ganz abklemmen und an XTAL1 einen externen Takt einspeisen.
Ich habe gerade noch mal das Datenblatt durchgesehen. Ist Bit SRE im MCUCR Register '0'? Andernfalls sind die Ports auf ext. Mem programmiert und die Portausgaben werden überschrieben.
Ich würde empfehlen den Reset-Eingang mit 10k an VCC zu legen, ein einfaches Projekt das auch die Fuse und Lock Einstellungen zeigt zu suchen und falls Du winavr / avr-gcc benutzt hast zu überprüfen ob der Prozessor auch im Makefile eingetragen ist und somit auch für diesen compiliert wird - nicht Mega8515.
Also Rest beschalten wie vorgeschlagen geändert. Kein Ergebniss. C's am Oszillator getauscht. Kein Ergebniss. Quarz getauscht. Kein Ergeniss. Controller getauscht. Kein Ergebniss.
Ich programmiere die Bausteine nicht mit einem seriell Programmer, sondern mit einem externen parallelen Industrie Programmer.
Platine wegschmeissen? Also ich hab echt kein Plan mehr.
Bin für jeden konstuktiven Vorschlag dankbar.
Ciao
War alles nicht so lustig auf einer Multilayer Platine ohne geeignetes Werkzeug die Teile zu wechseln.
"Günther Kreischer" schrieb im Newsbeitrag news:434e977e$0$49017$ snipped-for-privacy@news.sunsite.dk...
Hast Du dir das Projekt Eprommer mal angesehen? Haben die C's am Quarz etwa 22p? Ist im Makefile AT90S8515 eingestellt? Falls die Ports auf der Leiteplatte noch mit anderen Komponenten verbunden sind würde ich jetzt den 8515 allein mit Quarz und seinen 2 C und dem Reset R auf ein Steckbrett stecken. Übrigens habe ich mal das Oszi an die XTAL gelegt, er zeigt zwar was an aber wenn es angeschlossen ist tut der Atmega nichts mehr!
Wurde mit dem neusten AVR Studio 4 bearbeitet das jetzt den GNU total unterstüzt. Habe trotzdem das make angeschaut alles ok.
Mit demProgrammer den Controller gelöscht. Ausgeschaltet. Wieder eingeschaltet. Der Controller ist gelöscht. Programmiert. wieder ausgeschaltet. Eingeschaltet und zurückgelesen. Werte gecheckt. Stimmen mit dem Hex File überein.
Ich habe Hauptsächlich an unbeschaltenen Pin gemessen. Nach OSC Messung mit Scope wieder aus- und eingeschaltet. Nichts!!!!!!!!
Tja .......
Ciao Günther
"Günther Kreischer" schrieb im Newsbeitrag news:434e977e$0$49017$ snipped-for-privacy@news.sunsite.dk...
Wie wäre es mit einem kleinen Assembler Prog, das ein Port auf Ausgabe setzt und z.B. 0xAA ausgibt? Die Pins sind wirklich alle richtig belegt? Welchen Wert haben die C's? Ist es ein Quarz oder ein Oszillator?
schrieb im Newsbeitrag news:434f77fd$0$24172$ snipped-for-privacy@newsread4.arcor-online.net...
Nur mal so als Hinweis, es ist wahnsinnig schwer, Deine Postings zu lesen. Der ganze Text des Vorgängers wird von Dir mitgeschleppt. Einfach mal die Usenetregeln lesen, auf Hinweise anderer User achten und Fullquotes unterlassen.
Und wie kommt dann die endgültige Applikation da rein? Ich vermute ja mal nicht, dass das Gepostete die wirkliche Applikation werden soll. ;-)
Wer konstruiert denn einen Multilayer mit einem schon lange abgekündigten, 5 Jahre alten Controller? Wenn du stattdessen gleich den ATmega8515 genommen hättest, könntest du dir wahrscheinlich gleich den Quarz komplett sparen und mit dem internen Oszillator arbeiten (kannst natürlich jetzt immer noch).
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.