Hi, Ich wollte den ATMega1284p über nen 16Mhz Quarz als clock versorgen. Ich habe die lfuse auf 0xC0 gesetzt. Offensichtlich war das nicht richtig, denn ich kann den Chip nun nicht mehr programmieren. Den Quarz habe ich schon erfolgreich bei nem ATMea328p eingesetzt. Was habe ich falsch gemacht und was muss ich nun tun um wieder auf den chip zugreifen zu können?
Quarz weg, und einen Takt von extern einspeisen. Oder eben einen ca 500kHz Quarz dran bauen.
Arduino F. schrieb: > Quarz weg, und einen Takt von extern einspeisen. > Oder eben einen ca 500kHz Quarz dran bauen. Was meinst du mit Quarz weg, und einen Takt von extern einspeisen? Wieso 500khz Quarz? ich dachte mit der lFuse 0xC0 hätte ich den MC so eingestellt dass er eine beliebige Frequenz eines Quarzes erwartet.
Z.B. Max schrieb: > ich dachte mit der lFuse 0xC0 hätte ich den MC so eingestellt dass er > eine beliebige Frequenz eines Quarzes erwartet. 0.4 bis 0.9 MHz ist keinesfalls beliebig. Siehe: https://www.engbedded.com/fusecalc/ Oder eben im Datenblatt nachschauen. Z.B. Max schrieb: > Was meinst du mit Quarz weg, und einen Takt von extern einspeisen? Was verstehst du an den Worten nicht? Dein Oszillator ist kaputt(konfiguriert) Also brachst du einen Takt von extern. Alternativ: Ein HVPP Programmer
:
Bearbeitet durch User
Arduino F. schrieb: > Z.B. Max schrieb: >> ich dachte mit der lFuse 0xC0 hätte ich den MC so eingestellt dass er >> eine beliebige Frequenz eines Quarzes erwartet. > > 0.4 bis 0.9 MHz ist keinesfalls beliebig. > > Siehe: https://www.engbedded.com/fusecalc/ > Oder eben im Datenblatt nachschauen. den Fuse calculator habe ich benutzt. Wo ließt du da 0,4 - 0,9 Mhz? ich habe im dropDown das ausgewählt
1 | Ext. Clock; Start-up time: 6 CK + 0 ms; [CKSEL=0000 SUT=00] |
Z.B. Max schrieb: > ich habe im dropDown das ausgewähltExt. Clock; Start-up time: 6 CK + 0 > ms; [CKSEL=0000 SUT=00] Stimmt, du hast Wahr! (wohl verklickt) Und doch: Arduino F. schrieb: > Dein Oszillator ist kaputt(konfiguriert) > Also brachst du einen Takt von extern. Denn ein externer Oszillator, den du ja konfiguriert hast, ist kein Quarz. Da kann ein Quarz drin stecken, ist aber keiner. Ein Quarz wird in dem Menü Crystal genannt Du möchtest vermutlich einen ext. Crystal Oszillator mit 8.0- MHz
:
Bearbeitet durch User
ok, ich habe diesen Programmierer https://cdn-reichelt.de/documents/datenblatt/A300/DIAMEX-PROG-S2.pdf Er scheint ein Taktsignal bereitzustellen. Also habe ich den Quarz entfernt und das Taktsignal an XTAL1 angeschlossen. Leider immer noch keine Reaktion vom Chip.
:
Bearbeitet durch User
Wie kann ich denn am einfachsten ein Taktsignal erstellen? Muss das eine gewisse Frequenz einhalten? Und der Atmega1284p erwartet es am Pin XTAL 1 ?
Mit einem Arduino? Z.B. Max schrieb: > Muss das eine > gewisse Frequenz einhalten? Nicht wirklich... Mindestens ein Xfaches des ISP Taktes. Siehe Datenblatt.
:
Bearbeitet durch User
Arduino F. schrieb: > Mit einem Arduino? Arduino Atmega328P @16MHz, 1MHz-Rechteck an PB5 (D13, LED):
1 | const uint8_t PBVAL = 1<<PORTB5; |
2 | |
3 | void setup () { |
4 | DDRB = PBVAL; |
5 | PORTB = 0; |
6 | }
|
7 | |
8 | void loop () { |
9 | noInterrupts(); |
10 | for (;;) { |
11 | PORTB = PBVAL; // OUT: One cycle at 16Mhz: 62.5 ns |
12 | __asm__("NOP"); // NOP: One cycle, makes 125ns |
13 | __asm__("NOP"); |
14 | __asm__("NOP"); // NOP: 250ns |
15 | __asm__("NOP"); |
16 | __asm__("NOP"); |
17 | __asm__("NOP"); |
18 | __asm__("NOP"); // NOP: 500ns |
19 | PORTB = 0; // OUT: One cycle at 16Mhz: 62.5 ns |
20 | __asm__("NOP"); // NOP: One cycle, makes 125ns |
21 | __asm__("NOP"); |
22 | __asm__("NOP"); // NOP: 250ns |
23 | __asm__("NOP"); |
24 | __asm__("NOP"); |
25 | } // Loop back: RJMP 2 cycles, 500ns |
26 | }
|
LG, Sebastian
Z.B. Max schrieb: > das Taktsignal an XTAL1 angeschlossen. > Leider immer noch keine Reaktion vom Chip. > Muss das eine gewisse Frequenz einhalten? Hast du bedacht, dass die CPU Taktfrequenz mindestens 4x so schnell sein muss, wie die ISP Kommunikation? > Wie kann ich denn am einfachsten ein Taktsignal erstellen? Mit einem Astabilen Multivibrator aus Logikgattern. Oder mit einem Programm auf einem anderen Mikrocontroller. Oder mit einem NE555. Oder du kaufst einen fertigen Quarz-Oszillator. > Und der Atmega1284p erwartet es am Pin XTAL 1 ? Ja. Vielleicht hilft dir mein Artikel zum Thema: http://stefanfrings.de/avr_verfused/
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.