-         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Motortreiber A4988 abschalten

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    34
    Beiträge
    3.197
    Anzeige

    könntest du die schaltung denn mal skizzieren und hier ablichten? dann kann man mal sehen ob da noch 1 oder 2 minimalistische optimierungen drin sind
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #12
    Erfahrener Benutzer Roboter Genie Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    882
    Blog-Einträge
    7
    Gerne, mache ich es noch mal (Bild aus Album):



    Unterschied zur realen Beschaltung ist marginal:

    Statt A1, wird A3 verwendet.
    Statt A0, wird A1 verwendet.

    Das ist nur wegen der praktischen Handhabe beim Löten und so.



    Und was ich schon geschrieben habe A4988:

    RESET und STEP überbrückt.
    VDD nach 5V vom ATmega328P gekappt, statt dessen Verbindung von STEP nach VDD (ist hier im Bild eigentlich auch schon da).


    Optimierungspotential haben vielleicht noch die nicht beschalteten I/O-Ports des Kontrollers; falls das dazu führt, dass er mehr Strom zieht. Dann könnte ich natürlich die internen Pull-Up-Widerstände einschalten.
    Tieferer Schlafmodus (jetzt IDLE) geht nicht, so weit ich weiß, weil ich den Timer#1 auch für eine Software-Uhr verwende.

    Aber wie ich schon mal schrieb, steht alles dazu in meinem Blog (falls Erklärungsbedarf). Wäre jetzt - denke ich - nicht sinnvoll, hier alles nochmal hin zu schreiben (Speicherplatz etc.).


    MfG
    Geändert von Moppi (11.01.2019 um 10:44 Uhr)

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    34
    Beiträge
    3.197
    ne da gibt es wirklich kaum noch potential wie gesagt der +Vcc#1 5V könnte noch direkt über einen Port Pin gehen, ob udn wie stark sich das auf die Messung auswirkt müsste man ggf. prüfen, aber so wäre der Spannungsteiler an den Analogen Inputs noch abgeschaltet, aber das spart bei dir im idealsten Fall eh nur 0.2mA ;D (angenommen die Photoresistoren wären auf 0 und deine 5V würden über die 47k abfallen)

    ich Suche mich gerade durch das datenblatt:
    -du könntest die clock runtersetzen um strom zu sparen (system clock prescaler nutzen und dabei deine timer nicht vergessen anzupassen)
    -sofern nicht schon umgesetzt könntest du den einfachsten sleep mode IDLE benutzen um zwischen 2 Messungen strom zu sparen und ggf. POWER-SAFE einsetzen, dann läuft der timer auch weiter aber dein AIO ist offline und braucht ein paar takte zum hochfahren länger (dein code rennt ja bestimmt nicht permanent durch ein NOP während er auf den timer wartet oder ?)
    -Brown Out Detection über die Software (nicht fuses) ausschalten, sodass der BOD während des sleep ebenfalls abgeschaltet wird
    -PRR Regsiter udn alle Peripherie abschalten die nicht benötigt wird
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #14
    Erfahrener Benutzer Roboter Genie Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    882
    Blog-Einträge
    7
    Auf jeden Fall mal bei Searcher in den Blog schauen, der hat gerade dieses Phänomen, der Empfindlichkeit von ADCs.

    MfG

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    34
    Beiträge
    3.197
    ich würde auf jeden fall mal das PRR Register hernehmen und die unnötige peripherie abschalten (schließlich ahst du ja einen picoPower Prozessor genommen wegen der Funktion XD)

    und was das BOD abschalten bewirkt kann ich leider nciht sagen aber man kann es ja mal probieren

    EDIT: Kommando zurück, ich seh gerade du benutzt ja die power.h schon .. ich mach das zwar lieber selber über die register aber das ist mein persönlciher geschmack :P
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    882
    Blog-Einträge
    7
    Ich dachte irgendwo gelesen zu haben, dass BOD normalerweise gar nicht eingeschaltet ist, wenn man es selber nicht tut.
    Nun habe ich gerade nochmal im Datenblatt nachgesehen und mir im boards.txt die Fuse-Bits angeschaut:

    uno.bootloader.extended_fuses=0xFD

    entspricht: 11111101

    Wenn ich das richtig interpretiere, sind Bit#0 bis #2 die BODLEVEL Fuses. Die stünden ja dann auf 101 und damit wäre BOD an.

    Sehe ich das richtig?

    Habe noch ein sleep_bod_disable(); hinzugefügt.

    Ansonsten hatte ich alles andere abgeschaltet.

    power_spi_disable();
    power_twi_disable();
    power_timer2_disable();
    power_adc_disable();
    power_timer0_disable();



    Fehlt noch was?

    MfG
    Geändert von Moppi (11.01.2019 um 12:31 Uhr)

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    34
    Beiträge
    3.197
    Bit 7 – PRTWI0: Power Reduction TWI0

    check.

    Bit 6 – PRTIM2: Power Reduction Timer/Counter2

    check.

    Bit 5 – PRTIM0: Power Reduction Timer/Counter0

    check.

    Bit 3 – PRTIM1: Power Reduction Timer/Counter1

    wakeup timer.

    Bit 2 – PRSPI0: Power Reduction Serial Peripheral Interface 0

    check.

    Bit 1 – PRUSART0: Power Reduction USART0

    ich meine was von UART bei dir gelesen zu haben, evtl. einen jumper pin mit internem pullup gegen gnd und nur einschalten wenn auch gejumpert (sowas wie ein debug jumper).

    Nochmal korrektur, nein sehe ich nicht bei dir, hab das sayHello als Debug abgetan :P den kannst noch abshalten
    EDIT3: (Gerade nachgelesen bei 8Mhz wären das 0.1mA, vll. solltest du den Spannungsteiler doch über einen pin schaltbar machen, die 0.2mA sind scheinbar signifikant)

    Bit 0 – PRADC: Power Reduction ADC

    den brauchst du ja. (korrektur ADC nicht Analog) also auch CHECK

    sieht soweit gut aus
    Geändert von Ceos (11.01.2019 um 12:47 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  8. #18
    Erfahrener Benutzer Roboter Genie Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    882
    Blog-Einträge
    7
    Tückisch ist aber sleep_bod_disable();
    Das muss direkt vorm Schlafengehen passieren.

    Wenn das funktioniert, dann habe ich ja jetzt sogar ein: power_a4988_disable();

    Wenn ich richtig rechne, komme ich auf 0,47mA für alle Spannungsteiler.
    Wenn der Motor läuft, geht das unter, denke ich. Theoretisch könnte ich dort noch an der Schraube für den Motorstrom drehen, weiß aber auch nicht, ob das lohnenswert ist. Ein Unterschied ist, ob die Akkus 10 Tage durchhalten oder 20 oder 30 Tage. Aber auf 2 Tage mehr oder weniger kommt es dann nicht wirklich an.

    Danke Dir, so weit, Ceos!

    MfG
    Geändert von Moppi (11.01.2019 um 13:07 Uhr)

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Mikroschrittbetrieb mit A4988 und winzigen Steppern
    Von Time Bandit im Forum Motoren
    Antworten: 4
    Letzter Beitrag: 23.07.2014, 08:45
  2. Pololu A4988 POW Schaltung
    Von hasdrubal im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 18.12.2012, 12:19
  3. Probleme mit Schrittmotorsteuerung Pololu A4988
    Von Tummetott im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 13.11.2012, 17:56
  4. Frage zu Pololu A4988
    Von teamohnename im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 11.07.2012, 02:43
  5. pololu a4988
    Von Ownnemesis im Forum Motoren
    Antworten: 0
    Letzter Beitrag: 28.04.2012, 12:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •