Hallo zusammen,
ich arbeite jetzt schon ca einen Monat an meinem richtigen
Elektronik-Projekt - nichts großes, nur gibt es viel zu lernen ;)
Nach der ersten Runde PCBs hatte ich festgestellt, dass ich noch einen
MCU brauche. Den habe ich dann ergänzt und neue Boards bestellt. Ein
board habe ich jetzt bestückt, aber der MCU will sich nicht
programmieren lassen - avrdude erkennt ihn einfach nicht ("Error:
initialization failed", oder mit -F: "Device signature = 00 00 00
(retrying)").
Ich habe mich ein bisschen umgeguckt und festgestellt, dass mir ein
reset-pullup fehlt. Den habe ich zum Testen dann an den ICSP header
drangelötet (funktioniert tatsächlich), aber es tut sich immer noch
nichts. Auch ein 100nF Kondensator zwischen VCC und VSS hat nichts
gebracht (den Widerstand habe ich mittlerweile auf dem Board ergänzt.
Für den cap ist mir keine offensichtlich tolle Lösung eingefallen, also
habe ich ihn von vor der Didode nach dahinter geschoben. Der Anhang
repräsentiert noch das alte Board, so wie ich es gerade physisch bei mir
liegt.).
Die ungenutzten Pins sind alle direkt mit VSS verbunden, weil das
Datasheet gesagt hat, dass ein festes Level den Verbrauch des MCUs
senken kann (Idealerweise will ich mich mit dem Verbrauch des MCU im
Bereich von 0 bis ca. 10uA bewegen - weniger ist besser.). Mir wurde
gesagt, dass ich auch die internen Widerstände benutzen kann, was dann
die nächste PCB-Bestellung umsetzen wird.
Auch habe ich die AVR-Checkliste auf dieser Seite gefunden, die hat mir
aber leider nicht weitergeholfen.
Sicherheitshalber habe ich mal alle SPI-Pins im Diodentest durchgemessen
und ich bekomme da überall "normale" Werte, also der Chip scheint
zumindest oberflächlich in Ordnung zu sein. Die wichtigen Pins sind alle
tatsächlich verlötet und soweit ich erkennen kann nicht irgendwie
miteinander verbunden. Den ICSP header habe ich direkt durchgemessen,
und da auch nichts gefunden. Ich habe noch nicht probiert einen anderen
MCU aufzulöten, weil ich nicht weiß, ob irgendwas auf dem Board den
momentanen MCU gesprengt hat, und wenn ja, warum.
Ein Oszilloskop habe ich auch mal angeschlossen. Der Reset-Pin landet
tatsächlich auf einem sauberen Logik-Niveau. Auf MOSI ist Kommunikation
auch klar erkennbar (und ja, meinen usbtinyisp habe ich mit einem
arduino uno getestet). Auf MISO ist nur schwache Noise (kurz vor dem LL
zu LH Übergang des Reset-pins glaube ich ein bisschen Chip-Aktivität zu
erkennen - kaum lauter als die Noise auf der Leitung.). Die Noise auf
den Leitungen bewegt sich im Bereich von bis zu +-100mV zu bewegen.
Zugegeben habe ich keine Ahnung, ob irgendwas in diesem Absatz von
Relevanz ist, aber man lernt ja immer dazu.
Ich bin ehrlich verwirrt bei sechs Pins so gravierend schief gehen kann.
Hat hier vielleicht jemand eine Idee, was ich übersehe?
Vielen Dank!
Wie kommst du auf die irrwitzige Idee, Aref auf GND zu klemmen?
Das Datasheet sagt, dass man ungenutzte Pins zu Gnd verbinden soll. Ich benutze nur die beiden i2c Interfaces, und wollte den ADC eh ausschalten. So wie ich das verstanden habe ist der ADC nur für analoge Messungen Relevant. Im Datasheet steht, soweit ich erkennen kann, nicht, dass man besonders mit dem Pin umgehen soll
:
Bearbeitet durch User
Und wo ist der Schwingquarz/Resonator, wo sind die Abblock-Cs? Warum ist eine Diode zwischen Regler und Prozessor-Versorgung?
Ist der Atmega328PB frisch vom Werk? Ich frage, weil du keinen Takt anlegst … LG, Sebastian
Sysfs schrieb: > Das Datasheet sagt, dass man ungenutzte Pins zu Gnd verbinden soll. Naja... Aref ist keine normaler IO Pin. Das Datenblatt sagt eher, dass man ihn mit 100nF gegen GND abstützen soll. Und die anderen brauchen auch kein GND, da reicht der interne Pullup oder diese Pins auf OUTPUT zu stellen. Sebastian W. schrieb: > Ich frage, weil du keinen Takt > anlegst … Bei 1MHz intern, macht es meist Sinn, den ISP Takt runter zu setzen. Dann: Ich sehe nur einen GND an deinem 328PB Bild. Der hat sicher mehr davon.
:
Bearbeitet durch User
Hallo, die Pin-Nummerierung des Programmiersteckers ist um 180° verdreht. (Tipp: in KiCad gibt es diesen Stecker als beschriftetes Schaltplansymbol) rhf
Arduino F. schrieb: > Dann: > Ich sehe nur einen GND an deinem 328PB Bild. > Der hat sicher mehr davon. Gut gesehen. Pin 21 GND fehlt! LG, Sebastian
Noch etwas: Falls man später den 328pb a la Arduino mit AVRDude programmieren möchte, bitte beachten, daß sich die gültigen RESET Schaltschwellen im Vergleich zum 328p unterscheiden. Wer dann versucht mit einem 3.3V USB Serial (CP2103 oder FT232RL) Kabel zu arbeiten wird oft Schiffbruch erleben, da die Spannung des Serial-RTS dann nicht mehr ausreicht, den RESET-Pin weit genug nach Masse hin zu schalten. Ohne Modifikation funktioniert es nur sporadisch. Ein Vergleich der Datenblätter bestätigt diesen Sachverhalt. Ich hatte das Problem vor einigen Jahren erstmalig mit 328PB Bords von Watterott. Eine "stopgap" Lösung des Problems war, den Reset Pin über einen 33K mit RTS zu überbrücken. (In parallel mit dem Reset Kondensator zwischen RTS und RESET). Diese Massnahme löste das Problem. Ich informierte übrigens Watterott von dem Problem und es ist seitdem auch dort dokumentiert. Über ISP hatte ich übrigens allerdings mit dem 328PB niemals Probleme.
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.
