Ich habe ein C-Programm: "ADC auslesen und auf LCD ausgeben" geschrieben. Es funktioniert prima in einer Testschaltung. Aber wenn ich den Controller wieder in den Programmer (stk500) einsetze komme ich nicht mehr rein. (AVR-Studio). Ich habe dann einen neuen Controller (ATMEGA8) in das stk500 eingesetzt und das Programm geflasht. Dann habe ich versucht, es ein zweitesmal zu flashen (ohne den Controller herauszunehmen oder etwas zu verändern) und kam wieder nicht in den MEGA8. Woran könnte DAS liegen?
Hi
>Woran könnte DAS liegen?
Vor dem Programmieren gelöscht? Fuse-Einstellungen?
MfG Spess
spess53 schrieb: > Vor dem Programmieren gelöscht? Fuse-Einstellungen? Ja erst gelöscht dann geflasht. Fuses kann ich außschließen, die habe ich mir bei beiden Controllern vor dem flashen angeschaut. Und bei dem zweiten garnicht verändert. Weil der schon auf externen Quarz eingestellt war. Ich sitze schon eine Woche an dem Problem und hab schon viel probiert. High-Voltag-Programming, externen Takt anlegen etc. Ich fürchte so einfach ist es nicht.
Deine Schaltung im Zusammenhang mit dem Programm zerstört den Prozessor durch falsche Beschaltung.
Sepp schrieb: > Deine Schaltung im Zusammenhang mit dem Programm zerstört den Prozessor > durch falsche Beschaltung. Nein. Das ist nicht so. Ich habe auch schon einen AVR im Stk500 geflasht. Die Connection im AVR-Studio zu gemacht und versucht nochmal zu verbinden. Hat aber nicht geklappt. Ich habe im Anhang mal das Hex-file angehängt. Vielleicht möchte es ja jemand riskieren. Direkt kaputt ist der AVR dann nicht. Aber man bekommt kein neues Programm drauf. Das Programm misst eine Spannung an PC5 und PC4 und gibt die beiden Werte über PD4-PD7 (= DB4-DB7) ans LCD weiter. RS und EN sind PB1=RS und PB2=EN. RW muss auf masse gelegt werden. Es kann eine Spannung von 0-5V gemessen werden mit 3 Nachkommastellen. Bei dem einen ADC-WERT steht Ampere dahinter und beim anderen Volt. z.B. .....3.569 Ampere ..........1.409 Volt
Benutzt Du irgend einen PIN der Programmierschnittstelle?
Tobias R... schrieb: > Ich habe im Anhang mal das Hex-file angehängt. Vielleicht möchte es ja > > jemand riskieren. Wo ist der?
Entschuldige. Ich hab ihn eigentlich angehängt. Wahrscheinlich weil ich auf Vorschau geklickt habe.
Andreas Hoeter schrieb: > Benutzt Du irgend einen PIN der Programmierschnittstelle? Nein. MISO, MOSI und SCK sind völlig unbeschaltet. Nur die PINS PD4-PD7 und PB1 und PB2. Und alles was halt noch notwendig ist für den ADC und den allgemeinen Betrieb. Dabei benutze ich ein externes Quarz mit 2 x 22pF Cs. Es ist ein ATMEGA8.
Versuch mal auf einen neuen ATmega8 auf dem STK500 mit HV-Programming zuzugreifen. Wenn dieses Programmiersetup funktioniert, steckst du deinen verhunzten ATmega8 auf das STK500 und probierst das Selbe nochmal. Wenn schon der Zugriff auf den neuen µC nicht funktioniert hast du ein Problem in deinem HV-Programming Setup. Wenn allerdings nur das HV-Programming des verhunzten µCs nicht geht, hat sich der Controller vermutlich in deiner Schaltung eine tödliche Verletzung zugezogen. Gruß, Magnetus
Danke. Das werde ich mal versuchen. Leider habe ich gerade keine Controller mehr. Ich hatte nur vier und mit allen vieren herumprobiert. Es sind aber schon neue bestellt. Sind vielleicht morgen da. Magnus Müller schrieb: > sich der Controller vermutlich in deiner Schaltung eine tödliche > Verletzung zugezogen. Das dachte ich auch am Anfang. "Bestimmt ist der Controller kaputt...". Und hab auch gleich den ersten weggeschmissen. Ich habe aber ja auch schonmal probiert: 1) den Controller flashen. 2) Die Verbindung im AVR-Studio schließen. 3) Und ein zweitesmal zu verbinden. Die 2. Verbindung ging schon nicht. Ich habe den Controller nicht in die Schaltung eingesetzt. Zudem ist sie sehr übersichtlich auf einem Bread-Board aufgebaut und ich habe schon sehr oft drübergeschaut.
Tobias R... schrieb: > Die 2. Verbindung ging schon nicht. Was meinst du damit? Hat AVR Studio den PROGRAMMER oder den CONTROLLER nicht gefunden? > Ich habe aber ja auch schonmal probiert: > > 1) den Controller flashen. > 2) Die Verbindung im AVR-Studio schließen. > 3) Und ein zweitesmal zu verbinden. Wenn du beim Programmieren versehentlich die RSTDISBL-Fuse gesetzt oder die SPIEN-Fuse gelöscht hast, kannst du über SPI nicht mehr auf den Controller zugreifen. In diesem Fall könntest nur noch mit HV-Programming auf deinen Controller zugreifen (und diesen Fehler rückgängig machen). Gruß, Magnetus
Hi >Wenn du beim Programmieren versehentlich die RSTDISBL-Fuse gesetzt oder >die SPIEN-Fuse gelöscht hast, kannst du über SPI nicht mehr auf den >Controller zugreifen. SPIEN-Fuse lässt sich über ISP nicht löschen. MfG Spess
spess53 schrieb: > SPIEN-Fuse lässt sich über ISP nicht löschen. > > MfG Spess Hm, hab ich wohl übersehen. Dann bleibt nur noch die RSTDISBL-Fuse.
Magnus Müller schrieb: > Was meinst du damit? Hat AVR Studio den PROGRAMMER oder den CONTROLLER > nicht gefunden? Er hat das ganze STK500 mit eingesetztem Controller nicht erkannt. Ohne Controller erkennt er es Wenn du beim Programmieren versehentlich die RSTDISBL-Fuse gesetzt oder die SPIEN-Fuse gelöscht hast, kannst du über SPI nicht mehr auf den Controller zugreifen. In diesem Fall könntest nur noch mit HV-Programming auf deinen Controller zugreifen (und diesen Fehler rückgängig machen). Ich kann mit 100% Sicherheit sagen, dass der Controller nicht verfused ist. Weder mit SPIEN oder RSTDISBL oder Taktquelle. Mit HV-Programming habe ich es schon versucht. Ich kann nur noch deinen ersten Vorschlag versuchen: Magnus Müller schrieb: > Versuch mal auf einen neuen ATmega8 auf dem STK500 mit HV-Programming > zuzugreifen. Wenn dieses Programmiersetup funktioniert, steckst du > deinen verhunzten ATmega8 auf das STK500 und probierst das Selbe > nochmal.
Hi Wie sieht die Stromversorgung von deinem STK500 aus? MfG Spess
Ein 9V Steckernetzteil mit 560mA. Das Board wurde mit diesem Netzteil schon oft verwendet.
Tobias R... schrieb: > Er hat das ganze STK500 mit eingesetztem Controller nicht erkannt. Ohne > > Controller erkennt er es Richtiger Sockel ? Richtiger herum eingesetzt ? IO Beschaltung enfernt ?
Hi >Ein 9V Steckernetzteil mit 560mA. Das Board wurde mit diesem Netzteil >schon oft verwendet. Na und. Es liegt trotzdem ausserhalb der Spezifikation: The minimum hardware and software requirements are: .... 10-15V DC power supply, 500mA min Das du mit dem Netzteil keine HV-Programmierung hinbekommst wundert mich nicht. MfG Spess
Tobias R... schrieb: > Er hat das ganze STK500 mit eingesetztem Controller nicht erkannt. Ohne > Controller erkennt er es Mach doch mal bitte ein Foto von deinem STK500 mit gestecktem ATmega8 in dem Zustand wie du es zum Programmieren benutzt. Womöglich hast du noch irgendeine Verbindung gesetzt, die dir dann die Probleme bereitet.
spess53 schrieb: > Na und. Es liegt trotzdem ausserhalb der Spezifikation yep. stimmt. Ich hab im stk500 user guide nochmal nachgeschaut. Aber sollte ich HV-Programming überhaupt verwenden? Der Controller ist nicht verfused. Magnus Müller schrieb: > Mach doch mal bitte ein Foto von deinem STK500 mit gestecktem ATmega8 in > dem Zustand wie du es zum Programmieren benutzt. Womöglich hast du noch > irgendeine Verbindung gesetzt, die dir dann die Probleme bereitet. Ich habe leider keine Kamera da. Handy hat zu geringe auflösung. Aber viel ist ja am stk500 nicht zu machen. 1) Es ist an der Spannungsversorgung angeschlossen 2) der ISP ist angeschlossen. (RS232 CTRL) 3) Das sechspolige Kabel ist vom ISP an den grünen 6poligen-Header geführt 4) Der ATMEGA8 ist in den grünen SCKT3200A2-Sockel richtig herum gesteck. 5) Gesetzte Jumper: VTARGET, AREF, RESET, XTAL1 und OSCSEL zwischen den Pins 2 und 3. (Controller wurde sicher auf externes Crystal eingestellt) 6) 4MHz Quarz in den Sockel gesteckt
Ja die IO-Ports sind alle unbeschaltet. Ich benutze das Board nur zum Programmieren.
Tobias R... schrieb: > Magnus Müller schrieb: >> Mach doch mal bitte ein Foto von deinem STK500 mit gestecktem ATmega8 in >> dem Zustand wie du es zum Programmieren benutzt. Womöglich hast du noch >> irgendeine Verbindung gesetzt, die dir dann die Probleme bereitet. > > Ich habe leider keine Kamera da. > Handy hat zu geringe auflösung. Definiere "zu geringe Auflösung".
Magnus Müller schrieb: > Definiere "zu geringe Auflösung". 2 MP. Ich habe aber trotzdem mal ein Foto gemacht. Morgen hol ich das Datenkabel und stelle es rein.
Tobias R... schrieb: > Magnus Müller schrieb: >> Definiere "zu geringe Auflösung". > > 2 MP. Das ist mehr als ausreichend! Das Schlimmste was passieren kann ist dass das Bild unscharf ist. Aber es gibt auch Leute, die selbst mit einer 10 Megapixel Kamera unscharfe Kunstwerke produzieren. Gruß, Magnetus
Tobias R... schrieb: > den Pins 2 und 3. (Controller wurde sicher auf externes Crystal > eingestellt) Und genau das ist falsch. Am STK ist ein Treiber zwischen Quarzsockel und Controllersockel. Du musst auf externen Clock stellen.
Tobias R... schrieb: > Magnus Müller schrieb: >> Definiere "zu geringe Auflösung". > > 2 MP. Nachtrag: Ich habe mal eben mit meinem Handy (Nokia 6300i) zwei Bilder von meinem STK500 gemacht. Das linke wurde mit 2MP (1600x1200) und das rechte mit 0,3MP (640x480) aufgenommen. Man beachte dass der Informationsgehalt des 0,3MP Fotos aufgrund der Unschärfe im Nahbereich derselbe wie beim 2MP Bild ist. Gruß, Magnetus
Mein Handy hat aber auch eine sehr kleine chip-Größe. Das ist wirklich keine gute Kamera. Ihr könnt ja die Bilder morgen anschauen. Aber ich denke du hast recht und man wird genug erkennen. Michael H. schrieb: > Und genau das ist falsch. > Am STK ist ein Treiber zwischen Quarzsockel und Controllersockel. > Du musst auf externen Clock stellen. Stimmt. Auf dem Blockschaltbild des stk500 ist wirklich ein oszillator dem quarz nachgeschaltet. Und der XTAL2-Pin unbeschaltet. Man müsste dann tatsächlich auf externe clock stellen. Aber komischerweise war ein controller schon auf external crystal eingestellt und er hat ihn erkannt. Erst als ich das Programm flashte ging es nicht mehr. Ich habe im (C-)Programm eine printf-funktion. Die wird normalerweise nicht für mikrocontroller verwendet weil sie relativ viel rechenleistung benötigt. Dazu mache ich 100 Messungen am ADC und bilde daraus den Mittelwert. Den gebe ich mit printf als float aus. Deswegen benutze ich auch printf. Weil es nur für Integer die itoa-Funktion in der library gibt. (und ich keine eigene schreiben wollte). Kann es sein, dass deswegen ein time out beim Verbinden eintritt?
Hi >Kann es sein, dass deswegen ein time out beim Verbinden eintritt? Nein. Zum Programmieren wird der Controller in den RESET-Zustand versetzt. Da läuft kein Programm mehr. > Du musst auf externen Clock stellen. Das funktioniert auch, wenn auf Quarz gefust ist. MfG Spess
spess53 schrieb: >> Du musst auf externen Clock stellen. > Das funktioniert auch, wenn auf Quarz gefust ist. Verlassen würde ich mich nicht drauf. Hab außerdem gelesen, dass der Takt in diesem Fall auf XTAL2 müsste. Das Mittel der Wahl ist trotzdem HV-Prog.
Hier noch das Bild spess53 schrieb: > Das funktioniert auch, wenn auf Quarz gefust ist. Das ist auch meine Erfahrung. spess53 schrieb: > Nein. Zum Programmieren wird der Controller in den RESET-Zustand > versetzt. Da läuft kein Programm mehr. hmmn. Dann kommt er garnicht in die main-Funktion rein. Ich bin darauf gekommen weil ich in einem anderen Forum jemand gefunden habe, der das gleiche Problem hat. Und auch ein Programm zur ADC-Messung mit LCD-Ausgabe geschrieben hat. Praktisch das gleiche Programm. Michael H. schrieb: > Verlassen würde ich mich nicht drauf. > Hab außerdem gelesen, dass der Takt in diesem Fall auf XTAL2 müsste. > > Das Mittel der Wahl ist trotzdem HV-Prog. Aha. Das Board wird aber mit eingestecktem, geflashten controller nicht erkannt. Ich kann also die Fuses nicht mehr ändern und eigentlich auch nicht auf HV-Programming umstellen. Oder kann ich HV-Programming im Disconnect-Modus einstellen?
Dass dein STK nicht erkannt wird, liegt eh an was anderem. Stromversorgung, PC, uswusf... Aber zum Testen: Quarz aus dem Sockel nehmen und XTAL Jumper ziehen.
Hat nicht geklappt.... Das Bild habe ich mit einer geliehenen Kompaktkamera gemacht.
Hi Nur mal so: Du hast auch den richtigen RS232 Stecker (RS232 CTRL) benutzt? Außerdem würde ich mal die Versorgungsspannung (VCC) auf dem Board messen, wenn es nicht ansprechbar ist. MfG Spess
spess53 schrieb: > Hi > > Nur mal so: Du hast auch den richtigen RS232 Stecker (RS232 CTRL) > benutzt? > JA!!! > Außerdem würde ich mal die Versorgungsspannung (VCC) auf dem Board > messen, wenn es nicht ansprechbar ist. > Das board ist ansprechbar. Aber mit eingestecktem Controller, der mit dem Programm geflasht wurde ist es nicht mehr ansprechbar. Nehme ich ihn heraus, ist es wieder ansprechbar. > MfG Spess
Tobias R... schrieb: > Das board ist ansprechbar. Aber mit eingestecktem Controller, der mit > dem Programm geflasht wurde ist es nicht mehr ansprechbar. Nehme ich ihn > heraus, ist es wieder ansprechbar. Einen Kasten Bier drauf, dass es nicht am Controller liegt.
Hi
>Einen Kasten Bier drauf, dass es nicht am Controller liegt.
Ich lege noch eine Flasche Braunen drauf.
MfG Spess
spess53 schrieb: > Hi > >>Kann es sein, dass deswegen ein time out beim Verbinden eintritt? > > Nein. Zum Programmieren wird der Controller in den RESET-Zustand > versetzt. Da läuft kein Programm mehr. > >> Du musst auf externen Clock stellen. > > Das funktioniert auch, wenn auf Quarz gefust ist. > > MfG Spess Achso mir ist gerade eingefallen, dass ich ja garnicht zum Programmieren komme. Wenn ich den Controller einstecke und das board einschalte wird er resetet und arbeitet das Programm ab. Er ist jetzt also in der wuchtigen Endlosschleife bei der 2 Spannungen jeweils 100mal gemessen werden, der Mittelwert gebildet und dann noch mit printf ausgegeben werden. Dann müsste es aber doch klappen wenn ich beim Verbinden den RESET-TASTER gedrückt halte.... Ich glaube das habe ich noch nicht probiert.
Beim Programmieren wird er automatisch Resettet. Da musst du nichts drücken.
Aber ich krieg doch keine Verbindung. Das glaub ich, dass er beim Programmieren resetet wird. Aber wie sieht es beim Verbinden aus. Programmer wählen, com-Port wählen und dann auf connect drücken. Wird er hier auch schon resetet?
Hi >Aber wie sieht es beim Verbinden aus. >Programmer wählen, com-Port wählen und dann auf connect drücken. Wird er >hier auch schon resetet? Nein, erst beim Programmieren. MfG Spess
Genau wenn ich ein Lauflicht laufen lasse und verbinde läuft das Lauflicht weiter seinen Lauf.
Hi, ich habe dein Prog auf einen Atmega8 geflasht und habe das gleiche verhalten wie du, wirklich fastsinierend, da kann ich ja auch mal experimentieren. Nach dem Proggen wird das STK500 nicht mehr gefunden wenn der Mega steckt.
Dass das HV-Programming nicht klappt könnte an dem Steckernetzteil liegen: Die AVRs brauchen ziemlich genau 12 Volt an RESET, damit sie in den HV-Programmiermodus gehen; zulässig sind lt- Datenblatt 11,5...12,5V. Zumindest "nach oben hin" sind die recht empfindlich: "Absolute Maximum Rating" sind 13V. Und ich habe schon mal als Versehen (als ich mal einen HV-Programmer gebaut habe) ca. 13,8V angelegt - das hat gleich den RESET-Pin zerschossen, der Controller funktioniert aber ansonsten noch. Da kann ich mir sehr gut vorstellen, dass 9V nicht reichen. Selbst mit einem unstabilisierten 9V-Netzteil (ca. 12V Leerlaufspannung) wird es kaum reichen. Am besten, du nimmst dir irgendein unstabilisiertes 12V-Steckernetzteil, das mindestens so 300mA liefern kann, und betreibst das STK500 damit. Natürlich darauf achten, dass es die richtige Polarität hat und Gleichspannung liefert! So ein Netzteil liefert im Leerlauf nämlich ca. 16...18 Volt. Damit hat der Regler auf dem STK500 genug Spannungsreserve, um zuverlässig die 12V für RESET liefern zu können. Natürlich kann man auch ein stabilisiertes Netzteil mit so einer Ausgangsspannung nehmen. Oder ganz einfach 2 9V-Batterien in Reihe schalten ;) Ich kann mir irgendwie nicht vorstellen, dass die AVRs dabei kaputtgegangen sind. Bisher habe ich erst einen wirklich kaputtgekriegt, und das unter ganz anderen Umständen (einen Step-Up-Wandler gebaut; irgendwie hat die Regelung versagt und die Ausgangsspannung ist so lange angestiegen bis es die 500V-Diode zerhauen hat und sich damit der Ausgangs-Kondensator (8µF) in die Betriebsspannnug entladen hat...).
nein Kaputt ist er nicht, ich habe einen Workaround ;) Das STK wird auch nicht mehr gefunden wenn nicht mal die ISP brücke steckt, weiß aber noch nicht warum. Workaround: entferne den Mega8, gehe in das Programmierfenster "HW-Settings" stelle die ARef Spannung auf 5V setze den Mega ein und lösche ihn. viel Erfolg
Hi >Natürlich darauf achten, dass es die richtige Polarität hat und >Gleichspannung liefert! Das ist egal. Das STK500 läuft auch mit Wechselspannung. MfG Spess
Was sagen die LEDs des STK500? leuchtet leuchtet nicht Target Power LED (grün) [ ] [ ] Main Power LED (rot) [ ] [ ] Status LED rot [ ] gelb [ ] grün [ ] aus [ ] Werde den Voodoo-Code später vielleicht auch mal auf nen Mega8 zaubern. Muss vorher aber erst mal mein Schokoladenfondue futtern ;)
die LEds verhalten sich normal, Target Power und Main Power leuchten normal, Status ist grün, und ist beim Programmieren orange. Das Board ist nicht mehr ansprechbar wenn ARef ein bischen unter VTarget programmiert ist. Wenn das vor dem fashen unter VTarget steht ist das Board nach dem Flashen und Verify nicht mehr ansprechbar
Wenn das Board nicht mehr ansprechbar ist macht Status keinen muchs mehr, leutet nur noch grün.
oder ziehe den ARef Jumper und alles geht wieder. Kann es sein das dein Programm ARef irgendwann kurzschließt ?
leuchtet leuchtet nicht Target Power LED (grün) [ ᜱ ] [ ] Main Power LED (rot) [ ᜱ ] [ ] Status LED rot [ ] gelb [ ] grün [ ᜱ ] aus [ ] Faszinierend schrieb: > nein Kaputt ist er nicht, ich habe einen Workaround ;) > Das STK wird auch nicht mehr gefunden wenn nicht mal die ISP brücke > steckt, weiß aber noch nicht warum. > > Workaround: > entferne den Mega8, gehe in das Programmierfenster "HW-Settings" stelle > die ARef Spannung auf 5V setze den Mega ein und lösche ihn. Erstmal danke für deine engangierte Hilfe. Also wenn ich 5V als AREF einstelle wird der Controller erkannt und ich kann ihn löschen? Workaround... sagt mir nix
Faszinierend schrieb: > oder ziehe den ARef Jumper und alles geht wieder. > > Kann es sein das dein Programm ARef irgendwann kurzschließt ?
Faszinierend schrieb: > oder ziehe den ARef Jumper und alles geht wieder. > > Kann es sein das dein Programm ARef irgendwann kurzschließt ? Ganz interessanter Ansatz. Ich habe AVcc als Referenz eingestellt. Das Board liefert aber eine Referenzspannung. Dann muss ich nur den AREF-Jumper ziehen. Oh Mann.
Hi Welche Referenzspannung benutzt dein Programm? MfG Spess
Tobias R... schrieb: > Entschuldige. Ich hab ihn eigentlich angehängt. Wahrscheinlich weil ich > auf Vorschau geklickt habe. Also ich hab das Hex aus diesem Beitrag geflasht per ISP-Mode. Testen kann ich es nicht, ich kann nur sagen, daß an PortD die LEDs 4,5,6,7 leuchten. Wie sind denn Deine Fuses? Ich hab mal 0xC5, 0xBF eingestellt. Nach STK500 ausschalten muß man manchmal neu connecten, aber das ist normal. Also mit dem Programm drauf gibt es bei mir keine Effekte. Ich kann alles machen: Signatur lesen, Fuses setzen, Erase, Program usw. Du kannst auch Reset gedrückt halten, das STK einschalten, Connecten und Erase. Dann wird Deine Applikation nie gestartet. Peter
@ Peter, setzte mal im Board die ARef Spannung runter 3V oder 0V und teste nochmal
Du hast aber nicht den AREF-Jumper drin, oder? @Peter
Faszinierend schrieb: > @ Peter, > > setzte mal im Board die ARef Spannung runter 3V oder 0V und teste > nochmal Hab ich grad auf 2,5V gesetzt und nun connectet er nicht. Ab UREF <=4,4V gehts nicht mehr. Ziehe ich den Jumper AREF ab oder setze wieder auf 5V oder halte Reset gedrückt, gehts. Ich hab mal gemessen, da fließen aber nur 10mA, warscheinlich in R614 hinein. Peter
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.