Guten Tag,
Ich möchte eine Platine mit einem Atmega 328 smd bauen. So weit ich weiß kann man diesen auch mit dem Arduino Uno programmieren. Ich habe 2 möglichkeiten gefunden:
1.
Arduino | Platine
Vcc |Vcc
GND |GND
TX |RX
RX |TX
Reset |Reset
2.
über den ICSP.
Getestet hab ich dies über eine Steckplatine. Leider hat nichts funktioniert. Ich hab hier die Beiträge im Forum angesehen, aber ich habs trotzdem nicht zum laufen bekommen.
Wie Tommy schon schrieb, es geht nur über ISP.
Wenn du den Uno mit ArduinoISP dazu verwendest, darfst du nicht vergessen, einen Elko 10μF am Resetpin gegen GND anzuschließen. Der ist wichtig, damit du nicht den Uno erneut flashst, sondern deine Platine mit dem Atmega328p.
Ok, noch eine Ergänzung dazu:
Sobald du den ATmega328p per ISP einen Bootloader geflasht hast, kannst du den auch anschließend seriell mit einem geeigneten Adapter flashen.
ich hab es jetzt so angeschlossen wie es in der Anleitung von Tommy steht. Ich hab jetzt auch den Quarz von einem 2. Arduino Bord genutzt(falls die Frequenz einen Unterschied macht). Den Elko hab ich auch auf das Bord gesetzt. Ich nutze momentan eine Steckplatine um es zu testen. Kann es sein das durch das Steckbrett Signale verloren gehen?
PS: Tut mir leid für die späte Antwort bin noch neu hier.
kaesebaum:
ich hab es jetzt so angeschlossen wie es in der Anleitung von Tommy steht. Ich hab jetzt auch den Quarz von einem 2. Arduino Bord genutzt(falls die Frequenz einen Unterschied macht). Den Elko hab ich auch auf das Bord gesetzt. Ich nutze momentan eine Steckplatine um es zu testen. Kann es sein das durch das Steckbrett Signale verloren gehen?
Die Frequenz des Quarzes spielt immer eine Rolle.
Die Frequenz sollte mit der Frequenz des Bootloader bzw. der Fuses überein stimmen.
Und ein Steckbrett kann sehr fehlerhaft sein.
Zeig mal ein Foto deines Aufbaus. Aber bitte so, dass man alles erkennen kann.
Wie steckst du denn den SMD Atmega da drauf ?
Ich hab den Fehler gefunden. Ich bin zum hochladen des Programms auf den Pfeil gegangen, aber das war falsch. Man muss auf (Datei->Upload mit Programmer) gehen dann funktioniert es. @HotSystems ich hab natürlich nicht ein smd auf ein Steckbrett gebaut ich habe einen normalen genommen, hab das jetzt auch mit 40Mhz getestet funktioniert auch.
Noch mal vielen dank jetzt kann es endlich los gehen
Ich hab genau genommen einen40,665MHz Quarz der war aus einer alten Funkfernbedienung . Ich hab den auf dem Steckbrett auf Pin 9,10 angeschlossen. Hab aber den eeprom noch nicht getestet ober er das auch schafft. Mit einer Anzeige läuft das alles flüssiger. Mit 3,3V läuft der auch noch auf 40Mhz. Werd mal testen bei welcher Spannung und welcher Frequenz er zu warm wird. Ich hab auch keine Kondensatoren am Quarz verbaut, Kann das irgendwann zu Problemen führen?
kaesebaum:
.....Kann das irgendwann zu Problemen führen?
Da du vermutlich die Frequenz nicht gemessen hast, tippe ich darauf, der Quarz schwingt irgendwo, aber nicht auf 40 MHz, sondern vermutlich auf einem 3-tel oder 5-tel von 40Mhz, da das ein Obertonquarz ist.
Und nochmals, der Atmega328p ist lt. Datenblatt für 20 MHz bei 5 Volt angegeben.
Mit 3,3 Volt geht der bis max. 12 MHz. Alles andere ist außerhalb der Spezifikationen und läuft nicht stabil.
Ist also für eine stabile Funktion nicht zu empfehlen.
Und wozu genau, soll das gut sein, mit dem 40 MHz Quarz ?
Der ganz sicher nicht mit dem Atmega328p so funktioniert, wie du dir das denkst.
Da stimmt dann nichts mehr mit deinen Zeiten innerhalb des Atmega328p. Es sei denn du setzt die richtigen Fuses bzw. lädst den richtigen Bootloader drauf.
Die Frequenz hab ich nicht gemessen, wenn die FH wieder auf hat werde ich den Quarz mal messen. Mich hätte nur mal interessiert wie viel noch möglich ist, da die 20Mhz ja laut Hersteller möglich sind. Meistens geben die ja etwas weniger an als möglich um sich abzusichern. So weit ich weiß kann man die Frequenz mit steigender Spannung erhöhen(Dann schalten die Gatter ja schneller). Da der µC eh nicht warm wird ist da mit Kühlrippen vielleicht noch was zu machen. Zu der Zeit ich nutze dafür die Zeit Register, die haben doch einen eigenen Quarz. Die Frequenz des µC spielt doch nur eine Rolle wenn ich z.B. Delay() nutze oder?
Bei einem µC für 2€ kann man ja mal testen was er so aushält.
Ich gebe euch aber natürlich vollkommen recht wenn man so was verkaufen will muss man sich an die Herstellerdaten halten.
Zu der Zeit ich nutze dafür die Zeit Register, die haben doch einen eigenen Quarz. Die Frequenz des µC spielt doch nur eine Rolle wenn ich z.B. Delay() nutze oder?
Unfug.
Was sind überhaupt "Zeitregister"?
Halte dich an die Spezifikationen, und gut ist!
Diese stehen im Datenblatt.
Alles andere ist Unfug.
Es sei denn du bist viel viel schlauer, als der Hersteller.
Bist du das?
Zu der Zeit ich nutze dafür die Zeit Register, die haben doch einen eigenen Quarz
Wenn das so ist, wo genau hast du da welchen Quarz angeschlossen.
Das würde mich jetzt mal brennend interessieren.
Allerdings hat dir combie schon die passende Antwort darauf gegeben.
kaesebaum:
Ich dachte, dass die Register TCCR0A und TCCR0B über einen internen Quarz arbeiten, aber da war ich wohl auf dem Holzweg.
Nein natürlich nicht es sollte auch nicht so rüber kommen als wollte ich euch belehren.
Def. ist im Atmega328p kein Quarz verbaut.
Und wir sind auch nicht die Hersteller der Atmega328p.