Hallo an alle, nachdem ich in LunaAVR meinen ATTiny 13 programmiert habe, wird er von AVRDude nicht mehr erkannt. Folgend fängt mein Programm an: avr.device = attiny13 avr.stack = 7 SoftUart.PinRXD = PortB.1 SoftUart.PinTXD = PortB.2 SoftUart.Baud = 1200 #define Oscillator as PortB.4 Oscillator = 1 Oscillator.mode = output,high #define LED as PortB.3 LED = 1 LED.mode = output,high Der uC macht, was er bis dahin machen soll, allerdings lässt er sich nicht mehr erkennen, garnichts. Dabei bin ich noch garnicht fertig ;-). Ein zweiter hat sich genau so verhalten. Es wird kein externer Quarz benutzt. Als Programmer nutze ich diesen hier: http://www.simpleavr.com/avr/vusbtiny Liegt es vielleicht daran? Ich bedanke mich für eure Zeit und Antworten. Gruß sonicfan
Hallo Holger, nein, das Ding tut wie gesagt ohne Quarz. Habe mit einem HV-Programmer die Fuses auf Urzustand gesetzt, trotzdem komme ich nicht drauf. Gruß sonicfan
> Habe mit einem HV-Programmer die Fuses auf Urzustand gesetztf
Wie sind die Fuses denn jetzt ∗genau∗?
Hallo nochmal, die Fuses sind auf Standardwerten. Ich sagte ja bereits, der bisherige Programmablauf tut auch. Ich habe noch was dazu gemacht und kann den Chip nicht mehr erkennen. Gruß sonicfan
In vielen "Fällen" sind abgerissene Programmerleitungen, Kurzschlüsse zwischen den Drähten oder defekte Lötstellen, die beim Bewegen der Schaltung entstehen, die Hauptursache solchen Verhaltens. Gruß
Die Signatur des Chips per ISP zu lesen erfordert nicht nur, dass der atiny13 betriebsfähig ist, sondern auch, dass die ISP-Signale zwischen atiny und progger ungestört ausgetauscht werden können. Zunächst mal sollte man die Leitungen der ISP-Schnittstelle (B0,B1,B2,B5) beim Leseversuch der Signatur von Fremdbeschaltung freihalten. Wegen der Zeilen mit "UART" und "LED" im Programm vermute ich, dass das nicht der Fall ist. (Schaltbild zeigen!)
sonicfan schrieb: > Habe mit einem HV-Programmer > die Fuses auf Urzustand gesetzt Und der HV-Programmer konnte ihn erkennen, d.h. die Signatur stimmte?
Zum Programm, es enthält Fehler. Hier ist eine korrigierte Version
1 | avr.clock = 1000000 |
2 | avr.device = attiny13 |
3 | avr.stack = 8 |
4 | |
5 | #if 0 ' unbenutzt
|
6 | SoftUart.PinRXD = PortB.1
|
7 | SoftUart.PinTXD = PortB.2
|
8 | SoftUart.Baud = 1200
|
9 | #endif
|
10 | |
11 | #define Oscillator as PortB.4
|
12 | |
13 | Oscillator.mode = output,high |
14 | |
15 | #define LED as PortB.3
|
16 | LED.mode = output,high |
17 | |
18 | halt() |
Hallo an alle, ich programmiere das Ding innerhalb des oben gezeigten Programmers, also nicht in der Schaltung, sondern komplett frei davon. Ob der HV-Programmer es retten konnte kann ich nur beurteilen, da ich einen verfust hatte. Den hab ich dann auf Standard gesetzt, mit meinem Hex bebrannt. Der Code läuft dann, aber drauf komme ich nicht mehr. Als Fuse-Resetter habe ich das hier verwendet: http://www.simpleavr.com/avr/hvsp-fuse-resetter Das hat funktioniert. Ich verstehe absolut nicht was das Verhalten soll... liegts daran dass ich noch keine Oszillatorfrequenz definiert habe? Einen habe ich noch da, aber den will ich nicht auch noch verballern. Gruß sonicfan
Uwe S. schrieb: > Zum Programm, es enthält Fehler. Hallo Uwe, inwiefern wirken sich diese Portbelegungen auf meine Problemstellung aus? Das SoftUART wird später im Programmcode noch genutzt, es folgt auf diese Initialisierungen eine do Loop. Gruß von sonicfan
Hallo sonicfan, dann solltest Du uns den realen Code zeigen. Ich sehe, wie die anderen auch, sonst keiner Probleme. Mit einem Reset muss der attiny per ISP erreichbar sein. Evtl. ist dein Programmer mit seiner Versorgungsspannung das Problem.
Hallo Uwe, anbei der bislang unverändert auf dem Prozessor laufende Code. Es funktioniert auch soweit. Mit später bezüglich des SoftUART meinte ich, dass ich genau darauf nun eingehen wollte, aber nicht mehr flashen kann. Gruß & Danke sonicfan avr.device = attiny13 avr.stack = 7 SoftUart.PinRXD = PortB.1 SoftUart.PinTXD = PortB.2 SoftUart.Baud = 1200 #define Oscillator as PortB.4 Oscillator = 1 Oscillator.mode = output,high #define LED as PortB.3 LED = 1 LED.mode = output,high Dim Dit as Int8 Dit = 13 Dim Morse as Long Dim MO as Boolean Dim Length as Int8 MO = true Morse = 1033 Length = 4 Dim I as Int8 Dim Temp as Long Dim Waittime as UInt16 Waittime = 0 Dim J as UInt16 For J=0 to Waittime wait 1 Next do if MO then Key(2, true) Key(3, true) end if Temp = Morse For I=0 to Length - 1 if not Temp mod 10 = 0 then if I mod 2 = 0 then Key(Temp mod 10, true) else Key(Temp mod 10, false) end if end if Temp = Temp / 10 Next waitms Dit * 4 loop procedure Key(times as Int8, stroke as boolean) Dim i as Int8 For i=1 to times Oscillator.toggle LED.toggle waitms Dit if stroke then waitms Dit * 2 endif Oscillator.toggle LED.toggle waitms Dit Next waitms Dit * 2 endproc
Hast du einen Kondensator am Reset Pin? Wenn ja, wie groß? Manche Programmer können große Kondensatoren nicht schnell genug entladen. In diesen Fall hilft es, den Reset Pin mittels Taster oder Brücke dauerhaft zu aktivieren.
Danke schön. eine CW Coder - nett habe ich auch mal veröffentlicht. einige Dinge sind unschön und evtl. so nicht gewollt. Variable von Typ int8 diese sind mit 8 Bit Vorzeichen, ist dir das bewusst ? Wie lange läuft diese Schleife ?
1 | For J=0 to Waittime |
2 | wait 1 |
3 | Next
|
wenn du den Reset_Pin umschaltest und als IO nutzt ist die ISP nicht mehr erreichbar siehe Datenblatt dann geht nur mehr JTag wenn du den auch ausschaltest bist du draußen! for ever
Winfried J. schrieb: > wenn du den Reset_Pin umschaltest und als IO nutzt ist die ISP nicht > mehr erreichbar siehe Datenblatt dann geht nur mehr JTag wenn du den > auch ausschaltest bist du draußen! for ever JTag bei einem attiny13 - geht'S noch ? PB5 wird doch gar nicht angefasst, also am Ziel vorbei geraten.
Hallo, wie stefanus schon vermutet kann es an der Außenbeschaltung des attiny liegen. Zeig uns bitte einige Bilder vom realen Aufbau.
Hallo Uwe - ich programmiere das Teil direkt in dem oben gezeigten Programmer. Der Schaltplan ist auf der Webseite gezeigt, direkt dort habe ich den AVR angeschlossen ohne weitere Periepherie. Reichen die 5V USB nicht? Liegt es nicht oben an der fehlenden Oszillatorangabe. Die Schleife am Anfang soll mittels UART in den EEProm gespeichert werden können. Noch bin ich nicht soweit. Das dient als Vorlauf, bis der Sender anfängt zu senden. Bitte sieh dir kurz den Link oben zu dem Programmer an. Winfried: Wenn man den Threadverlauf liest, wird man lesen können, dass ich einen Fuse Resetter habe, mit dem ich jedes mal, wenn ich den RST als IO nutze, diesen zurücksetzen kann. Soviel kannst du mir zutrauen ;-) . Gruß sonicfan
Sorry, sich aussperren und nicht wissen wie wieder reinkommen ist üblicherweise eine Anfängernummer. verzeih das ich den Floß übersprungen habe zumal du zum gegenwärtigen zustand derFuse nur wage sags du habest sie in den Standardzustand gebraucht. peters frage hingegen hast du nicht beantwortet. Für eine nicht funktionierende ISP gibt es außer HW_Problemen und Fuse_Problemen sonst nur noch Taktprobleme als mögliche Ursachen. Wenn du so toll bist habe ich fertig. Namaste
:
Bearbeitet durch User
sonicfan schrieb: > funktioniert auch soweit. Mit später bezüglich des SoftUART meinte ich, > dass ich genau darauf nun eingehen wollte, aber nicht mehr flashen kann. Was meinst Du damit im Detail, gibt es vielleicht Fehlermeldungen usw. Den Hinweis von stefanus hast Du gelesen? Zeig uns Bilder vom Deinem realen Aufbau und keinen Link. > #define Oscillator as PortB.4 > Oscillator = 1 > Oscillator.mode = output,high > #define LED as PortB.3 > LED = 1 > LED.mode = output,high Sollt man hier nicht zuerst konfigurieren bevor man einem Wert zuweist oder übersiche ich da etwas. IMHO kannst Du Dir die Zeilen mit LED = 1 sparen. Aber dieser Code läuft ja?
Hallo Klaus, die Hinweise mit dem Kondensator habe ich gelesen - ich habe sogar schon per Kabelbrücke den RST auf GND gezogen vor dem Flashvorgang. Tut trotzdem nicht. Meine Programmer habe ich 1:1 nach dem Schaltplan aus dem Link aufgebaut. Ich habe ihn auf Lochraster und damit unten nichts kaputt geht mit Epoxid eingegossen - darum kann ich selbst nichts vorweisen. Bitte entschuldigt dies. Gruß sonicfan
Hallo,
1 | #define LED as PortB.3
|
2 | LED = 1 |
3 | LED.mode = output,high |
setzt den Pullup des Eingangs von PortB3 und wird dann auf Ausgang geschaltet und das Bit B3 gesetzt. Siehe Datenblatt des atTiny13 S.50f 10.2.3 Switching Between Input and Output
Hallo an alle, also ich habe eine 5V Spannungsquelle versucht und auch RST auf dauerhaft GND. Der AVR lässt sich nicht ansprechen. Ein frischer AVR wird anstandslos gefunden. Was kann das sein? Die Fuses kann ich ausschließen. Gruß sonicfan
Hallo Klaus, sorry, überlesen bzw irgendwie vergessen. rc=-1 Double Check Connections and try again. Gehe drauf mit avrdude -c usbtiny -p t13 Die -B Option habe ich mit 10, 20, 60 usw. schon versucht. Ändert nichts. Gruß sonicfan
Hallo sonicfan, dein avrdude Aufruf ist nicht vollständig, der Programmer und der Port/ Zugriff auf diesen muss angegeben werden. Erst jetzt ist die Geschwindigkeit auf max. 250kHz zu setzen.
Hallo Uwe, mit -B 32 habe ich leider keinen Erfolg - fehlt sonst noch was? Habe jetzt den letzten angebrochen und mal alle fragwürdigen Codezeilen entfernt - an irgendwas muss es ja liegen! Gruß sonicfan
Hallo, Du bist ja WinOS User, diese Programme geben Dir auf der Commandozeile ihre Parameter preis. Aber auch im Netz findet man sie, evtl. nicht hast Du eine andere Version. http://www.nongnu.org/avrdude/user-manual/avrdude_4.html Dann Vergleiche das mit den von mir benannten fehlenden Parametern. OK?
Mangels Bilder noch ein paar Schüsse ins Blaue: Sitzt Du den Attiny13 direkt auf den Attiny45 des Programmers? Die Pins nach Anleitung isoliert? Spendier dem Teil noch einen richtigen Abblockkondensator 100nF DIREKT an den Pins VCC und GND.
Übrigens hat der interne RC-Oszillator des ATTiny 13 eine Grundfrequenz von 9,6MHz und nicht 8MHz. Da die CLKDIV8 Fuse im Grundzustand gesetzt ist, bleibt ein Systemtakt von 1,2MHz.
Hallo und guten Morgen, ich habe mir eine extra Platine gelötet für alle möglichen Größen, die ich über das Kabel anschließe. Ich habe es jetzt geschafft, die zwei ausgesperrten ATTiny wiederzubeleben. Dazu habe ich nochmal die Brücke von GND nach RST gemacht. Wenn ich den Programmer einstecke, geht es so an die 10 Sekunden, dass ich Zugriff habe, danach erstmal nicht mehr und dann nur ganz sporadisch. Keine Ahnung ob es an meinem Programm liegt, aber damit kann ich leben. Die Sache mit dem Abblockkondensator werde ich berücksichtigen. Vielen Dank für eure Vorschläge und Hilfen sonicfan
Das klingt schwer nach Deaktivierung des Reset_Pins zur Laufzeit bei Powerup ist dann wieder Alles normal. Könnte ein Fehler auf dem Stack sein der zum Überlauf und damit unbestimmten Programmablauf führt. Eventuell werden SFR überschrieben oder MCU Kontrollbits da würde ich mal das Hexfile aus einem solchen ATiny13 hohlen um es durch den AVR Studio Simulator. das scheint ja eine Wundertüte zu sein. oder mal gleich das Hexfile durch den Simulator laufen lassen. Da kann man im Einzelschritt den Bits in den Registern bei der Arbeit zusehen oder auch mal etwas Vorspulen. Wenn der Fehler am Simulator reproduzierbar ist, dann ist der Hund im Programm sonst in der HW oder dem Programmiertiming zu suchen. Was passiert wenn du den Rest dauerhaft auf low legst ( Reset gedrückt halten / Resetpin nicht in die Programmierfassung stecken und mit direkt GND verbinden)? Dann sollte das Programm nicht starten können und du endlos Zeit haben da der Programmiermodus nicht verlassen werden kann.
Den Reset-Pin kann man auchfach mit Gnd verbinden, während der Programmer angeschlossen ist, denn die entsprechende Leitung des Programmer ist Open-Collector (zumindest sollte es so sein). Ansonsten: Kurzschluss an einem einzelnen Pin schadet keinem AVR. Der Programmer besteht doch aus einem AVR, oder nicht?
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.