Hi, ich hab hier ein Problem mit einem avr910 und kann es einfach nicht lokalisieren. Ich erklär mal, die Situation, vielleicht erkennt ja jemand anderes den Fehler. Im Prinzip kann man aber den folgenden Text einfach überspringen und gleich zur Zusammenfassung gehen ;) Aaalso angefangen hat alles damit, dass ich den avr910-Programmieradapter (fertig gekauft von shop.ob-elektronik.de und auch schon mal benutzt, ging also mal) nach längerer AVR-Abstinenz mal wieder ausgekramt hab. Natürlich hab ich prompt beim ersten Versuch in der Zielschaltung die Versorgungsspannung verpolt. Das hat auch der tiny im avr910 abgekriegt. Die Verpolung lag daran, dass ich beim Erstellen der Platine vergessen hatte, die obere Lage beim Drucken zu spiegeln. Daher sind auch die anderen SPI-Pins mal kurzzeitig falsch angeschlossen gewesen. Da sich der avr910 nicht gerührt hat (Fehler in uisp, avrdude), hab ich ihn mal an die Serielle meines Windowsrechners gehängt. ->auch nichts. Im Terminal zeigte er nur Mist an. Das lag daran, dass der Stecker verpolt war und der tiny sich die Versorgungsspannung über SPI oder Reset oder was weiß ich geholt hatte. Dann hab ich endlich das Problem mit dem verpolten Stecker behoben, mit dem Ergebnis, dass er jetzt bei beliebigen Baudraten exakt zurücksendet, was er auf der Seriellen empfangen hat. Der Oskar an TX und RX direkt verrät, dass RX (Pin3 auf der Buchse, TX des PC) in Ruhe auf -9,5V liegt, bei Verkehr mit schön steilen Flanken auf +9,5 hoch geht. Tx (Pin2, RX des PC) hingegen liegt nur auf etwa -4,5V. Die Flanken sahen auch nicht so schön aus und hatten Ausschläge, fast wie Induktionsspitzen. Da ich eine defekte Ausgangsstufe vermutete, wechselte ich den BC857 (Q100 in http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR910-schalt.jpg). Ergebnis: Schöne Flanken aber immer noch nur -4,5V. Diesmal konnte ich das Kabel als Übeltäter identifizieren. Es hatte intern nur den Schild auf PC-Masse, nicht aber die Signalmasse. Weiter also direkt am Com-Port, ohne Kabel. Jetzt zeigt er wieder nur Müll an, und das auch nur auf 115kbaud. Ich schließe daraus, dass die Zeichen, die er vorher brav zurückgesendet hatte, nur vom eigenen Tx eingekoppelt waren. Da der avr910 ums Verrecken nicht wollte, hab ich halt meinen alten STK200 genommen. Die Zielschaltung war ruck zuck programmiert und funktionierte auch. Also mal den STK200 an den avr910 geklemmt, Spannung drauf, jumper gesetzt und mal uisp gestartet. Er hat tatsächlich den tiny2313 erkannt und auch ausgelesen. Daher gehe ich mal davon aus, dass der SPI-Port des tiny noch geht. Zusammenfassung: - avr910 war verpolt - antwortet auf der Seriellen auf 115kbaud, aber nur Mist - lässt sich mit STK200 auslesen -> SPI ganz - LEDs des avr910 verhalten sich normal, also beim Einschalten zuerst rot, dann kurz rot+grün, dann grün - Q100 getauscht gegen jungfräulichen bc857c - der Vollständigkeit halber noch Q2 getauscht gegen bc847c Hat jemand ne Idee, was ich noch probieren könnte? Kann ein Defekt im Tiny so ein Verhalten bewirken?
Hallo Jens, wann hast Du denn den avr910 gekauft? Die ersten waren meines Wissens noch nicht default auf 115200 Baud eingestellt (ich glaube 19200). Probier mal AVRProg(in AVRStudio enthalten), der sucht sich die Baudrate selbst. Beu avrdude kann auch ein Fehler im avrdude.conf file sein (z.B. Baudrate). >Dann hab ich endlich das Problem mit dem verpolten Stecker behoben, mit >dem Ergebnis, dass er jetzt bei beliebigen Baudraten exakt >zurücksendet, was er auf der Seriellen empfangen hat. Ich denke mal das war bei gebrücktem Rx und Tx am ATTiny ? Probiere mal andere Baudraten. Wenn die LEDs beim Spannungsanlegen blinken, ist der Chip in Ordnung. Hth, Klaus
Welche Baustein willst du mit deinem AVR910 programmieren? Ich habe den gleichen Programmer von besagter Firma und musste feststellen, dass das mit dem Mega8 und Mega16 wunderbar funktioniert, nicht aber mit dem Tiny2313 und ich kann mir nicht erklären wieso... Gruß, André
Hi, hab grad schon mal einen Text getippt und dann aus Versehen auf ein Banner geklickt, also nochmal in kurz: Klaus: >wann hast Du denn den avr910 gekauft? Die ersten waren meines Wissens >noch nicht default auf 115200 Baud eingestellt (ich glaube 19200). >Probier mal AVRProg(in AVRStudio enthalten), der sucht sich die >Baudrate selbst. Beu avrdude kann auch ein Fehler im avrdude.conf file >sein (z.B. Baudrate). Es ist Version 3.9 drauf. Da es auf deinen Webseiten nur 3.8b gibt, nehme ich mal an, dass der shopbetreiber da noch dran gefrickelt hat. Ich probier heut mittag mal die offizielle 3.8b. Wenn die geht, frag ich den Shopbetreiber mal nach nem Listing, um es mit dem ausgelesenen zu vergleichen. Baudrate war auf 115000 eingestellt, ich hatte die aber mal im Terminal auf 19200 eingestellt. Diese Funktion ist soweit ich das überblicke der wesentliche Unterschied zwischen 3.8b und 3.9. Das Menü, das damals kam, kommt aber auch nicht mehr. AVRProg 3.7 meldet einen Fehler. Soll ich noch 4.0 probieren? Hab grad kein AVRStudio. Würde es mir dann am Nachmittag mal runterladen. avrdude.conf hab ich nicht angefasst, lediglich dan default_parallel und default_serial. Deshalb hatte ich damals die Baudrate des Programmers auf avrdude-default 19200 gesetzt. Ob ich das nochmal zurückgesetzt hab, weiß ich nicht. >Ich denke mal das war bei gebrücktem Rx und Tx am ATTiny ? Rx und Tx waren nie gebrückt. Weder am Tiny, noch im Kabel. Ich könnte mir allerdings vorstellen, dass das Kabel einen Bruch hat und das Rx nur eine Einkopplung vom eigenen Tx war. Ist jedenfalls die einzig sinnvolle Erklärung die mir einfällt. >Probiere mal andere Baudraten. Wenn die LEDs beim Spannungsanlegen >blinken, ist der Chip in Ordnung. Standardbaudraten hab ich durch. Letzteres beruhigt mich ;) Andr´e (sorry, mir fehlt ne geeignete locale oder so ;): >Welche Baustein willst du mit deinem AVR910 programmieren? Ich habe den >gleichen Programmer von besagter Firma und musste feststellen, dass das >mit dem Mega8 und Mega16 wunderbar funktioniert, nicht aber mit dem >Tiny2313 und ich kann mir nicht erklären wieso... Das Ziel ist ein Mega8, der den Verpolungszwischenfall überlebt hat und mittlerweile munter die Daten meines SNES-gamepads in USB übersetzt, abgesehen von ein paar Fehlern, die wohl daher rühren, dass ich keinen 12MHz-Quarz mehr hatte, sondern nur noch einen Resonator. Mit welchem Programm hast du programmiert und welche Software-Version hat dein Brenner? Hast du die Notizen auf Klaus' Webseite zum Tiny2313 gelesen? >4) Bei AVRProg statt ATTiny2313 den ATTiny26 einstellen. Für Flash >write und AVRProg getestet. >5) Mit Modifikation in avrdude.conf für avrdude zu verwenden.
Hallo Jens, ich brenne eigentlich mit PonyProg2000, damit ließ sich der Mega8 auch schon einmal brennen. Aber ich habe gerade mal AVRProg verwendet und siehe da, es klappt ganz hervorragend, so wie du es beschrieben hast. Besten Dank für diesen sachdienlichen Tip von dir. Da ist jetzt jemand überglücklich ;) Gruß, André
Hallo Jens, die 3.9er Version ist auch von mir, und der Unterschied ist nur das Umstellen der baudrate per Terminal. Es muß dann aber entweder 19200 oder 115200 sein. Wenn Du Pin 11 (PD6) des Tiny2313 auf Masse legst, sollten fest 19200 Baud eingestellt sein. Wenn es dann nicht geht, brücke mal Rx und Tx am Chip und schau ob wenigstens das Kabel und die Pegelwandlerstufe OK sind (echo). @Andre: ob der ATTiny2313 Unterstützt wird, hängt vom Programm ab, mit dem Du den AVR910 ansprichst. AVRProg kann den Tiny2313 leider nicht. Der AVR910 kann ihn aber schon, z.B. zusammen mit avrdude. Viel Erfolg, Klaus
Hi Klaus! Ich bin litt gestern unter spontaner Lustlosigkeit, am avr910 weiter zu machen, sorry. Pin11 auf Masse macht den Unterschied. Es kommt zwar kein Menü am Terminal (warum auch) aber jetzt kann ich mit yy und xx die LEDs umschalten und uisp findet auch brav den Mega8 in der Zielschaltung. Vorher hab ich noch wie beschrieben Rx und Tx gebrückt (ohne Pin11 auf Masse). 115200 baud: "k" kam zurück, fast alle anderen Buchstaben provozierten den Tiny wohl zu einer Antwort, die dann durch die Brücke unendlich wiederholt wurde. 19200 baud: alle Tasten, die ich probiert habe provozierten o.g. Unendlich-Schleife. 9600 baud: Für jeden Buchstaben kam was zurück, was allerdings dem ursprünglichen Buchstaben nicht mehr sehr ähnlich sah, zb für "k" mal "e", mal "i" oder aber auch "k" Dann hab ich wie gesagt Pin11 auf Masse gelegt. Komische Zeichen aber eben auch bei yy und xx das erwartete Wechseln der LEDs. Also vom Kabel ab und ran an die Linux-Box und siehe da es funktioniert soweit einwandfrei. Danke vielmals für den Tip! Mein Fazit wäre jetzt, dass das Kabel wohl nen Knacks hat aber unabhängig davon auch der Tiny nicht ging, weil ich es ja auch ohne Kabel mit allen Baudraten durchexerziert hatte. Jetzt interessiert mich natürlich, wie dieser Fehler provoziert sein könnte. Kann das Eeprom bei ungünstigen Spannungseinbrüchen oder etwa durch die Verpolung der Versorgungsspannung korrumpiert worden sein und deshalb ein unsinniger Wert für die Baudrateneinstellung drin gestanden haben?
Hallo Jens, ich denke Deine Vermutung mit dem korrupten eprom wird stimmen. (Du kannst das eeprom es ja mal mit Ponyprog auslesen, entscheidend ist die eeprom Adresse 1 dort muß entweder 3 oder 23 (dez) drinstehen. Wenn es einanderer Wert ist, stimmt was nicht. Wenn Du mit Pin 11 gegen Masse mal den Befehl -0 eingibst, müsste wieder 115200 Baud geschrieben werden. (mit -1 gehts wieder auf 19200) Viel Erfolg, Klaus
Hallo Klaus, na dann lass ich dich mal mit dem Eeprom nicht zappeln. $ uisp -dprog=stk200 --download --segment=eeprom Atmel AVR ATtiny2313 is found. Downloading: eeprom S0090000656570726F6D6E S1130000FF09FFFFFFFFFFFFFFFFFFFFEFFFFFFF02 S1130010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC S1130020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC S1130030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC S1130040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC S1130050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC S1130060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C S1130070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C S5030008F4 S9030000FC Das ist der erste Versuch, also seit dem Zwischenfall noch nichts geändert. Auf Adresse 1d steht also 09h, welches ungültig ist. Außerdem steht auf 13d EFh Mit Pin11 auf Masse sagte er dann bei 19200 Baud zunächst "fixed by Jumper". Wenn man ihn mit Jumper startet und den im Betrieb entfernt, lässt er sich einwandfrei einstellen. Also hab ich ihn per -0 auf 115200 Baud gestellt. Danach Ist das Eeprom schön auf FFh. Allerdings steht auch an Adresse 1d FFh. Also nochmal an die Serielle, diesmal natürlich mit 115200 Baud -> geht. Wieder zurück gestellt auf 19200 und wieder auslesen: Jetzt steht in Adresse 1d 17h=23d Spaßeshalber wieder auf 115200 umgestellt und alles ist wieder FFh. Also: - Das Programm stellt Adresse 1d nicht auf 3d, sondern auf 255d für 115200 Baud. - Mein Eeprom war an 2 Stellen verstellt, warum auch immer. Es ist aber immer noch beschreibbar. - Das Programm hat keinen Sicherheits-Check, ob der Inhalt von 1d auch Sinn macht ;) Ich nehme mal schwer an, dass nicht das Programm diese beiden veränderten Bytes ins Eeprom geschrieben hat. AVRs scheinen da teilweise sensibler als zB PICs zu sein. Hab zwar nicht sehr lang mit PICs gearbeitet aber da hab ich sowas nie gehört, bei AVRs hört man sowas öfter.. (Bitte keine "Welcher µC ist besser"-Diskussion)
Blödsinn mit (häufig) zufällig veränderten Bytes im EEPROM bei AVRs! Das größte Problem an der Technik liegt meist zwischen den Ohren des Anwenders ;-) Anstelle des Threaderöffners wäre ich längst beim nächstgünstigsten Internetshop vorbeigeschlendert und hätte mir den Original AVR-ISP nebst funktionierender Software besorgt, anstatt mir Tage und Nächte mit Möchtegernprogrammiergeräten um die Ohren zu hauen, die doch nicht gehen.
TravelRec. wrote: > Blödsinn mit (häufig) zufällig veränderten Bytes im EEPROM bei AVRs! Das > größte Problem an der Technik liegt meist zwischen den Ohren des > Anwenders ;-) Anstelle des Threaderöffners wäre ich längst beim > nächstgünstigsten Internetshop vorbeigeschlendert und hätte mir den > Original AVR-ISP nebst funktionierender Software besorgt, anstatt mir > Tage und Nächte mit Möchtegernprogrammiergeräten um die Ohren zu hauen, > die doch nicht gehen. Klar hätt ich zum nächsten Laden gehen können, der nen AVR-ISP hat. Das wäre in meinem Fall Conrad in Saarbrücken, 20km entfernt und mit schlechten Parkmöglichkeiten. Die haben allerdings auch nur wahlweise STK500 für 115 Euro oder JTAG ICE für 450 Euro. Also Internetbestellung.. Da gibt's natürlich den AVR-ISP. Der kostet allerdings im Original 40 Euro plus Versand. Den avr910, der auch quasi-offiziell von Atmel unterstützt wird (schließlich kommt die AN von denen), kostet mich nur die Hälfte und funktioniert im Normalfall genauso gut. Ich bin Student und habe die Kohle im Moment so gar nicht dicke, da nehm ich mir doch raus, selbst zu entscheiden, wie viel ich für nen AVR-Brenner ausgebe. Dem Problem zwischen den Ohren des Anwenders stimm ich voll und ganz zu. Wahrscheinlich hätte es diesen thread nie gegeben, wenn ich nicht zu doof gewesen wäre, nen mega8 richtig an den avr910 anzuklemmen. Dass sich bei AVRs im normalen Betrieb öfter mal was verstellt hab ich auch nicht gesagt, nur dass sie empfindlicher auf Fehlbedienung reagieren als andere Controller, mit denen ich in die Welt der Mikrocontroller eingestiegen bin (also wohl eher mehr Fehler gemacht habe als jetzt). Auch dem zweiten Teil des letzten Satzes stimm ich zu. Ich hatte vorher wie gesagt nur einen STK200 und damit kann man sich wirklich manche Nacht um die Ohren hauen. Funktionierende Programme gibt es allerdings für den avr910 genug, von avrdude über uisp bis hin zu AVR Prog (AVR Studio) ist da denk ich für jeden Geschmack etwas dabei..
Hallo Jens, freut mich, dass es jetzt klappt. In der tat prüft das Programm auf Inhalt 0xFF -> default Baudrate, oder übernimmt den Inhalt des eeProms. Dies um auch andere Baudraten einfach zu ermöglichen. Im eeprom soll der N Wert der seriellen Schnisttstelle stehen. Wenn der Inhalt nicht stimmt, hilft der Pin 11 weiter... Ich vermute mal, das der BOD (brown out detection) Level nicht aktiviert ist. Dann kann ein falscher eeprom Eintrag passieren (laut Atmel App Note). Ich werde das mal an die Verkäufer weitergeben. Viele Grüße, Klaus
Klaus Leidinger wrote: > die 3.9er Version ist auch von mir, und der Unterschied ist nur das > Umstellen der baudrate per Terminal. > Es muß dann aber entweder 19200 oder 115200 sein. Hallo Klaus, ist es möglich, dass ich die V3.9 bekommen kann? Gruß Holger
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.