Kategori: Arduino

Allt som har med Arduino programmering att göra.

  • PID controller från början

    Tänke implementera en PID controller för att hitta rätt laddström i SimpleCharger. Om matande nätdel svajar lite spännings mässigt (oreglerad transformator) så får jag en oscillerande output. En PID controller löser säkert detta.

    kolla på:
    https://www.teachmemicro.com/arduino-pid-control-tutorial/

  • AVR Bootloader

    Lite info om bootloader för AVR (Atmega 328p)

    För att kompilera en bootloader behöver man ändra lite i Linkern för att det skall generera hex-filer med rätt adress. Default börjar programmet på adress 0x0, men bootloader ligger i slutet av minnet.
    Atmel skriver minnes adresser i word inte byte, vilket kan göra detta lite krångligt.

    Linkern behöver följande parameter:
    -Wl,-section-start=.text=0x7c00
    Där adressen är skriven i byte (tror jag)
    För att översätta detta har jag gjort en liten lathund:


    GCC använder Byte, medans Atmen använder Word.

    Size WAddress WAddress dec WAdress B
    512FE00650247F00
    1024FC00645127E00
    2048F800634887C00
    4096F000614407800


    -Wl,-section-start=.text=0x7E00 är ok för 256 bootloader

    Debug av bootloader ser inte ut att fungera ?? kollar vidare.

    Använd -g3 och (stabs + gdb extention), -O0 (no optimization).

  • Arduino för Attiny85

    http://www.lawicel.se/blog/about/attiny85-och-arduino/
  • Compilera AVR-GCC tools i linux

    En kort beskrivning med länkar till hur man kompilerar
    GCC
    binutils
    libc-avr (ja, den finns i 2.0 under download)
    gdb
    avrdude
    för AVR micro controllers. Grunden kommer från denna länk.

    Ladda först ned GCC, ex. 7.2.
    Ladda ned binutils. ex. 2.28.1 
    Ladda ned avr-libc. ex. 2.0.0
    Kopiera dessa filer till en katalog och packa upp dem.
    Set path och env ….

     

  • Debug i Eclipse, GDB och FreeRTOS

    Kolla på denna.

    och denna.

    Modify Arduino to be able to use DebugWire.

  • Objekt sharing in c++ (And FreeRTOS)

    En intressand video om hur man kan göra en c++ wrapper för FreeArtos. Men även hur man kan använda addSharedObjects och GetSharedObject för att dela ex. en queue. — Toppen —  🙂

  • SmedbyCharger 2.0

    SmedbyCharger 2.0 är en specialversion av smedbycharger som ämnar att få en första version av laddaren som fungerar för att ladda CityEl:n. Det är relativt begränsad gällande funktionalitet men skall vara en laddare som startar när den kopplas in och skall kunna vara inkopplad i flera dagar utan att kopplas bort. Initiale versionen är för BlyBatterier. Test av stabilitet utförs på gamla blybatterier för att inte förstöra Litium batterier i onödan.

    För att inte vara helt olik kommande versioner av mjukvara kommer följande prosesser att styra laddaren:

    ChargeTask,    Ser till att laddaren laddar enligt de globala variablerna.
    SerialTask,     Skickar data till serieporten och LogViewer för analys av pågående laddning. Kan disablas för att använda serieporten för debug.
    AutoCharge,     Startar laddningen automatiskt och styr laddaren om ingen extern enher styr laddaren via CAN-Buss.
    TempReader,     Startar alla temp-givare, läser av temperatur och uppdaterar globala variabler.

     

  • CityEl laddarens funktion.

    Så för att få en bra fuktion på laddaren är det några saker man behöver fundera på.
    Skall laddaren först se om batteriet är anslutet.
    Skall laddaren detektera om batteriet kopplas bort. (lösningen är kanske att minska pwm utan delay).
    Skall en Soft-start rutin implementeras. (ja Soft start men inte soft shutoff).

    Är batteriet anslutet:
    Prova om man kan få resistans i batteriet. Om ingenting är anslutet bör pwm begränsas så att när någonting ansluts så rusar inte strömmen. En ”CheckIfBatteryConnected”-rutin bör implementeras, och först efter att laddaren detekterat batteriet bör laddningen börja.

    För att få en fungerade laddare relativt snabbt så begränsas funktionaliteten initialt.
    Funktioner som skall implementeras:

    Ver 2.0
    Check battery connected.
    integrerad autostart.
    Softstart
    Simple error detektion. ex. battery dissconnected.

    I ver 2.1 splittar vi på ladd-inteligensen och styrningen av laddning.
    Laddaren skall kunna styras via CAN-Buss. Autostart blir en separat process som detekterar om laddaren styrs via can-buss. Om den inte styrs via can-bus skall den ha möjlighet till ett defaulp-ladd-program.

    Ver 2.1
    CAN-Bus controlled.
    Möjlighet till autostart av laddning. (Om ingen CAN-bus enhet styr laddaren).
    Smartare error-detekt.
    Möjlighet till att köra en primary och flera slave-laddare.

     

     

     

  • Små LCD displayer

    Jag har kollat vidare.
    Om man läser ut vilket ID det är på lilla 2.8″ Displayen säger den 0C0C, men den fungerar utmärkt på 9328.

    Den större 3.5″ är en 9481. Den fungerar med mcufriend_kvb.

    Jag skall kolla om det finns någon generell driver jag kan använda.
    Deras grapictest är mycket fräsigare med scroll-demo av hela eller delar av skärmen. Kollar vidare på det.

     

Thank you for your upload