Atmega328P scheint nicht zu funktionieren in Kombination mit 2 Schieberegistern

Hallo,

bisher habe ich schon einiges mit meinem ATMEGA328P und Shiftregistern gearbeitet. Jedoch bringt mich mein momentanes Projekt zum verzweifeln. Folgendes Problem besteht:

Ich habe einen Standalone ATMEGA328P (vorher mit UNO programmiert) und betreibe an diesem 2 Shiftregister. Diese Shiftregister betreibe je 7 LED's. Problem ist, dass wenn ich alles soweit anmache, der ATMEGA328 anscheinend die Shiftregister nicht steuert.

Ich habe da so eine befürchtung: Und zwar, wenn ich die Shiftregister nicht mit 5V und Masse verbinde, dann leuchten die LED's (blinken sollen sie eigentlich). Daraus schließe ich, dass das Shiftregister sich den Strom vom ATM328 zieht, und der somit in die Knie geht? Aber wieso geht er auch in die Knie wenn ich doch 5v und Masse am register anschließe?

Der ATM328 standalone ist folgendermaßen aufgebaut. VCC und GND kommt von einem festspannungsregler. An OSC ist parallel ein 10k Widerstand, danach folgt parallel ein 16MHz quarz und davon jeweils ein 22pf kondensator auf Masse. (Habe schon 5 STück davon gebaut, immer funktionierte es) Pins benutze ich Pin 2, 3 und 4 vom ATM328 die dann zu den Schieberegistern gehen.

Aus Platzgründen habe ich auf der Platine die Pins 2,3 und 4 über die Pins A3, A4 und A5 gelötet (Weil auf der Seite mein Stecker liegt). Aber ich nehme an, da ich diese im Code nicht benutze und auch nicht definiert habe, sollte dies kein Problem sein? (oder liegt da das Problem)?

Ich habe das Gefühl es ist ein Problem des Stroms...Mir ist es nicht ganz geheuer, dass die Schieberegister von den Pins des ATM328 auch mit Spannung und Strom versorgt werden...

Hat jemand eine Ahnung zu diesem Thema?

Mit einem Schaltplan wäre allen geholfen. Das mit dem 10K Widerstand hört sich in meinen Ohren schon Flash an.
Reset des atmegas muss mit einem Wirderstand an +V gehängt Werden.
Schau mal im Anhang.
Gruß
DerDani

volvodani: Mit einem Schaltplan wäre allen geholfen. Das mit dem 10K Widerstand hört sich in meinen Ohren schon Flash an. Reset des atmegas muss mit einem Wirderstand an +V gehängt Werden. Schau mal im Anhang. Gruß DerDani

Okay also deine Standalone Schaltung sieht anders aus als meine. Ich nehme an, deine läuft zu 100%? Ich hätte dazu ein paar Fragen:

Wozu einen Kondensator zwischen 22 und 21? und die LED (ist es eine LED?) an 13, ist die notwendig? Oder nur zur Überprüfung, nehme ich an? Und wieso führt die Masse noch hoch zu den Kreisen, die parallel zu 5 und 6 liegen?

Mfg

Das ist ne Schaltung aus der Google Bildersuche aber sie beinhaltet alles wesentliche.
Der Kondesator zwischen 21-22 ist ein Blockkodesator gegen Störungen macht man ca 100nF rein und so nah am Chip wie nur möglich. Die “blauen” Strich zu den anderen Punkte kannst du vergessen(neben 5 und 6).
DIe LED ist nur die “Arduino”-LED für den Blink Sketch (manchmal auch ratsam einen Blink ausgeben um zu sehen ob alles läuft. Evtl den Latch der Reigster drauf packen parallel um zu sehen ob alles läuft)
Welche Bis auf die LED und den Reset Taster musst du das alles eigentlich haben um auf externen Takt zu laufen.
Du kannst dir die ganze Quarz Geschichte sparen wenn du mit dem internen Takt von 8Mhz arbeitest. Vorausgesetzt du hast keine Zeitkritischen Anwendungen. (schieberegiter gehören nicht dazu.) :wink:
Gruß
DerDani

