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 ….

 

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.

 

AVR-gcc och Eclipse

Jag är lite sugen på att gå över till att använda Eclipse som IDE för samtliga project. Både för Windows, Linux, Macos och även för Embedded utveckling. Eclipse ser ut att vara ett ok IDE, och det kan vara enkelt att använda ett och samma IDE, så att man känner igen sig.

Ladda ner Eclipse från deras hemsida och installera:
https://www.eclipse.org/downloads/?

(Old) För att installera Eclipse i Ubuntu:
http://ubuntuhandbook.org/index.php/2016/01/how-to-install-the-latest-eclipse-in-ubuntu-16-04-15-10/

För Linux c++ och för Windows är det inte några problem.
För AVR har jag testat lite med denna:
http://avr-eclipse.sourceforge.net/updatesite

Ser ut att fungera. AVR-gcc behöver vara installerad sedan tidigare.
Vill man installera senaste versionen kan man kolla på:
https://www.lxrobotics.com/setup-avr-gcc-with-eclipse

När det gäller Arduino finns en färdig Eclipse installation för detta. Man kan gå in under Help -> Marketplace och söka efter Arduino. Det finns två spår att välja. Soebere är ett försök att likna Arduino IDE mer, och Eclipse C++ IDE for Arduino 3.0 är skrivet av samma person som skrivit C++ pluginen för Eclipse och liknar mer utveckling i standard C++. Jag har valt C++ spåret för att inte bygga fast mig i Arduino, och för att likna andra typer av CPU:r som kan programmeras med C++.

Det finns även en bra sida för att komma igång med FreeRTOS för AVR.
https://feilipu.me/2011/09/22/freertos-and-libraries-for-avr-atmega/

Jag installerade FreeRTOS från ”Arduino download manager” som finns tillgänglig eter att man installerat ”Eclipse C++ IDE for Arduino 3.0”.

CAN modul

Så var det dags att kolla på hur man kommunicerar via CAN.

Första försöket blir med en gammal Lavicel CANUSB kopplad till datorn, och på andra sidan blir det en Arduino Nano med en MCP2515_CAN modul.

Jag tror att CANUSB fungerar direkt i Linux. Jag hade lite problem att få den att fungera i XP, men det har kanske mindre betydelse. Som jag förstår så är den av den gammla typen, med annan UID.

För att få Arduinon att communisera använder jag detta bibliotek.
Jag skall även kolla på Adafruits bibliotek.