Guten Abend allerseits. Das mein erster Post gleich eine Frage ist (hoffentlich nichts zu dämliches), bitte ich zu verzeihen. Ich werde das Forum auch nicht nur als Fragekasten missbrauchen, versprochen ;-) Zuerst sei gesagt, dass ich leider keinerlei Erfahrung mit Mikrokontrollern habe. Ich habe schon zwar ein paar Schaltungen aufgebaut (XBox USB NAND Flasher und PS3 Jailbreak Dongle), da war aber eigentlich schon alles soweit fertig vorgegeben. Aber Platinen entwerfen und ätzen habe ich dabei gelernt. Unklare Ausführungen und eventuell dumme Fragen bitte ich zu entschuldigen, ich habe immer erst versucht, selber zu Suchen und zu Finden. Auch ist meine Beschreibung hier ellenlang, aber nur so gebe ich euch die Möglichkeit, sinnvoll über mein Problem nachzudenken. Mein Problem ist folgendes: Ich möchte eine einfach Uhrenschaltung mit einem ATTiny2313 aufbauen. Ziel ist es, eine Uhr zu haben, die pro Tag nicht 24 sondern 32 Stunden vergehen lässt. Generell soll das ganze ein Replikat der folgenden Vorlage sein: http://blackstrom.derschwarz.de/avr/avr_uhr/index.shtml Ich habe das ganze allerding ohne das ISP-Element gebaut, da ich den µC in einem selbstgebauten Programmer beschreiben wollte. Programmiertechnisch ist das mit den 32 anstatt 24 Stunden kein Problem, ich muss ja nur die Load_timer Konstante ändern (auf ¾ des aktuellen Wertes) und die Stundenzählroutine umschreiben, dass bis 32 hochgezählt wird, nicht nur auf 24. Hab ich noch nicht gemacht, sollte aber kein Problem sein. Ich habe aber momentan ein Problem mit der Schaltung an sich. Ich habe das ganze aufgebaut, und es funktioniert auch, leider nur teilweise. Das Programm (unveränderte 24-Stunden Version) habe ich mit PonyProg (ja, schlecht, ich weiß) auf den µC geladen, kein Problem. Wenn ich den µC in die Schaltung einsetze und eine Spannung anlege, dann wird nichts angezeigt. Drücke ich allerdings einen der Taster zum Einstellen von Stunde bzw. Minute, dann leuchten die 7-Segment-Anzeigen auf und entweder Stunde oder Minute zählen hoch. Flimmert zwar stark, aber funktioniert. Solange bis ich die Taste loslasse, dann sind wieder alle Segmente aus. Fazit bis hier: -Programm scheint auf µC richtig hochgeladen worden zu sein -Strom richtig angeschlossen -Anzeigeelemente richtig angeschlossen (vorher auch überprüft) -Taster richtig angeschlossen => Ergo: Probleme mit dem Quarz Das Problem ist, das ich einen Quarz mit 2 Beinchen habe, keinen Quarzoszillator mit 3 Beinen. Hatte den erst so verwendet wie den Oszillator, also ein Bein an +5V, eins an XTAL1. Dass das nicht funktionieren kann, habe ich schnell herausgefunden. Sollte ja auch kein Problem sein, wenn man diesen zwischen XTAL1 und XTAL2 setzt, dann von jedem Quarzbein jeweils noch einen Kondensator Richtung Grund und gut ist. Testen konnte ich das leider nur mit 100nF Kondensaturen, 22pF wie empfohlen habe ich grade nicht da. Weitere Alternative: Testen mit einem Keramikresonator. Hatte grade noch welche mit 12MHz da, zu schnell aber zum Troubleshooten hoffentlich egal, läuft die Uhr halt drei mal so schnell. Laut Produktdatenblatt das erste Bein an XTAL2 (Input), das zweite an Gnd, das dritte an XTAL1 (Output). => Das gleiche wie mit dem falsch angeschlossenen Quarz Nächster Schritt: Testen, was die Schaltung ohne angeschlossene „Peripherie“ an XTAL1 und XTAL2 tut. Ergebnis: Genau das gleiche wie bisher =>Es muss etwas mit dem Taktgeber nicht stimmen. Weiter nachgelesen, erste Infos zu CKSEL-Werten erhalten. Nachgeschaut, auf dem µC war 0100 eingestellt, also default. Dass er dann ignoriert, was ich an den XTALs veranstalte ist klar. Aber sollte er dann nicht mit dem internen Taktgeber von 8MHz (bzw 1MHz wenn CKDIV8 aktiviert ist) arbeiten? Daher hier meine Frage(n): 1.) Hätte die Schaltung nicht trotzdem mit dem internen Taktgeber funktionieren sollen (Ungenauigkeiten und falsche Taktrate mal außen vorgelassen)? 2.) Enthalten die HEX-Dateien schon Einstellungen für die CKSEL-Werte? (Ich hatte früher schon PICs mit WinPic800 beschrieben, der hatte sich immer alle Einstellungen individuell pro HEX-Datei gemerkt, daher frage ich) 3.) Welche CKSEL-Werte hätte ich setzen sollen, wollte ich das ganze noch mal erst mit dem Keramikresonator bzw. dem Quarz testen? Kann ich leider nicht mehr, habe eine Sache mit den CKSELs ausprobieren wollen, die ich für die richtige gehalten habe, war aber wohl falsch. Komme nun mit dem Programmer nicht mehr in den µC und muss erstmal einen passenden Taktgeber á la Beitrag "Re: External Clock ATTiny26" besorgen). Was habe ich eventuell verbockt, daß die Schaltung zwar teilweise funktioniert, aber nicht ganz? Vielen Dank schon mal für eure Ratschläge.
Christian S. schrieb: > 1.) Hätte die Schaltung nicht trotzdem mit dem internen Taktgeber > funktionieren sollen (Ungenauigkeiten und falsche Taktrate mal außen > vorgelassen)? Ja. Schon allein die Tatsache, dass Du flashen konntest, zeigt, dass Du einen Takt hast. Wenn das Programm trotzdem nicht lief und Flashen + Verify OK war, hilft nur die Suche nach der Ursache, im Programm und in der Hardware. > 2.) Enthalten die HEX-Dateien schon Einstellungen für die CKSEL-Werte? Nein. .hex ist ausschließlich Flash-Inhalt. > 3) 3.) Welche CKSEL-Werte hätte ich setzen sollen Die müsste ich mir auch erst mal aus dem Datenblatt heraussuchen. Versuch's doch erst selbst, und wenn Dir ein Merkmal unklar ist, kannst Du ja gerne nachfragen.
So, wie ich das verstanden habe, läuft der AVR, zumindest bei Tastendruck irgendwie. Ohne irgendeinen verwendbaren Takt, sollte das nicht sein, daher würde ich mal den Quarz ausschließen. Um's erstmal an's Laufen zu bekommen, sollte auch der interne Resonator ausreichen (CKSEL auf 0011 oder 0010 für ca. 4MHz). Das, was du nachbaust war aber für den AT90S2313 entwickelt und nicht für den Tiny2313, gerade bei den Timern gibt es Unterschiede. Wenn du die Software einfach übernommen hast, wird diese die falschen IO-Register beschreiben und nichts funktioniert mehr, wie es soll. Der 90S2313 hatte bspw. nur TCCR0, der Tiny2313 hat TCCR0A+B, das müsste dann wohl angepasst werden.
@Mark: Danke für den Hinweis, das ganze war mir komplett entgangen, da ich AT90S2313 bei Reichelt eingegeben habe, aber als Ergebnis nur der ATTiny2313 kam. Da wird wohl der Hund begraben liegen, denn die Schaltung sollte (bis auf den Quarz) fehlerfrei sein. Wenn ich das Programm neu kompiliere, muss ich dann nur "$regfile" und die Ports passend auf den ATTiny2313 ändern? Andere Chip-Spezifische Variablen/Deklarationen scheint das Programm ja nicht zu haben. Muss mich da dann noch mal was mehr reinlesen, aber danke schonmal ;-)
Gern geschehen. Christian S. schrieb: > Wenn ich das Programm neu kompiliere, muss ich dann nur "$regfile" und > die Ports passend auf den ATTiny2313 ändern? Die Ports dürften geblieben sein, aber die Einstellbits für den Timer sind vermutlich anders, evtl. muss halt noch ein zweites Byte eingestellt werden(aus TCCR0 wird TCCR0A+TCCR0B). Wenn du in den Datenblättern die Angaben zu den Timer-Control-Registern vergleichts, siehst du die Unterschiede.
@Mark: Werde ich mir morgen mal anschauen. Danke nochmal.
Hallo. Es gibt von Atmel eine Application Note zu deinem Fall: http://www.atmel.com/dyn/resources/prod_documents/doc4298.pdf Für dein erstes Projekt bist du schon weit gekommen, also lass den Kopf nicht hängen. Viel Erfolg, Christian
Hallo Ich habe genau diese Schaltung nachgebaut und hatte das gleiche Problem mit dem flackern. ich habe den mit dem programm (myAVR Workpad PLUS Demo) verwendet ist ein gratis programm auf deutsch. Dort musste ich die Fuse seiten und nahm den hacken bei (Divide clock bei 8 internally) den hacken rausnehmen und dan noch den externen Oszillator mit 4MHz anwählen dan gings. Vieleicht ist das bei deinem Programm anderst. Mit welchem Programierst du den? Ich habe auch den ATTiny2313 genommen. hoffe konnte einwenig helfen
@Fabian: Danke für das Aufgreifen des doch schon etwas älteren Threads. Leider stecke ich momentan mitten in einem Umzug, daher habe ich die Bastelei leider etwas zurückstellen müssen. Hast du quasi das komplett gleiche Problem wie ich (also das die Uhr nichts anzeigt, und das starke Flackern beim einstellen der Zeit), oder nur das Flackern (dann permanent)? Ich hatte in Ermangelung weiterer Vorkenntnisse einfach mal mit PonyProg programmiert und hatte mir dazu eine passende Schaltung gebaut. Werde das ganze aber auf jeden Fall nochmal überprüfen sobald ich meinen Bastelkrams wieder beisammen habe. Danke schonmal, werde hier wieder berichten, sobald ich mehr weiß ;-)
hallo bei mir war nur das mit dem Flakern aber das mit dem nichts anzeigen verstehe ich nichts. Ich habe es mit bascom gemacht Pony prog kenne ich leider 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.