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...
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?
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.)
Gruß
DerDani
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?
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
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.
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 )
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.
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.