Arduino Uno mit Bascom über Bootloader nutzen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Schraubbaer schrieb:

      Auf dem UNO ist standardmässig ein Blinkprogramm installiert, die LED mit der Bezeichnung L blinkt im Sekundentakt sobald Strom

      Hallo,
      ist das auch beim Mini (Pro) so ?
      Meiner hier blinkt nicht und will auch mit einen USB/TTL Wandler kein Programm
      annehmen.
      (Habe jetzt leider nur das eine „Mini““Exemplar hier zum Testen)
      UNO und Nano hat ohne Problem Funktioniert
    • Stimmt, hab' ich auch gerade im Schaltbild gesehen. Jetzt könnte man mal einen ISP-Stecker dran flanschen und den mega328 mal auslesen, ob was drauf ist, oder die fuses lesen, ob die für einen bootloader eingestellt sind, oder mal Vcc am Kontroller messen. Es gibt ja laut Schaltbild einen Jumper zwischen Spannungsregler und Kontroller.

      Edit: Den jumper gibt es wohl nicht auf jedem board. :S
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tschoeatsch ()

    • ??? Verschluckt das Forum manchmal Antworten ???
      Ich war der festen Überzeugung diese Antwort sofort tschoeatsch Frage geschrieben zu haben :

      tschoeatsch schrieb:

      Hat der mini überhaupt eine Led drauf?
      Ja, eine rote an +VCC
      und
      eine grüne an PB5.


      tschoeatsch schrieb:

      Jetzt könnte man mal einen ISP-Stecker dran flanschen und den mega328 mal auslesen
      Das werde ich dann wohl mal tun aber mehr aus Interesse als wegen des „Wertes“ des Moduls.

      03.06.18 00:05
    • Hallo,

      dank der guten Beschreibung! hier hab ich grad meinen ersten Bootladerversuch erfolgreich über die Bühne gebracht.

      Meine Frage dazu:
      Ein Mega 168 oder 328 erfasst einen Schalter und summiert die Tastungen auf.
      Dazu wacht er alle Sekunden (gesteuert über den WD) auf und schaut nach ob der Taster betätigt ist.
      Das geht ganz gut, es handelt sich um eine batteriegespeiste Geschichte.

      Wie verhält sich das nun in Bezug auf den Bootlader?
      Meine Vorstellung:
      Wenn der WD einen Reset produziert (der AVR schläft vorher) dann schaut doch der Bootlader erstmal nach ob jemand was von ihm will, er wartet also und "horcht" ob eine bestimmte Kennung kommt.
      Das dauert doch bestimmt eine gewisse Zeit.
      Meine "Befürchtung:
      - es dauert zu lange um meine Zykluszeit von einer Sekunde weiterhin benützen zu können, es könnte auch mal weniger sein.
      - der AVR läuft viel länger als vorher und lutscht meine Batterie leer.

      Kann man den Lader so beeinflussen dass meine Befürchtungen zerstreut werden, ich trotzdem den Vorteil des Laders nutzen kann?


      Kurt

      .
    • Ich bin mir nicht ganz sicher, aber ein wd-reset ist was anderes wie ein hw-reset. Und nach einem hw-reset lauscht der bootloader.
      Was aber auch zu bedenken wäre, was kannst du zum Stromsparen alles ausschalten, was an Peripherie auf dem Arduino drauf ist und du aber garnicht im laufenden Betrieb brauchst? Die USB-Schnittstelle zB. die braucht immer Strom, weil du die per Programm nicht in den standby bzw sleep bekommst.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Die Aufgabe eines WatchDog ist es, einen Reset durchzuführen. Bedeutet, das der Bootloader, sofern konfiguriert, aktiviert wird.
      In deinem Fall wird also demnach der Bootloader gestartet. Es gibt Controller, die haben einen Watchdog-Interrupt. Dann kann man das verhindern.
      Da müsste dann in den Fusebits was zu finden sein.

      Da du aber eigentlich deinen Controller nur aufweckst, um einen Tastendruck zu registrieren kannst du auch andersrum vorgehen.
      Nämlich den Tastendruck selber zum Aufwecken benutzen. Dafür gibt es z.B. die Pinchange-Interrupts oder auch die externen INT0, INT1, die man dafür verwenden kann.

      Dann würde der Controller nur dann aufgeweckt, wenn auch eine Taste gedrückt wurde, also etwas passieren soll im Programm.
    • "Dann würde der Controller nur dann aufgeweckt, wenn auch eine Taste gedrückt wurde, also etwas passieren soll im Programm"

      Das stimmt schon, aber ich schicke zyklisch ja die Daten weg, der Zähler dafür wäre dann von den Ereignissen abhängig.

      Eine andere Idee:

      Den Bootlader ein wenig verschieben um an seinem normalen Einsprungsplatz einen Pin abfragen.
      Ist der "gesetzt" dann zum Lader, ansonsten zum Programmanfang.

      Kurt
    • @Kurt, dann ist es einfacher den Watchdog Interrupt zu nutzen anstatt einen Kopfstand mit dem Bootloader zu veranstalten. Stromsparen wirst Du eh wenig, weil der UNO leider mit USB Chip, LDO, LEDs usw. nicht auf Akkubetrieb zugeschnitten ist. Wurde ja schon alles erwähnt.
      Wenn Du Strom sparen willst, dann kaufe einen Arduino Mini und tausche dort den LDO gegen ein sparsameres Exemplar (MCP17xx) und schmeiß die LEDs raus.
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • monkye schrieb:

      @Kurt, dann ist es einfacher den Watchdog Interrupt zu nutzen anstatt einen Kopfstand mit dem Bootloader zu veranstalten. Stromsparen wirst Du eh wenig, weil der UNO leider mit USB Chip, LDO, LEDs usw. nicht auf Akkubetrieb zugeschnitten ist. Wurde ja schon alles erwähnt.
      Wenn Du Strom sparen willst, dann kaufe einen Arduino Mini und tausche dort den LDO gegen ein sparsameres Exemplar (MCP17xx) und schmeiß die LEDs raus.
      Mir geht es hier primär darum überhaupt zu kapieren was geht und was nicht.
      Momentan "denke" ich an einem Mega 168 bzw. 328 auf selbstgeschnitzter Platine rum.
      Die Stromsparsachen sind mir soweit klar, es geht darum das ich, wenn diese Platine eingesetzt ist, nicht mehr an diese ohne grossen Aufwand rankomme weil sie in einem Metallgehäuse wasserdicht verpackt, arbeitet.
      Alles was nach aussen geht sind + 3V von der Bat, Masse, TX und RX. Und die Leitung ist ev. 100 Meter lang.
      Bedeutet: kein direktes Programmieren auch wenn genügend Drähte da wären, was aber sowieso nicht ist.

      Laden, falls es nötig sein sollte, wäre dann über die beiden Leitungen Tx und Rx eine feine Sache.
      Dabei wäre es egal ob das nur mit 300 Baud geht oder mit 14400...
      Den Vorgang der Abfrage ob geladen werden soll könnte ich durch Abfragen einer der beiden Leitungen nach Reset wohl erledigen.
      Heisst: keine Wartezeit/Stromverbrauch für den Bootlader, aber wenn er gebraucht wird steht er bereit.

      Wenn ich einen "offenen" AVR vor mir habe ists eh klar, da kommt momentan der Proger direkt dran und es hat sich erstmal.
      Aber: möchtenkönnenwollen schwingt trotzdem mit.


      Kurt
    • Sei mir nicht böse, wenn ich an deiner Wunschblase etwas mit der Nadel spiele.

      Aber 100m mit Tx und Rx (TTL) wird nicht gehen.
      Auch Fernspeisung mit 3 oder 5V über 100m wird schlecht klappen.
      Denn durch Spannungsabfälle über die lange Leitung kommen keine 3V bzw. 5V mehr an.

      Was aber geht, auf Plus-Leitung z.B. 12V legen. Am Ziel, also auf der Platine sollte dann noch genug ankommen, damit ein Spannungsregler eine vernünftige Spannung für das Borad machen kann (3V oder 5V).

      Bezüglich der seriellen. TTL-Pegel auf diese Entfernung werden nicht gehen. Auch mit RS232 wird es vermutlich schon sehr eng werden.

      Da wäre ein 485/422-Bus besser. Dafür gibts kleine Treiberchips (MAX487), mit denen Empfangen und gesendet werden kann.
      Damit gehts dann mehr als 1000m.

      Ich würde auch wie @Schraubbaer schon sagte, nicht unbedingt auf Batterie setzen.
      Wie wäre es mit Akku, die ferngeladen werden können (über die Fernversorgung)?
    • Mitch64 schrieb:

      Sei mir nicht böse, wenn ich an deiner Wunschblase etwas mit der Nadel spiele.


      Bestimmt nicht!



      Aber 100m mit Tx und Rx (TTL) wird nicht gehen.


      Darum die 300 Baud, da schauts dann schon anders aus.




      Auch Fernspeisung mit 3 oder 5V über 100m wird schlecht klappen.
      Denn durch Spannungsabfälle über die lange Leitung kommen keine 3V bzw. 5V mehr an.


      Die Batt ist im Metallkasten beim AVR, ansonsten brauche ich max. 30 mA für wenige Sekunden, da kommt dann ein "Goldcap" bei Bedarf dazu.



      Was aber geht, auf Plus-Leitung z.B. 12V legen. Am Ziel, also auf der Platine sollte dann noch genug ankommen, damit ein Spannungsregler eine vernünftige Spannung für das Borad machen kann (3V oder 5V).


      Lässt sich leider nicht realisieren.



      Bezüglich der seriellen. TTL-Pegel auf diese Entfernung werden nicht gehen. Auch mit RS232 wird es vermutlich schon sehr eng werden.


      Ist abhängig vom "BAUD"


      Da wäre ein 485/422-Bus besser. Dafür gibts kleine Treiberchips (MAX487), mit denen Empfangen und gesendet werden kann.
      Damit gehts dann mehr als 1000m.

      RS485 kenn ich, wenns nicht geht, die 100 m sind eine Ausnahme, dann bleibts bei der Hoffnung nichts an der SW ändern zu müssen, oder halt die Kiste dann öffnen.




      Ich würde auch wie @Schraubbaer schon sagte, nicht unbedingt auf Batterie setzen.
      Wie wäre es mit Akku, die ferngeladen werden können (über die Fernversorgung)?


      Geht nicht, ist im Freien.
      Ich habe vor >5 Jahren mal sowas gebaut, läuft problemlos, die Spannung kann ich am Zielort ablesen und die ist immer noch perfekt gut.


      Kurt





    • Pluto25 schrieb:

      Da er die meißte Zeit schläft wird er nicht viel Strom benötigen. Einen Litium oder Goldcap ? Wenn er 485 über seinen Analog Comperator generiert bekäme man auch genügend Strom dorthin ohne weitere Leitungen.
      Ich muss mit dem leben was ich an Batterie im Kasten habe, was anderes gibt's nicht, also keine zweite Versorgung oder so.
      Erfahrung mit dem Batteriebetrieb hab ich ja schon gesammelt, es geht mir momentan wohl eher um die "Faulheit" und die Möglichkeit die der Lader bietet bereit zu haben falls es nötig ist.

      Kurt