Blöderweise habe ich gestern die Taktquelle auf meinem neu gekauften A tmega 88 auf Low-Freq. Crystal gestellt. MMn sollte sich der µC also über XTAL1 extern takten lassen und kann anschließend programmiert werden. Also habe ich auf einem A tmega 8 ein entsprechendes Programm geschrieben. Dieses arbeitet vier Takte lang in Dauerschleife und toggelt den PORTC. Der A tmega 8 arbeitet dabei mit 8 MHz. Trotzdem lässt sich der A tmega 88 nicht über ISP ansprechen :( Hier noch das Programm auf dem A tmega 8: [asm] ldi r16, 0xFF out DDRC, r16 ldi r17, 0x00 ende: out PORTC, r16 out PORTC, r17 rjmp ende [/asm]
> MMn sollte sich der µC also über XTAL1 extern takten lassen
Nein, der Takt wird über XTAL2 zugeführt.
Ist auch falsch. Takt gehört an XTAL1. Wenn du Low-Freq. Crystal einstellst, dann solltest du auch einen Low-Freq. Crystal anschließen. Ein Tipp: 8MHz sind nicht Low-Freq. Probier's mal mit einem Uhrenquarz (32768Hz) oder lege einen externen Takt an, um die Fuses richtig einzustellen.
:
Bearbeitet durch User
Seltsam. Die Frequenz beträgt ja 8 MHz / 4 = 2.0 MHz, SPI darf also max. 500 kHz sein. Vielleicht mal das Tastverhältnis auf 0.5 bringen durch ein Einfügen von rjmp pc+1 zwischen den beiden 'out', führt zu 1.33 MHz, SPI dann kleiner als 330 kHz wählen. Wenn der ATmega8 nicht mit Quarz läuft, zur Sicherheit alles -10 %.
Oh, jetzt habe ich deine herangehensweise erst verstanden. Setzte den Port auch mal auf Output. Vielleicht reichen die Pullups nicht aus.
> Ist auch falsch. Takt gehört an XTAL1.
Irrtum. Das gilt nicht für die Einstellung low frequency crystal.
Vergesst meine Antworten heute, bin irgendwie blind Oo S. Landolt schrieb: >> Ist auch falsch. Takt gehört an XTAL1. > > Irrtum. Das gilt nicht für die Einstellung low frequency crystal. Mein Datenblatt sagt, dass der Quarz wie jeder andere auch angeschlossen gehört, an beide XTALs.
> Mein Datenblatt sagt...
Meines auch, aber es geht doch jetzt um die Zuführung eines Hilfstaktes,
wenn auf low frequency crystal eingestellt wurde, ein Quarz mit 32 KiHz
aber nicht verfügbar ist.
Ok, dazu steht nichts drin, dann kann das natürlich sein :) Scheint das Problem aber nicht zu lösen.
Falls beim ATmega88 CKDIV8 programmiert ist, muss die SPI-Frequenz natürlich noch durch 8 geteilt werden. Vielleicht liegt es daran.
Moin. Wenn Low Frequency Crystal gefused ist, will der Atmega nen Uhrenquarz anregen, aber keinen externen Takt. Das wird nix. Da muss einfach so ein 32 kHz-Teil dran. MfG Micha
> Das wird nix.
Irrtum. Das wird sehr wohl etwas, probatum est.
Das mit CKDIV8 ist in der Tat eine sehr gute Idee, würde ich sofort ausprobieren. Stell einfach mal dei SPI-Frequenz deutlich tiefer ein.
Ich benutze den MySmartUSB Light, der steuert seine Frequenz ja eigentlich automatisch. Jetzt habe ich noch zweimal nop zwischen den PORT-Ausgaben eingefügt, also 50%-Duty-Cycle. Ändert aber nichts... Auf dem Atmega88 ist ja auch noch ein Programm, welches eine LED per PWM dimmt, man sollte also eigentlich was sehen, wenn der µC läuft...
So, ich habe nochmal ein wenig gemessen: Der Atmega8 ("Taktgeber") zieht etwa 14 mA. Am PORTC liegen je nach Pin zwischen 1,98 und 2,05 V an. Auf Ausgang ist er; eine angeschlossene LED leuchtet kräftig. Der Atmega88 hat etwa 4 mA Stromverbrauch, dieser sinkt jedoch alle ca. zwei Sekunden auf 3 mA.
Was immer du da misst, es ist Mist, aber egal. Gib dem ATmega88 seine ~32kHz. Wenn du sicher gehen willst, dann einfach über je einen Widerstand ( 470R solltens tun ) an XTAL1 und XTAL2, aber ich meine auch XTAL1 ist der richtige. Und dann mit der niedrigsten SPI-Frequenz mal versuchen die DevID zu lesen. Klappt das nicht, dann hast du ihn zu 99% "verfused" und dabei die ISP-Schnittstelle deaktiviert. Dann hilft nur noch HV-Programming. Google ist dein Freund!
> ich meine auch XTAL1 ist der richtige Wie wäre es, wenn solche Meinung mal durch Ausprobieren untermauert würde? Ich bekomme hier an XTAL1 nur Frequenzen bis etwa 70 kHz durch, an XTAL2 jedoch problemlos z.B. 2 MHz. > Gib dem ATmega88 seine ~32kHz ... an XTAL1 Das würde bei gesetzter CKDIV8 heißen, dass der MySmartUSB Light bis auf 1.0 kHz heruntergehen müsste - kann er? Mit der jetzigen Konstruktion, 1.33 MHz an XTAL2, reichen rund 41.6 kHz. Allerdings habe ich auch den Eindruck, dass es die Einstellung low frequency crystal nicht oder nicht alleine ist.
Zitat myAVR > Der mySmartUSB light kann nur bis auf 52910 Baud (~211 kHz) > herunter gehen Aha. Falls also auf dem ATmega88 CKDIV8 gesetzt ist, bräuchte man einen Takt über 1.7 MHz, d.h. auf dem ATmega8 reichen die 8 MHz nicht, nötig wäre ein Quarz über 10 MHz. Alternativ könnte man den ATmega8 mit out PORTC, r16 out PORTC, r17 vollpacken plus Rücksprung vom Ende an den Anfang und mehrmals versuchen, die L-fuse des 88 umzustellen. Wobei allerdings dieses > Auf dem Atmega88 ist ja auch noch ein Programm, welches > eine LED per PWM dimmt, man sollte also eigentlich was > sehen, wenn der µC läuft... unklar bleibt.
Ich habs eben noch mal versucht. Immerhin, ein erster Erfolg: Ich habe jetzt ein Signal mit 125kHz erzeugt (Atmega8 runter auf 1 MHz und noch zweimal nop eingefügt) und die LED am Atmega88 blitzt wieder. Aber SSEEEEHHHR langsam. Scheinbar ist also CKDIV8 gesetzt.
Hmm, sieht schlecht aus für meinen Programmer: Der Atmega88 lässt sich mit einem Signal bis zu 333kHz takten. Mit 400 läuft er nicht mehr.
> Der Atmega88 lässt sich mit einem Signal bis zu 333kHz takten. Mit 400 > läuft er nicht mehr. Nochmal: steht der ATmega88 auf 'low frequency crystal', dann muss der Takt auf XTAL2 angeschlossen werden, sonst auf XTAL1. Da aber die Einstellung nicht klar ist, sollte sowohl XTAL1 als auch XTAL2 probiert werden, ca. 100 Ohm vorschalten. Und das klappt dann bis in den MHz-Bereich. Zur Takterzeugung auf dem ATmega8: bei 8 MHz kann er bis zu 4 MHz liefern, entweder mit der von mir beschriebenen Hauruck-Methode, oder eleganter, aber etwas aufwändiger, per Timer-CTC-OCn. Am einfachsten wäre ein neuer ATmega88, aber mir ginge es hier ums Prinzip.
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.