Hallo,
Es handelt sich hier um ein selbst erstelltes PCB mit einem fabrikneuen Atmega328P.
Im Prinzip ist es die übliche Grundschaltung, der 328P soll später mit einem 16mhz Quarz laufen.
Dies ist auch verbaut incl. den beiden Kerkos.
Ein 10Poliger ISP Stecker ist natürlich auch drauf.
Wenn ich nun mit den Atmel Studio die Fuses auslesen will, wird kein Connect aufgebaut.
Ein Test mit einem fertigen Atmega RN Board ist erfolgreich, der Programmer funktioniert also.
Ich habe die Spannungsversorgungen des Atmega328P mehrmals geprüft.
Auch die Verbindungen vom Atmega zum ISP Stecker auch mehrmals durchgemessen.
Der Reset Pin des Avr ist mit 10k auf 5V gezogen, sollte passen.
Wenn ich am Quarz einen Frequenzzähler anschliesse, läuft der Oszillator nicht.
Ist das normal - Wenn der Atmega auf internen Oszillator gefused ist ?
Mir gehen so langsam die Ideen aus wo der Fehler liegt.
rudirabbit:
Hallo,
Es handelt sich hier um ein selbst erstelltes PCB mit einem fabrikneuen Atmega328P.
Im Prinzip ist es die übliche Grundschaltung, der 328P soll später mit einem 16mhz Quarz laufen.
Dies ist auch verbaut incl. den beiden Kerkos.
rudirabbit:
Ein 10Poliger ISP Stecker ist natürlich auch drauf.
Warum 10polig? Der hat keinerlei Vorteile gegenüber dem 6poligen.
rudirabbit:
Wenn ich nun mit den Atmel Studio die Fuses auslesen will, wird kein Connect aufgebaut.
Ein Test mit einem fertigen Atmega RN Board ist erfolgreich, der Programmer funktioniert also.
Wie hoch ist dein ISP Clock eingestellt? 125kHz?
rudirabbit:
Ich habe die Spannungsversorgungen des Atmega328P mehrmals geprüft.
Auch die Verbindungen vom Atmega zum ISP Stecker auch mehrmals durchgemessen.
Der Reset Pin des Avr ist mit 10k auf 5V gezogen, sollte passen.
Höert sich soweit passend an.
rudirabbit:
Wenn ich am Quarz einen Frequenzzähler anschliesse, läuft der Oszillator nicht.
Ist das normal - Wenn der Atmega auf internen Oszillator gefused ist ?
Würde behaupten, ohne es getestet zu haben, dass er nicht ohne anläuft.
Im Prinzip ist es die übliche Grundschaltung, der 328P soll später mit einem 16mhz Quarz laufen.
Dies ist auch verbaut incl. den beiden Kerkos.
Für mich ist die Grundschaltung, + an - und - an + und schon kann man damit alles machen
Welchen Kerko haste da dran?
Hier die Grundschaltung, nur 1 Post drunter:
Vom Werk aus hat der Atmega einen Takt von 1Mhz. Interner Osc. läuft zwar mit 8MHz, jedoch sogar die Fuseeinstellung CKDIV8 dafür, dass jeder 8 Takt nur gezählt wird.
ISP Clock auf < 250kHz setzen, Fuses richtig setzen und danach kannst du den ISP Clock bei Bedarf wieder hochsetzen.
Skorpi, dass aber schon ne extended Grundschaltung Für ne Grundschaltung kann vorerst auf der Quarz und auch die Lastkondensatoren weggelassen werden.
sschultewolters Erklärung deckt sich mit meinen Überlegungen. Darum funktioniert es mit dem RN Mega Board weil diese eben auf schon 16mhz ext. gefuzt ist.
Der 328 ist von Werk aus auf den Internen 1Mhz Clock gestellt.
Somit kann meine alte Einstellung nicht funktionieren.
Ich habe aber Bedenken ob mein ext. Oszilator anschwingt wenn ich die Fuses entsprechend setze.
Laut einer Formel wird der Wert der Kerkos mit 2*kapazität des Quarzes -Kapazität der Leiterbahnen berechnet.
Die Kapazität des Quarzes steht im Datenblatt und die Kapazität der Leiterbahnen mit ein paar pF geschätzt komme ich auf 56P Kerkos.
Denke der Wert ist etwas zu groß. Das stellt sich heute Abend heraus wenn ich die Fuses setzte.
Wenn ich danach mit den alten ISP Clock Einstellungen nicht mehr mit dem 328 reden kann weiß ich woran es liegt.
Aber erst mal Danke für den Typ mit den ISP Clock Einstellungen.
Mal sehen was ich heute abend zu berichten habe.
22pF Kerkos für den 16Mhz. Mit 18pF wollte es bei meinen Tests nicht laufen.
Habe immer alles auf die Platine gelötet, da war der Atmega ja auch noch mit 1 Mhz eingestellt.
Danach mit dem ISP den Bootloader gebrannt und die Fuses waren gesetzt.
Ist mein erstes Projekt mit einem Virgin Atmega, alles andere waren entweder Arduinos oder Module von RN.
Daher fehlt mir etwas die Erfahrung wenn es um die Fuses geht.
Jetzt finde ich für den 328 diese Fuses die passen könnten:
den Bootloader brauchst du auch nicht. Man brennt den Bootloader nur um die Fuses zu setzen.
Wenn du das erste mal nach dem der Bootloader gebrannt wurde ein Sketch draufladest (mit ISP!), ist der Bootloader weg.
Eigentlich macht es auch kein Unterschied, ob du den Bootloader hast oder nicht.
Wenn bei dir in der Arduino IDE mit Bootloader 30kb anzeigt, zeigt auch ohne den Bootloader 30kb an.
Kannst dadurch nicht mehr Speicher verwenden.
Wo lag der Fehler? Lediglich am zu hohen ISP Clock?
So ist es, ich hatte gestern eher einen Fehler auf dem PCB vermutet (Lötbrücken etc)
In diesem Bereich ist das PCB relativ eng geroutet so das dies denkbar gewesen wäre.
Thema Bootloader, das will ich genauer wissen.
Eigentlich macht es auch kein Unterschied, ob du den Bootloader hast oder nicht.
Wenn bei dir in der Arduino IDE mit Bootloader 30kb anzeigt, zeigt auch ohne den Bootloader 30kb an.
Kannst dadurch nicht mehr Speicher verwenden.
Das ist nicht wirklich logisch, der Bootloader ist ein Code somit braucht er auch Platz. Wo liegt dieser ?
Der Bootlloader wird im Prinzip nach den Reset zuerst ausgeführt.
Die Anwendung des "Users" liegt im Flash dahinter, Startadresse=Bootloadersize+1.
So war es bei den SAB8051 und deren derivaten.
Ich kann die extended_fuses=0x05 nicht schreiben.
Er zeigt mir immer 0xFD.
Alle anderen werden akzeptiert.
Ich kann Anwendungen flashen, laufen aber nicht.
Der Oszillator schwingt nicht, mit einem Osziloskop geprüft.
Kann aber mit diesen Fuse Einstellungen im AVR Studio den isp Takt auf 1mhz setzen, und wie gesagt Anwendungen flashen.
Wenn jetzt der ext. Oszillator (Quarz) nicht schwingen würde, hätte ich mit diesen Fuse Einstellungen mit den AVR Studio keine Verbindung - ist für mich nicht logisch.
Es handelt sich um einen Atmega 328p-PU. Es soll auch dort Unterschiede geben.
Ich muss wissen ob es sich um ein Hardwareproblem handelt Quarz,Kerkos oder ob es an den Fuses liegt.
Ext. Crystal Osc. 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms
Dein code lässt sich flashen, eine Led an Port B pin 5 Blinkt leider nicht wie gewollt, bzw nach reset 3..4 mal.
Nicht in 500ms Abständen, denke etwas kürzer.
Schwingt etwa der Oszilator kurz an, und steht dann.
Also wird es wohl an meiner Kombi Quarz/Kerkos liegen
Das die Led beim Reset oder Upload kurz leuchtet ist etwas ärgerlich und liegt daran, dass dort der SPI Bus draufliegt. Hat somit noch nichts damit zu tun, ob der Takt richtig ist.
Wenn danach nichts kommt, liegt es am nicht anlaufenden Taktgeber.
"Also wird es wohl an meiner Kombi Quarz/Kerkos liegen" Denke mal die Kerkos machen hier die Probleme! Mach mal Bilder vom Aufbau und ggf. wo du die Kerkos her hast. Kann mir das morgen dann mal anschauen, heute nicht mehr.
Ein 16mhz Quarz.
Hier die Handy Bilder, aber so schlecht schaut die Platine in Natura nicht aus.
Auch mein erstes Layout mit Eagle, die Kerkos sitzen zu weit weg vom Quarz.
Wird aber nicht die Ursache sein.
Ich vermute eher das der Wert mit 56pF zu groß ist.