Hallo Leute,
Ich suche ein Bootloader mit 1 Mhz für denn ATMega328P. Ich sag mal was ich vor habe. Ich habe mir eine Fernbedienung mit dem ATMega328P, 16x2 LCD und 2 IR-LED's gebaut. Dieses läuft im Moment mit einem 16 Mhz ATMega328P. Wenn das Display deaktiviert ist also kein Strom bekommt(Relais). Und der Controller im Power-Down Modus ist frisst er immer noch 4,78 mA. Das ist zu viel. Mal berechnet das wenn ich ein 7805 um auf 5 V zu komme. Habe ich dort eine Leistung von 0,239 Watt die dort abfällt. Deswegen würde ich gerne denn Controller auf 1 Mhz betreiben und mit 2 AA Batterien das wäre dann 3 Volt der Controller läuft von 1.8 V bis 5.5 V bei 4 Mhz laut Datenblatt.
Ich kann aber kein 1 Mhz Bootloader finden.
die ca. 5mA zieht der µC aber nicht alleine. Im Sleep Mode mit 5V zieht der auch nur im µA Bereich. Deine restl. Schaltung müßtest du auseinander nehmen und den Strom messen.
Taktraten und damit indirekt die Möglichkeit einer geringeren Versorgungsspannung wird nicht über den Bootloader, sondern über die Fuses eingestellt. Du brauchst also einen weiteren Eintrag für einen batteriebetriebenen Atmega328 in der boards.txt.
sth77:
Taktraten und damit indirekt die Möglichkeit einer geringeren Versorgungsspannung wird nicht über den Bootloader, sondern über die Fuses eingestellt. Du brauchst also einen weiteren Eintrag für einen batteriebetriebenen Atmega328 in der boards.txt.
So ist es!
Leider kommt der original Bootloader dann nicht mehr mit der Baudrate hin.
Es muss auf 9600 oder besser auf 4800 runter.
Vorteil des Optiboot:
Mehr Platz für Anwendungen im Flash
Etwas schnellerer Start.
combie:
Durch falsches setzen der Fuses kann man sich abhängen.
Dann hilft nur ein HV Programmer.
1,8V BOD sollte reichen.
Damit ist das EEProm geschützt.
10µF Kondensator am ArduinoISP-UNO fehlt noch...
Ähhh, Moment mal, verstehe ich nicht. Ich weis das wenn man die Fuses falsch setzt mit "HV" wahren glaubig 12V diese löschen kann. Der Kondensator ist klar. Kann man ein Controller nun überschreiben wenn bereits ein Bootloader drauf ist?
Der bootloader muss für 1 MHz compiliert werden, damit er später über die Serielle Schnittstelle mit der IDE reden kann, denke ich mal.
Und ja, natürlich: Jedes erfolgreiche "Bootloader brennen" löscht den kompletten Flash und überschreibt einen evtl. vorher vorhandenen Bootloader.
Soll ich mir da auch noch denn optiboot_atmega328.hex runterladen und diese brennen? Also in der boards.txt schreiben das er diese Brennt anstatt die andere die bei combie dabei ist?
Kann man ein Controller nun überschreiben wenn bereits ein Bootloader drauf ist?
Ja!
Klar, warum nicht!
Er darf nur nicht verfused sein!!!!
Verfusesd wäre in diesem Fall, wenn er den 16MHz Quarz braucht, der aber nicht auf deinem BrotBrett ist.
Klartext:
Wenn der µC vorher auf dem UNO gesteckt hat, dann muss auf dem UNO gebrannt werden!
Erst danach kannst du in aufs Brotbrett stecken.
anstatt die andere die bei combie dabei ist?
Was gefällt dir an dem OptiBootloader nicht, der in meiner Zip steckt?
combie:
Ja!
Klar, warum nicht!
Er darf nur nicht verfused sein!!!!
Verfusesd wäre in diesem Fall, wenn er den 16MHz Quarz braucht, der aber nicht auf deinem BrotBrett ist.
Was gefällt dir an dem OptiBootloader nicht, der in meiner Zip steckt?
Okay überschreiben geht alles klar.
Also wenn ich Controller mit 16 Mhz brenne aber kein Quarz dran hänge, dann wäre er verfused? Da ich ja ein Controller brenne der ein 16 Mhz Quarz braucht(aktuell) muss ich diesen doch dran anschließen auf dem Breadbrot. Und nachdem der 1 Mhz Bootloader drauf ist kommt der Quarz in die Tonne(nicht wortwörtlich).
"Was gefällt dir an dem OptiBootloader nicht, der in meiner Zip steckt?"
So meinte ich das nicht. Weil er geschreiben hat der muss 1 Mhz kompliert werden diesen habe ich gefragt.
Mal eine andere Herangehensweise: Wozu willst du überhaupt einen Bootloader behalten? Der Atmega läuft dann sowieso nicht auf einem Arduino-Board sondern allein auf einer Platine/Steckbrett. Ob man dort nun extra einen Schnittstellenchip USB-Seriell oder gleich einen ISP anschließt ist doch eigentlich egal. Daher als Vorschlag: Verzicht auf den Bootloader, Programmierung klassisch über einen ISP bzw. Arduino als ISP.
Verzicht auf den Bootloader, Programmierung klassisch über einen ISP bzw. Arduino als ISP.
Das wäre dann der letzte Menupunkt in meinem Zip gedöns.
Auch da muss man dann den "Bootloader brennen" Knopf drücken, um die Fuses auf "ohne Bootloader" zu setzen
Hast du denn bzw. brauchst du denn unbedingt den externen Quarz? Einfacher wäre es vielleicht, du taktest nur auf 8 MHz runter und nimmst dafür den internen Quarz.
Mein Atmega328 mit 8 MHz und BOD disabled benötigt ca. 6 µA im Ruhezustand. Ob da 1 MHz noch einen großen Unterschied macht bezweifel ich stark.
Interessanter wäre wohl eher, wieso du mit dem Stromverbrauch momentan im mA-Bereich liegst, vermutlich musst du dir die restliche Schaltung erst einmal anschauen bevor du anfängst mit den Fuses rumzuspielen. Aber der Hinweis kam ja bereits im ersten Thread von Doc_Arduino...
tja, kann mich nur wiederholen. Schön das ihr euch um seinen Bootloader kümmert. Aber das ist nicht sein Hauptproblem. Für mich sieht es aus als ob er den nackten µC an seiner Schaltung hängen hat und insgesamt 5mA misst im Sleep Mode. Und da ich/wir weis/wissen das der µC im Sleep Mode keine 5mA zieht, kann ich behaupten, dass sein Problem woanders liegt, nämlich in seiner restlichen Beschaltung. Dem muß er nachgehen. Sonst nützt die ganze Aktion mit dem µC runtertakten nichts.
Spexx:
Hast du denn bzw. brauchst du denn unbedingt den externen Quarz? Einfacher wäre es vielleicht, du taktest nur auf 8 MHz runter und nimmst dafür den internen Quarz.
Mein Atmega328 mit 8 MHz und BOD disabled benötigt ca. 6 µA im Ruhezustand. Ob da 1 MHz noch einen großen Unterschied macht bezweifel ich stark.
Interessanter wäre wohl eher, wieso du mit dem Stromverbrauch momentan im mA-Bereich liegst, vermutlich musst du dir die restliche Schaltung erst einmal anschauen bevor du anfängst mit den Fuses rumzuspielen. Aber der Hinweis kam ja bereits im ersten Thread von Doc_Arduino…
Okay, ich werde das dann mit 8 Mhz intern versuchen. Bei Arduino gibt es glaubig das Beispiel “ATMega on Breadbroad (Elimenting the External Clock)” Oder so. Werde ich mir mal an schauen. Also meine Fernbedienung ist so aufgebaut:
Mikrocontroller mit 16 Mhz Quarz(Aktuell)
Spannung von 9 Volt Block Batterie → Diode 1N4007(Schutz) → 100 uF Elko(buffern) → LM7805(4 Volt verbraten) → 5V(Output) → 10 uF Elko(buffern). Daher bekomme ich meine Spannung.
Sonst sind dort noch 7 Taster angeschlossen(Gegen Ground, Interner Pullup)
2 IR-LED. Die GND über ein BC547 Transistor abfließt.
Können diese 5 mA auch vllt. auch vom LM7805(Spannungswandler) kommen? Denn Wenn ich das LCD abstecke bleiben die mA gleich. Also wenn das LCD aus ist dann zieht es auch kein Strom. Die Taster ja eh nicht. Und die IR-LED’s nur sehr kurz beim senden. Aber halt nicht wenn der Controller im Sleep Mode ist.
Also kann es doch eig. nur am Spannungswandler liegen oder? Wie könnte man das am besten messen?
Jan
Suche nach Linearreglern mit "low quiescent current"
z.B MIC5231 , TPS709
(bitte vor dem Kauf Datenblatt prüfen)
Aha okay. Dann kann ich mir die 4 mA auch langsam erklären das ist dann wahrscheinlich der eigen verbrauch vom LM7805. Denn µC zieht dann nur extrem wenig und LCD gar nix weil keine Spannung anliegt.
//Frage würde der L4940 V5 gehen. Eingangsspannung ist 9V.
Zu denn Linearreglern. Kannst du mir da ein empfehlen für 5V? Alle die ich finde sind immer SMD oder einstellbar. Meine Schaltung ist auf einer Lochrasterplatine aufgelötet.
die Infos kommen ja ganz schön Häppchenweise. Der L4940 geht auch nicht. Verheizt immer noch zu viel. Wenn dir SMD zu klein ist zum löten, dann kannste das hier nehmen. Pololu 5V Step-Up Voltage Regulator NCP1402 Oder guckst dort nach Step Down Wandler für 9V -> 5V. Hat immer noch Verluste gegenüber combie seinen Link, aber um Welten besser wir die 0815 Regler.
Warum hast du nicht alle Stromzweige einzeln gemessen? Da lernt man viel mehr dabei. Du misst scheinbar immer nur bei der Einspeisung. Du müßtest in der Schaltung messen.
xJan45x:
Zu denn Linearreglern. Kannst du mir da ein empfehlen für 5V? Alle die ich finde sind immer SMD oder einstellbar. Meine Schaltung ist auf einer Lochrasterplatine aufgelötet.
Ich kann dir diese empfehlen, die brauchen sehr wenig Strom (unter 1 mA). Die gibt es auch kleiner. Must mal bei ebay schauen.
Edit:
Ja, genau, Doc war schneller und hat die kleineren gezeigt.
Der gezeigte ist allerdings ein StepUp.