Letztens hat mich ein Freund gebeten ihm eine Platine zu machen, drauf
sollen ein HC-06 und ein Atmega328P und ein wenig Kleinzeug.
Wegen des HC-06 hab ich die Spannung auf 3.3V geplant, und den
Atmega328P auch auf 3.3V und 8MHz mit externem Quarz.
Die 3.3V kommen von einem AMS1117-3.3
Soweit so gut, Platine ist da, Teile drauf, ISP Programmer dran
(tinyISP),
Pegelwandler dazwischen, ein TXB0104.
AVR dude gibt Fehlermeldung 'initialization failed rc=-1'.
Atmega328P raus, auf ein Arduino Uno DIP Board drauf, ISP dran, wird
erkannt.
Ins Internet, TXB0104 ist wohl nicht der geeignetste. Auf ehajo.de den
ISP Levelshifter Bausatz bestellt, nur um sicher zu gehen.
Gleiches Ergebnis. Habe 5 Atmega328P probiert, sogar 2 Samples direkt
von Atmel, die noch nie ausgepackt worden sind. Alle gehen im Arduino
sofort.
Theorie 1: HC-06 nimmt zu viel Strom
(Atmega wird durch 2x100nF gestützt)
Theorie 2: Levelshifter sind kaputt
Board(Autorouter) häng ich mal an als PNG, Schematic auch
Kann da jemand mal drüber sehen ?
Im Schaltplan fallen mir etliche Verbindungspunkte auf, denen der Punkt
fehlt. So sieht auch die Platine aus, beispielsweise scheinen dem µC und
den Osz-Kerkos die Masseanschlüsse zu fehlen. Der 9V-Anschluss hängt
auch nur mit einem Pin dran. Usw.
layout schrieb:> Der Autorouter ist ja wohl Mist.
Nee, da kann der Router nix für. Der Plan ist defekt, Schrott rein
Schrott raus. Bloss weil ein paar Leitungen im Plan optisch aufeinander
stossen sind sie bei Eagle noch lange nicht verbunden. Wenn der beim
malen automatisch platzierte Punkt/Knubbel fehlt, dann fehlt die
Verbindung. Verbindung löschen und nochmal machen.
Also rein Schaltplan-mäßig sollte alles funktionieren. Spannungen kommen
da an wo sie ankommen sollen, am Atmega, am ISP Anschluss etc...
Der HC-06 an sich alleine funktioniert, wenn ich es mit meinem Handy
verbinde und per SerialBluetooth App Daten reinschicke kann ich sie mit
einem Serial to USB Adpater auch wieder lesen(an dem RX/TX Anschlüssen
vom HC-06).
A. K. schrieb:> Im Schaltplan fallen mir etliche Verbindungspunkte auf, denen der> Punkt> fehlt. So sieht auch die Platine aus, beispielsweise scheinen dem µC und> den Osz-Kerkos die Masseanschlüsse zu fehlen. Der 9V-Anschluss hängt> auch nur mit einem Pin dran. Usw.
Beachte Masse Fläche, die aktuell nur als gepunktetes blaues 4eck
dargestellt wird.
layout schrieb:> Der Autorouter ist ja wohl Mist.>> Schon mal einen Error-Check im Schaltplan gemacht? Da fehlen> Verbindungen.> Error-Check im Layout gemacht?
Es gibt keine offenen Verbindungen
A. K. schrieb:> Nee, da kann der Router nix für. Der Plan ist defekt, Schrott rein> Schrott raus. Bloss weil ein paar Leitungen im Plan optisch aufeinander> stossen sind sie bei Eagle noch lange nicht verbunden. Wenn der beim> malen automatisch platzierte Punkt/Knubbel fehlt, dann fehlt die> Verbindung. Verbindung löschen und nochmal machen.
Im Anhang mit gerenderter Masse Fläche
Sputnik schrieb:> ein standart Atmega328P läuft mit internem Takt...
Also 1MHz, soweit ich mit erinnere.
Und ISP/avrdude arbeitet mit maximal 1/4 davon?
A. K. schrieb:> Sputnik schrieb:>> ein standart Atmega328P läuft mit internem Takt...>> Also 1MHz, soweit ich mit erinnere.> Und ISP/avrdude arbeitet mit maximal 1/4 davon?
Wenn ich den Atmega in einen Arduino Uno Board setze geht der Zugriff
via ISP ja... Da sitzt zwar ein 16Mhz Quarz, aber der sollte dem Atmega
ja egal sein oder ?
Sputnik schrieb:> Der Quarz Anschluss ist ja eigtl auch egal, ein standart Atmega328P> läuft mit internem Takt...A. K. schrieb:> Also 1MHz, soweit ich mit erinnere.
Das wäre die Werkseinstellung. Er kann mit bis zu 8 MHz mit dem internen
RC-Oszilator laufen. Vielleicht will aber der TE, dass der Atmega328P
mit z.B. 12 MHz laufen soll.
Michael K. schrieb:> Das wäre die Werkseinstellung. Er kann mit bis zu 8 MHz mit dem internen> RC-Oszilator laufen. Vielleicht will aber der TE, dass der Atmega328P> mit z.B. 12 MHz laufen soll.
Sicher. Aber versuch mal, die für ebendiesen Takt zuständigen Fuses
eines frisch gelieferten Controllers mit ISP=1MHz zu programmieren.
A. K. schrieb:> Hängt am Arduino der gleiche Programmer wie an diesem Board?
Ja, hab nur den einen.
Michael K. schrieb:> Das wäre die Werkseinstellung. Er kann mit bis zu 8 MHz mit dem internen> RC-Oszilator laufen. Vielleicht will aber der TE, dass der Atmega328P> mit z.B. 12 MHz laufen soll.
Ich würde ihn ja gerne umstellen(auf 8Mhz extern), aber er wird mir
unter AVR dude gar nicht erst angezeigt....
Ich versuche ihn mir ja nur anzeigen zu lassen mit :
->>>>>> avrdude -c usbtiny -p m328P <<<<<<-
Ergebnis ist in meinem Board init failed, im Arduino wird er wunderbar
erkannt.
A. K. schrieb:> Sicher. Aber versuch mal, die für ebendiesen Takt zuständigen Fuses> eines frisch gelieferten Controllers mit ISP=1MHz zu programmieren.
Solange er nicht erkannt wird, werden wir nie erfahren das dies nicht
geht.
A. K. schrieb:> Sputnik schrieb:>> Ja, hab nur den einen.>> Und wird der beim Arduino mit der gleichen Programmier-Software> angesprochen wie hier? Also mit avrdude?
Ja, hab nochnichtmal das CMD Fenster geschlossen, nur umgesteckt von
meinem Board auf Arduino Board ISP Header...
Hab mir mal einen 'externen ISP Anschluss' bestellt, ein Board mit
Nullkraftsockel und Quarzfassung, damit ich den programmiert bekomme und
setz ihn halt danach aufs Board...
Sputnik schrieb:> Ergebnis ist in meinem Board init failed, im Arduino wird er wunderbar> erkannt.
Ist der ISP-Header auf deinem Board auch richtig? Hast du ihn auch mit
Spannung versorgt? Wie lautet die Meldung denn genau?
A. K. schrieb:> Michael K. schrieb:>> Das wäre die Werkseinstellung. Er kann mit bis zu 8 MHz mit dem internen>> RC-Oszilator laufen. Vielleicht will aber der TE, dass der Atmega328P>> mit z.B. 12 MHz laufen soll.>> Sicher. Aber versuch mal, die für ebendiesen Takt zuständigen Fuses> eines frisch gelieferten Controllers mit ISP=1MHz zu programmieren.
Wo soll denn da das Problem liegen? Mach ich praktisch immer so: Erstmal
Fuses setzen, dann Programm übertragen.
Michael K. schrieb:> Wo soll denn da das Problem liegen? Mach ich praktisch immer so: Erstmal> Fuses setzen, dann Programm übertragen.
Fuses setzt man per ISP, nicht mit der Brennschere. Bei µC-Takt von 1MHz
und ISP-Takt von 1MHz funktioniert das aber nicht, weil ISP <= 1/4 µC
gefordert ist.
Michael K. schrieb:> Ist der ISP-Header auf deinem Board auch richtig? Hast du ihn auch mit> Spannung versorgt? Wie lautet die Meldung denn genau?
Ja, wegen des ISP Level Shifters muss das Board dem Levelshifter die
Spannung geben, an VCC sind 3.3V ,auch am Levelshifter.
Die genaue Fehlermeldung ist die gleiche als wäre kein IC dran, wenn ich
diese mit -F ignoriere kommt als Device ID 0x00000000, erwartet wurde
'Atmega328P ID' , ich tippe immernoch auf die Levelshifter.
Ich versuche es jetzt mal ohne Levelshifter, dann geht halt das HC-06
kaputt, davon hab ich aber noch eins.
A. K. schrieb:> Michael K. schrieb:>> Wo soll denn da das Problem liegen? Mach ich praktisch immer so: Erstmal>> Fuses setzen, dann Programm übertragen.>> Fuses setzt man per ISP, nicht mit der Brennschere. Bei µC-Takt von 1MHz> und ISP-Takt von 1MHz funktioniert das aber nicht, weil ISP <= 1/4 µC> gefordert ist.
Ach das meinst du. Und ich hab wohl oben überlesen dass der ISP-Takt des
TEs ebenfalls 1 MHz ist.
Michael K. schrieb:> Ach das meinst du. Und ich hab wohl oben überlesen dass der ISP-Takt des> TEs ebenfalls 1 MHz ist.
Ich weiss es auch nicht, aber das ist ein typisches Problem.
Aber mach ruhig mal du weiter bei der Suche nach dem Problem. Ich hab
nämlich keines.
Michael K. schrieb:> A. K. schrieb:>> Michael K. schrieb:>>> Wo soll denn da das Problem liegen? Mach ich praktisch immer so: Erstmal>>> Fuses setzen, dann Programm übertragen.>>>> Fuses setzt man per ISP, nicht mit der Brennschere. Bei µC-Takt von 1MHz>> und ISP-Takt von 1MHz funktioniert das aber nicht, weil ISP <= 1/4 µC>> gefordert ist.>> Ach das meinst du. Und ich hab wohl oben überlesen dass der ISP-Takt des> TEs ebenfalls 1 MHz ist.
Hab nie gesagt mit wie hoch der ISP Takt ist.
Gut, ohne Levelshifter geht es auch nicht :(
Sputnik schrieb:> layout schrieb:>> Der Autorouter ist ja wohl Mist.>>>> Schon mal einen Error-Check im Schaltplan gemacht? Da fehlen>> Verbindungen.>> Error-Check im Layout gemacht?>> Es gibt keine offenen Verbindungen>
Warum gibt es dann denn keine Verbindung zwischen VCC und AtMega Pin 7 +
Pin 21? Der Spannungsregler hat seinen GND mit dem der Stromversorgung
auch nicht verbunden...
Sputnik schrieb:> Gut, ohne Levelshifter geht es auch nicht :(
Wie gesagt, miss mal die Verbindungen nach ob auch jeder Pin stimmt.
Nicht dass du z.B. MOSI und MISO miteinander vertauscht hast.
Tja Leute, da sucht man und sucht man, wie gesagt, das Layout ist NICHT
das PRoblem, überall kommt die richtige Spannung an, habs 5 mal
nachgemessen.
Allerdings habe ich gerade gemerkt das mein Reset ganze 22 Ohm als
Widerstand besitzt, den hab ich wohl aus dem Kästchen für die
Vorwiderstände der LEDs...
Daran wirds hoffentlich liegen, ähm ja, es trifft wohl Teil 2 meiner
Überschrift zu....
Hahaha, ja kann passieren :P Mich wundert ehrlich, das auf den 2. Teil
deiner Frage nicht 10465 doofe Kommentare kamen :P Dachte mir schon in
der Übersicht "uuh, da drin wirds zugehn" aber liest sich ja ganz
gesittet.
mfg
Sputnik schrieb:> Tja Leute, da sucht man und sucht man, wie gesagt, das Layout ist NICHT> das PRoblem, überall kommt die richtige Spannung an, habs 5 mal> nachgemessen.
Tja, anscheinend nicht wenn
Sputnik schrieb:> Allerdings habe ich gerade gemerkt das mein Reset ganze 22 Ohm als> Widerstand besitzt
vor lag. Dann brach wohl die Spannung zusammen als der Programmer
versuchte den Resetpin auf 0V runter zu ziehen ;)
Aber schön, dass du das Problem gefunden hast. ;)
Sputnik schrieb:> Tja Leute, da sucht man und sucht man, wie gesagt, das Layout ist NICHT> das PRoblem, überall kommt die richtige Spannung an, habs 5 mal> nachgemessen.>
Der Schaltplan ist aber falsch - d.h. entspricht nicht dem Layout...
Sputnik schrieb:> Es funktioniert jetzt!! Mit 10K am Reset läuft alles wunderbar!
Kann ich mir bei diesem Layout nicht recht vorstellen, dass da Bluetooth
akzeptabel laufen soll. Die Antenne des Moduls wird von der Groundplane
darunter praktisch kurzgeschlossen, das ergibt Reichweiten im 10 cm
Bereich.
Peterle schrieb:> VCC an GND dürfte mal so überhaupt nicht funktionieren!
Das stimmt so nicht.
Ohne die Punkte ist der Schaltplan zwar für den Betrachter nicht lesbar,
aber eine elektrische Verbindung kann durchaus bestehen.
Denn bei Eagle ist es so:
Wenn man die Verbindung mit "Net" macht, werden die Punkt automatisch
gesetzt.
Wenn man aber "Wire" benutzt, passiert das nicht. Eine Verbindung kann
aber schon existieren. Schön ist das natürlich nicht, aber funktionieren
kann es schon.
Gruß Dietrich
Peterle schrieb:> Aber VCC und GND sind doch auf dem schaltplan verbunden, oder sehe ich> das falsch?
Das kommt darauf an, an welchen Stellen jetzt wirklich elektrische
Verbindungen sind (und keine Punkte da sind, die dies dem Leser kundtun
würden) und an welchen sich die Leitungen "nur" kreuzen (ohne
elektrische Verbindung).
Eagle weiß das, wir sehen es aber nicht :-(
Gruß Dietrich