Hallo alle miteinander, ich kann mir vorstellen das diese Frage sehr 'Newbie' rüberkommt, aber ich finde zu diesem Thema viele Ergebnisse die aber alle das Problem (scheinbar) verschieden angehen und ich werde leider nicht schlau drauß.. Folgendes habe ich vor : Zur Zeit nutze ich einen Arduino Micro zur Steuerung einer Nixie Uhr. Ich würde aber gerne direkt einen ATMega-Mikrocontroller im DIP-Gehäuse benutzen (z.B. den hier https://www.reichelt.de/Atmel-ATMega-AVRs/ATMEGA-32-16-DIP/3/index.html?ACTION=3&LA=446&ARTICLE=45026&GROUPID=2959&artnr=ATMEGA+32-16+DIP&SEARCH=atmega32), da platzsparender, günstiger etc. Mein Programm habe ich zur Zeit in der Arduino IDE geschrieben, weswegen ich den Atmega auch gerne darin weiterverwenden möchte. Da in den Arduinos hauptsächlich Atmegas benutzt werden kann ich mir nicht vorstellen dass das nicht irgendwie gehen sollte. Hier sind aber Anleitungen im Internet ein wenig konfus für jemanden der neu einsteigt und vorallem kocht jeder sein eigenes Süppchen, sodass es schwierig ist einen gemeinsamen Nenner zu finden. Programmieren würde ich den Mikrocontroller über einen USBasp-Programmier für 7€. Wenn aber gesagt wird, kauf dir einen AVR ISP mkII, hätte ich auch keine Probleme damit, es soll ja schließlich funktionieren. Reicht es aus den Programmierer mit seinen Pins (VCC/GND/MISO/MOSI/RST/SCK) an die entsprechenden Pins des Atmegas anzuschließen? Wenn nein, was vergesse ich hier? Muss ein bestimmter Quarz zum programmieren angeschlossen werden? Ist die vorherige Frage beantwortet, müsste ich einen Bootloader brennen wenn ich das richtig verstanden habe. Als Programm schien mir avrdude ganz passabel. Wie brenne ich den Bootloader auf den Mikrocontroller um ihn mit der Arduino IDE verwenden zu können? Da gibt es ja zwei Text-Dateien, boards.txt und pins.txt. Was muss ich da verändern? Muss ich das überhaupt? Außerdem ist mir die Funktion der Fuses nicht zu ganz klar. Wenn der Bootloader drauf ist, sollte der Atmega programmierbar sein wie bisher mein Arduino Micro. Die pins.txt hatte ich gerade schon angesprochen. Einige Quellen im Internet sagten, dass hier auf nichts geachtet werden müsse, einige wiesen darauf hin das diese jetzt ganz anders addressiert werden müssten. Was stimmt und wenn letzteres wahr ist, kann man das irgendwie korrekt anpassen, damit das mit den Bezeichnungen aus dem Datenblatt übereinstimmt? Sollte der Atmega dann korrekt programmiert sein, brauche ich zum betreiben letztendlich nichts anderes als einen 16 MHz-Quarz mit zwei parallel geschalteten 22pF-Kondensatoren, eine 5V-Spannungsquelle welche mit 100nF parallel entstört wird und dementsprechend die Anschlüsse der anzusprechenden Komponenten auf meinem Board, oder? Ich hoffe dass das alles jetzt nicht zu sehr nachgehakt ist. Mein Problem waren die gefundenen Quellen im Internet welche nicht sehr hilfreich und vorallem teils widersprüchlich zueinander waren. Ich freue mich auf eure Antwoten. Liebe Grüße, Zeor
> Reicht es aus den Programmierer mit seinen Pins > (VCC/GND/MISO/MOSI/RST/SCK) an die entsprechenden Pins des Atmegas > anzuschließen? Fast richtig, ein 100nF Abblock-Kondensator muss noch dazu (an VCC und GND). > Muss ein bestimmter Quarz zum programmieren angeschlossen werden? Nur wenn du die Fuses so umstellst, dass der Chip mit einem Quarz getaktet wird. Was bei Arduino üblich ist. Im Lieferzustand wird er über einen internen 8Mhz R/C Oszillator getaktet, dessen Frequnez durch 8 geteilt wird. Für serielle UART Kommunikation (also den Arduino Bootloader) ist das nur notdürftig geegnet. Also ja, schließe einen Quarz an. Wie gesagt brauchst du den aber erst, nachdem du die Fuses umgestellt hast. Den Bootloader kannst du vorher einmalig ohne Quarz hochladen. > müsste ich einen Bootloader brennen Musst du nur, wenn du den Chip danach über serielle Schnittstelle flashen willst. Du kannst dein Anwednungsprogramm aber auch mit deinem ISP Programmieradapter hochladen, dann brauchst du keinen Bootloader. > einige wiesen darauf hin das diese jetzt ganz > anders addressiert werden müssten. Der Bootloader liegt bei AVR Mikrocontrollern am hinteren Ende des Flash Speichers. Dein Anwednungsprogramm beginnt am Anfang des Speichers, daher musst den Bootloader bei der Programmierung nicht besonders berücksichtigen. Du hast wegen des Bootloaders allerdings rund 2kB weniger Flash Speicher zur Verfügung. > Wenn der Bootloader drauf ist, sollte der Atmega programmierbar > sein wie bisher mein Arduino Micro. Ja. > Wie brenne ich den Bootloader auf den Mikrocontroller um > ihn mit der Arduino IDE verwenden zu können? Die Arduino GUI hat dafür einen Menüpunkt: Werkzeuge/Bootloader brennen. Dabei werden auch die Fuses umgestellt, so dass der Chip danach einen Quarz oder Keramikresonator benötigt. > Da gibt es ja zwei Text-Dateien, boards.txt und pins.txt. Nichts, solange du dich bei der Pinbelegung an einem Board orientierst, dass schon vorhanden ist. > Sollte der Atmega dann korrekt programmiert sein, brauche ich ... oder? Ja. > Mein Problem waren die gefundenen Quellen im Internet welche nicht > sehr hilfreich und vorallem teils widersprüchlich zueinander waren. Das könnte am unterschieldichen Erfahrungs-Stand der Autoren loiegen aber auch daran, dass die Informationen unterschiedlich alt sind. Mein Tipp: Probieren geht über studieren. Die Dinger kosten ja nicht viel.
Felix W. schrieb: > Zur Zeit nutze ich einen Arduino Micro zur > Steuerung einer Nixie Uhr. Ich würde aber gerne direkt einen > ATMega-Mikrocontroller im DIP-Gehäuse benutzen (z.B. den hier > ATMEGA-32-16-DIP warum diesen? gleicher Speicher und kleiner wäre ATmega328p und man kann auch gleich bei 16MHz den Arduino Bootloader einbringen, dann ginge Update locker über die IDE mit FTDI Wenn du mehr SRAM und Flash benötigst dann lieber ATmega644p, 1284p gibt auch Board.txt für die Arduino IDE, dann ginge Update locker über die IDE mit FTDI
Erst mal vielen Dank an euch beide für die Antworten! Auf den Atmega32-16-PU bestehe ich nicht, der sah erst mal ganz gut aus ;). Der Atmega328p klingt ganz gut! Mehr Speicher oder RAM bräuchte ich nicht; auf dem Arduino Micro lief es bis jetzt einwandfrei. Dann müsste es doch ausreichen einen PDIP-28-Sockel und eine 2x3 Stiftleiste für VCC/SCK/GND/MISO/MOSI/RST für den Atmega328p auf das Board anzubringen und den 100nF Abblockkondensator an VCC und GND zu verbinden. Wenn ich das richtig verstanden habe kann ich den Quarz dann hier weglassen und direkt loslegen, richtig?
Felix W. schrieb: > Erst mal vielen Dank an euch beide für die Antworten! > > Auf den Atmega32-16-PU bestehe ich nicht, der sah erst mal ganz gut aus > ;). Der Atmega328p klingt ganz gut! Mehr Speicher oder RAM bräuchte ich > nicht; auf dem Arduino Micro lief es bis jetzt einwandfrei. > > Dann müsste es doch ausreichen einen PDIP-28-Sockel und eine 2x3 > Stiftleiste für VCC/SCK/GND/MISO/MOSI/RST für den Atmega328p auf das > Board anzubringen und den 100nF Abblockkondensator an VCC und GND zu > verbinden. Wenn ich das richtig verstanden habe kann ich den Quarz dann > hier weglassen und direkt loslegen, richtig? wenn du den Quarz weglässt hast du die internen 8MHz, da brauchst du für die Arduino IDE den passenden 8MHz Bootblock, entweder vom miniPRO mit 8MHz oder den Optiboot https://github.com/Optiboot/optiboot/issues/168
Achso, da hatte ich einen Satz dann falsch verstanden. Joachim B. schrieb: > und man kann auch gleich > bei 16MHz den Arduino Bootloader einbringen, dann ginge Update locker > über die IDE mit FTDI Du meintest dann sicherlich das bei vorhandenem 16 MHz der Programmierer verwendet werden kann ohne was mit den Fuses machen zu müssen, richtig? Wäre natürlich praktisch hinsichtlich der Motivation den Atmega auf dem Board programmieren zu können.
Joachim B. schrieb: > wenn du den Quarz weglässt hast du die internen 8MHz, da brauchst du für > die Arduino IDE den passenden 8MHz Bootblock, entweder vom miniPRO mit > 8MHz oder den Optiboot Der ProMini hat einen externen 8MHz drauf!
Manfred schrieb: > Der ProMini hat einen externen 8MHz drauf! Achtung, es gibt welche mit 8Mhz und 16MHz, deswegen die verschiedenen bootloader und natürlich muss die IDE wissen welche F_CPU gilt.
Hi Wozu brauchst du eigentlich dieses 'Arduino'-Gedödel? MfG Spess
Joachim B. schrieb: > Manfred schrieb: >> Der ProMini hat einen externen 8MHz drauf! > > Achtung, es gibt welche mit 8Mhz und 16MHz, deswegen die verschiedenen > bootloader und natürlich muss die IDE wissen welche F_CPU gilt. Das ist mir bekannt und ich habe beide hier. Aber, Du sagtest "wenn du den Quarz weglässt hast du die internen 8MHz" - ich bezweifele, dass der Bootloader mit internen 8MHz umgehen kann, der erwartet halt den externen 8 MHz. Wo reden wir aneinander vorbei? --------- spess53 schrieb: > Wozu brauchst du eigentlich dieses 'Arduino'-Gedödel? Weil es simpel zu handhaben ist. Ich weiß nicht, wieviel hunderte Stunden ich früher (beruflich bezahlt) mit Assembler zugebracht habe, jedenfalls genug. Meine bisherigen Hobbyprojekte hatten keine Probleme, unter Arduino erzeugt zu werden, beweisen muß ich mir nichts.
Manfred schrieb: > Joachim B. schrieb: >> Manfred schrieb: >>> Der ProMini hat einen externen 8MHz drauf! >> >> Achtung, es gibt welche mit 8Mhz und 16MHz, deswegen die verschiedenen >> bootloader und natürlich muss die IDE wissen welche F_CPU gilt. > Das ist mir bekannt und ich habe beide hier. lese deinen Satz nochmal "Der proMINI" den gibt es nicht, es gibt verschiedene! > Aber, Du sagtest "wenn du den Quarz weglässt hast du die internen 8MHz" > - ich bezweifele, dass der Bootloader mit internen 8MHz umgehen kann, > der erwartet halt den externen 8 MHz. du bezweifelst, ich weiss es nicht glaube aber das es geht und u.U. nur mit Nachtrimmung des internen Oszillators weil die internen 8MHz nicht "quarzgenau" sind, gilt für höhere Baudraten und Timergebrauch. > Wo reden wir aneinander vorbei? offensichtlich fast nirgens > Ich weiß nicht, wieviel hunderte Stunden ich früher (beruflich bezahlt) > mit Assembler zugebracht habe, jedenfalls genug. Meine bisherigen > Hobbyprojekte hatten keine Probleme, unter Arduino erzeugt zu werden, > beweisen muß ich mir nichts. dito, ein Arduino befreit mich von lästiger Verdrahtung bis der Chip läuft, dafür muss ich keine (Restlebens)Zeit mehr vergeuden.
Ich hab mal einen einfachen, wenn auch nicht ganz hübschen, Schaltplan erstellt bei dem ich denke es vernünftig auf meinem Board angeschlossen zu haben, wenn ich auf dem Board eine Stiftleiste haben möchte über die ich dann den ATmega mit einem USBasp über die Arduino IDE programmieren kann. spess53 schrieb: > Wozu brauchst du eigentlich dieses 'Arduino'-Gedödel? Ich habe einen DCF77 und ein RTC-Modul auf dem Board. Die Bibliotheken dazu möchte ich zur Zeit noch nicht selber schreiben und ruhe mich erst mal auf bereits geschriebenen aus. Will mich Schritt für Schritt dem nähern.
Hi >Ich hab mal einen einfachen, wenn auch nicht ganz hübschen, Schaltplan >erstellt bei dem ich denke es vernünftig auf meinem Board angeschlossen >zu haben, ... - Welchen Sinn haben R92/R93/C25/C26? - An AREF kommt nur ein 100nF Kondensator und keine Verbindung zu (A)VCC - Für AVCC und VCC reichen 100n nach Masse MfG Spess
Felix W. schrieb: > Ich hab mal einen einfachen, wenn auch nicht ganz hübschen, Schaltplan > erstellt halte dich doch an die typische Beschaltung von VCC und AVCC https://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC https://www.mikrocontroller.net/articles/Datei:Adc_connection.png
spess53 schrieb: > - Welchen Sinn haben R92/R93/C25/C26? Sollte ein Tiefpassfilter sein. In dem ATmega328p-Datenblatt stand dazu folgendes > [..] If the ADC is used, it should be connected to VCC through a low-pass filter. Da hab ich wohl was falsch gelesen, sorry. :o Joachim B. schrieb: > halte dich doch an die typische Beschaltung von VCC und AVCC > > https://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC > https://www.mikrocontroller.net/articles/Datei:Adc_connection.png Ist natürlich peinlich das ich das nicht gefunden habe.. vielen Dank für den Hinweis. Ich hab das ganze mal angepasst. Sollte so jetzt stimmen oder?
Ohweia, kleiner Fehler. Hier sollte richtig sein.
Felix W. schrieb: > Ohweia, kleiner Fehler. Hier sollte richtig sein. kann und will ich nicht überprüfen ohne die alternativen Pinbezeichnungen reset, Rx, Tx, usw. ist der Stecker nun für FTDI oder ISP?
Hi
>Ohweia, kleiner Fehler. Hier sollte richtig sein.
Wozu der Widerstand?
MfG spess
Joachim B. schrieb: > kann und will ich nicht überprüfen ohne die alternativen > Pinbezeichnungen Hast schon recht, ist leider doof das bei T3000! für dieses Modell die Pinbezeichnungen nicht alternativ mit drin sind. Da es sich um einen Atmega328P handelt sollten die Bezeichnungen deckungsgleich mit https://www.mikrocontroller.net/articles/Datei:Adc_connection.png sein. Der Stecker ist für ISP. spess53 schrieb: > Wozu der Widerstand? R92 geht an PC6 (RESET). Soll ein Pull-Up-Widerstand sein, da dass Datenblatt > External Reset. The MCU is reset when a low level is present on the RESET pin > for longer than the minimum pulse length. sagt.
:
Bearbeitet durch User
Felix W. schrieb: > Der Stecker ist für ISP. wolltest du nicht die Arduino IDE nutzen und dessen Boosektor? Dann wäre ein FTDI kompatibles Gegenstück doch sinnvoll?
Joachim B. schrieb: > wolltest du nicht die Arduino IDE nutzen und dessen Boosektor? Ich wollte das über einen USBasp machen. Wenn ich das richtig verstanden habe hat der einen ISP-Anschluss. Des weiteren dachte ich, dass ich den Bootsektor brauche um die Arduino IDE nutzen zu können - sprich den Programmcode, den ich in der Arduino IDE geschrieben habe, über die Arduino IDE in den Atmega328p hochzuladen. Ich kann mich daran erinnern das ich den Bootloader für den Arduino Micro einmal über einen ISP Anschluß brennen musste, was auch funktioniert hat. Ich liege wahrscheinlich weit daneben? Tut mir leid wenn ich mich etwas doof anstelle, einen µC selber programmieren habe ich noch nie gemacht (außer Arduino aber da wird viel Arbeit abgenommen durch USB und die IDE) und das ganze kommt mir sehr abstrakt vor weil es hier viele Lösungswege gibt. Kann sein das ich hier Einzelheiten miteinander verwechsel.
Felix W. schrieb: > Ich wollte das über einen USBasp machen. Wenn ich das richtig verstanden > habe hat der einen ISP-Anschluss. Ja. > Des weiteren dachte ich, dass ich den > Bootsektor brauche um die Arduino IDE nutzen zu können - sprich den > Programmcode, den ich in der Arduino IDE geschrieben habe, über die > Arduino IDE in den Atmega328p hochzuladen. Ich kann mich daran erinnern > das ich den Bootloader für den Arduino Micro einmal über einen ISP > Anschluß brennen musste, was auch funktioniert hat. Ich liege > wahrscheinlich weit daneben? Der USBASP hat einen ISP, richtig und kann Programme/Sketche aus der Arduino-IDE heraus auch ohne bootloader brennen. Funktioniert. Den Arduinobootloader brauchst Du nur, wenn Du den Arduino auch weiterhin über die serielle/USB programmieren willst. Felix W. schrieb: > Tut mir leid wenn ich mich etwas doof anstelle, Alles ok, jeder hat so oder ähnlich angefangen, manche wissen es nur nicht mehr. ;-)
> Ich liege wahrscheinlich weit daneben? Ja. AVR Mikrocontroller kann man ohne Software über die ISP Schnittstelle programmieren. Das geht sowohl mit externer Taktquelle als auch mit dem internen R/C Oszillator. Ein Bootloader ist ein Stück Software, welches es Dir ermöglicht, eine andere Schnittstelle zum Programmieren zu verwenden. In deinem Fall die UART Schnittstelle, die allerdings eine bessere Taktquelle erfordert, als den internen R/C Oszillator. Zumindest wenn es zuverlässig gehen soll. AVR Mikrocontroller werden normalerweise ohne Bootloader verkauft. Die Arduino IDE unterstützt beide Methoden, UART mit Bootloader und ISP.
Joachim B. schrieb: > "Der proMINI" den gibt es nicht, > es gibt verschiedene! "Der Pro Mini" ist der, den Arduino offiziell anbietet: https://www.arduino.cc/en/Main/ArduinoBoardProMini Von diesem gibt es zwei Varianten mit 8 und 16 MHz, genau diese unterstützt die IDE und bringt deren Bootloader mit. Joachim B. schrieb: > Wenn ich das richtig verstanden habe kann ich den Quarz dann >> hier weglassen und direkt loslegen, richtig? > > wenn du den Quarz weglässt hast du die internen 8MHz, da brauchst du für > die Arduino IDE den passenden 8MHz Bootblock, entweder vom miniPRO mit Die Pro Minis haben einen externen Quarz und es gibt keinen Grund zu der Annahme, dass der Arduino-Bootloader eine interne Takterzeugung unterstützt!
Manfred schrieb: > Die Pro Minis haben einen externen Quarz ich weiss das 8MHz oder 16MHz (gibts nicht auch welche mit Resonator?) Manfred schrieb: > Der ProMini hat einen externen 8MHz drauf! und die Aussage mit 8MHz ist für alle miniPRO falsch. Würdest du deutlicher schreiben dann müsste man nicht korrigieren! also entweder 8MHz oder 16MHz und nicht extern 8MHz für alle! Manfred schrieb: > - ich bezweifele, dass der Bootloader mit internen 8MHz umgehen kann, weisst du es oder zweifelst du? Ich wüsste nicht wieso dem Bootloader seine Taktquelle interessieren sollte, ist aber leicht festzustellen! der Atmel kommt mit interne 8MHz und div8 programmiert Dann kann er per ISP einen 8MHz Bootloader flashen und die div8 aus den Fuses nehmen
:
Bearbeitet durch User
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.