Okay dann werde ich das mal so Probieren.

Und was ist mit dem Fall, dass ich letztendlich (auf der Zeichnung beruhend) pin 4 mit 25, 5 mit 4 und 5 mit 3 verbunden habe? Gibt das Probleme? (Ich habe das getan, weil mein Stecker auf der rechten Seite liegt, die pins 4, 5, 6 aber links. Habe mir gedacht, solange ich sie nicht benutze im code und mit pinMode aktiviere, sollten sie doch eigentlich (nicht da) sein?

Und bevor ich ein neues thema aufmache, weil ich bei google nichts finde, gibt es einen Weg, einen atmega328p standalone zu programmieren ohne ihn in den arduino zu setzen? muss ich vllt einfach ein paar pins in den arduino stecken oder gibt es da eine andere möglichkeit?

Mfg

dtex91: Und bevor ich ein neues thema aufmache, weil ich bei google nichts finde, gibt es einen Weg, einen atmega328p standalone zu programmieren ohne ihn in den arduino zu setzen? muss ich vllt einfach ein paar pins in den arduino stecken oder gibt es da eine andere möglichkeit? Mfg

-> ISP Programmer

muss ich vllt einfach ein paar pins in den arduino stecken

Wenn du zuerst in den Arduino den Sketch ArduinoISP lädst, ist der Arduino ein ISP, der den standalone atmega328p programmieren kann. Ja , "ein paar pins" des Arduino werden mit dem neuen atmega328p verbunden.

Welche “ein paar Pins” wären das denn und reichen da nur Verbindungen, oder benötigt dies auch weitere Hardware Komponenten?

Mfg

Fragen zu dem Tutorial-Link in der vorigen Antwort ? (Auf Arduino Seite reichen Drähte, die Farben sind egal. Wie diese mit deinem "standalone atmega328P" verbunden werden können, kann ich dir nicht sagen :P )

Reset-Pin noch zusätzlich mit 10nF auf Masse, das er einen PowerOn-Reset machen kann und parallel zu C3 noch einen 47µ Elko. Ansonsten so, wie dort aufgezeichnet. Das ist auch meine Beschaltung. Zum Programmieren bietet sich eine doppelreihige 10 Pin Stiftleiste, oder besser noch ein 10pol. Wannenstecker an. So wird der verkabelt: http://www.google.de/imgres?imgurl=http://d32zx1or0t1x0y.cloudfront.net/2009/07/atmega8_breadboard_20_lrg.jpg&imgrefurl=http://www.protostack.com/blog/2009/07/atmega8-breadboard-circuit-part-2-of-3-the-microcontroller/&h=699&w=1024&tbnid=VrtEsehRIMvbkM:&zoom=1&tbnh=90&tbnw=132&usg=__wQHZ9aKvRtXmdXMY3cYXx-sf6SE=&docid=tvANVu1BvUXqoM&sa=X&ei=N_l6U63IIMfI0wWd84CwAw&ved=0CD8Q9QEwBA&dur=1170 Dann einen USBasp Programmer besorgen und dann kannst du den Controller gleich in der aufgebauten Schaltung programmieren. Mit einem Laptop und 5m USB Kabel funktioniert das auch bei größeren fertigestellten Projekten, wie meinem Honigauftauschrank oder meiner Uhr mit Riesenziffern.

Gruß Gerald

nix_mehr_frei: Reset-Pin noch zusätzlich mit 10nF auf Masse, das er einen PowerOn-Reset machen kann und parallel zu C3 noch einen 47µ Elko. Ansonsten so, wie dort aufgezeichnet. Das ist auch meine Beschaltung. Zum Programmieren bietet sich eine doppelreihige 10 Pin Stiftleiste, oder besser noch ein 10pol. Wannenstecker an. So wird der verkabelt: http://www.google.de/imgres?imgurl=http://d32zx1or0t1x0y.cloudfront.net/2009/07/atmega8_breadboard_20_lrg.jpg&imgrefurl=http://www.protostack.com/blog/2009/07/atmega8-breadboard-circuit-part-2-of-3-the-microcontroller/&h=699&w=1024&tbnid=VrtEsehRIMvbkM:&zoom=1&tbnh=90&tbnw=132&usg=__wQHZ9aKvRtXmdXMY3cYXx-sf6SE=&docid=tvANVu1BvUXqoM&sa=X&ei=N_l6U63IIMfI0wWd84CwAw&ved=0CD8Q9QEwBA&dur=1170 Dann einen USBasp Programmer besorgen und dann kannst du den Controller gleich in der aufgebauten Schaltung programmieren. Mit einem Laptop und 5m USB Kabel funktioniert das auch bei größeren fertigestellten Projekten, wie meinem Honigauftauschrank oder meiner Uhr mit Riesenziffern.

Gruß Gerald

Parallel zu C3 noch einen 47µ Elko? Aber wieso denn 2 Elkos?, dort ist doch schon 100 nF... Wäre nett wenn es dazu eine Erklärung gibt. Und was bedeutet Power-On Reset?

Mit dem Programmieren, denke ich habe ich soweit verstanden. Einzige Frage die ich noch habe ist, wo ich solche Stecker sowie Buchsen preiswert herbekomme?

Kann ich einen USBASP AVR Programmer Damit ganz einfach verbinden und über die Arduino Software mit meinem PC die Sketches hochladen? Mfg

Elko und Keramikkondensator parallel ergänzen sich. Der Keramik-C ist hat den geringeren Innenwiderstand und kann besser kurzzeitig hohe Ströme liefern. Der Elko hat mehr Kapazität, ist aber nicht so impulsfest. So soll sichergestellt werden, das der Controller auch bei kurzen Spannungseinbrüchen durch andere Verbraucher sauber weiterläuft. Power On Reset bedeutet genau das, wo nach es klingt. Beim Einschalten wird durch den 10n Kondensator am Reset-Pin Selbiger kurz nach Masse gezogen, solange ich der C aufläd und somit passiert das Gleiche, als wenn du den reset Knopf drückst. Die 10 pol Stecker bekommst du bei Reichelt, Conrad, Ebay... Wenn man du in der IDE Tools, Programmer, USBasp einstellt und den Upload über Datei, Upload mit Programmer vornimmt, klappt das.

Gruß Gerald

nix_mehr_frei: Elko und Keramikkondensator parallel ergänzen sich. Der Keramik-C ist hat den geringeren Innenwiderstand und kann besser kurzzeitig hohe Ströme liefern. Der Elko hat mehr Kapazität, ist aber nicht so impulsfest. So soll sichergestellt werden, das der Controller auch bei kurzen Spannungseinbrüchen durch andere Verbraucher sauber weiterläuft. Power On Reset bedeutet genau das, wo nach es klingt. Beim Einschalten wird durch den 10n Kondensator am Reset-Pin Selbiger kurz nach Masse gezogen, solange ich der C aufläd und somit passiert das Gleiche, als wenn du den reset Knopf drückst. Die 10 pol Stecker bekommst du bei Reichelt, Conrad, Ebay... Wenn man du in der IDE Tools, Programmer, USBasp einstellt und den Upload über Datei, Upload mit Programmer vornimmt, klappt das.

Gruß Gerald

Okay klasse, vielen Dank :)

Ich kann auch noch diesen hier empfehlen http://shop.myavr.de/Programmer%20und%20Bridges/mySmartUSB%20light.htm?sp=article.sp.php&artID=200006 Hat bei mir schon viel mitgemacht easy in die IDE einzubinden und kann zwei Protokolle STK und AVR910/911. Habe viel Arduinos und Brushless Regler damit geflasht ohne Probleme. Gruß DerDani