Quadcopterio gamyba – 2 dalis (firmware įkrovimas)

2012-04-15 05:00 | Categories: Užrašai

Šioje dalyje papasakosiu kaip teisingai užprogramuoti arducopter mikrokontrolerius.

 

 

 

Darbinė versija

Atsisiusti dabartinę arducopter versiją iš čia

Programavimo aplinka

Jei ketinate daryti pakeitimus teks atsiusti Arduino IDE

Atmega2560 programavimas

Šis mikrokontroleris skirtas visam stabilizavimo darbui atlikti.

Vėl opensource ypatumai – kadangi produktas pakankamai sudėtingas, spėju niekas jo pats negamina. Niekur neradau kaip teisingai įkelti firmware. Išbandžiau kelis variantus, tačiau kad pilnai veiktų booloaderis padaryti nepavyko. Kažkodėl neįrašo kodo į flash atmintį.

Bandžiau:

cd \ardupilot_mega\ardupilot-mega\Tools\APM2_2560_bootloader\
make mega2560
avrdude -e -c stk500v2 -p m2560 -P com4 -U lock:w:0x3f:m
avrdude -e -c stk500v2 -p m2560 -P com4 -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xFD:m
avrdude -v -c stk500v2 -p m2560 -P com4  -U flash:w:stk500boot_v2_mega2560.hex
avrdude -c stk500v2 -p m2560 -P com4 -U lock:w:0x0f:m

Kitas bandymas buvo kiek sėkmingesnis, nes ArdupilotMegaPlanner pradėjo šnėketis su plokšte. Firmware.hex imtas iš \ardupilot-mega\Tools\ArdupilotMegaPlanner\bin\Release\ katalogo.

avrdude -e -c stk500v2 -p m2560 -P com4 -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xFD:m
avrdude -v -c stk500v2 -p m2560 -P com4  -U flash:w:firmware.hex

O taip tikrindavau ką booloaderis šrašė į mikrokontrolerį. Komanda skirta nuskaityti firmware:

avrdude -v -c stk500v2 -p m2560 -P com4  -U flash:r:firmware1.hex:i

Atmega2560 programavimas (teisingesnis variantas)

Kitas būdas, nors irgi nėra labai teisingas, tačiau veikia su bootloaderiu.

  • Parsisūsti nauja firmware, kuris buvo originalioje plokštėje.
  • Jį įrašyti į MEGA2560
    avrdude -v -c stk500v2 -p m2560 -P com4  -U flash:w:firmware_m2560_boot_fresh.hex
  • Iš AMP įkelti naują firmware pagal skraidyklės tipą.

Atmega328p programavimas

Šis mikrokontroleris skirtas PPM/Servo PWM įėjimui apdoroti. Vienitelė funkcija atskirta nuo Atmega2560.

Programuojant šį kilo didžiausių nesusipratimų. Šviesos diodas lyg ir mirgsejo kaip nurodyta aprašyme, tačiau ArdupilotMegaPlanner nematė valdymo signalų. Kitą dieną suradau kombinacija, kuri veikė. Tiesa įvykdžius paskutinę eilutę veikti nustodavo.

avrdude -e -c stk500v2 -p m328p -P com4 -U lock:w:0xFF:m
avrdude -e -c stk500v2 -p m328p -P com4 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m -U efuse:w:0xFE:m
avrdude -e -c stk500v2 -p m328p -P com4 -U flash:w:Encoder-PPM.hex
avrdude -e -c stk500v2 -p m328p -P com4 -U lock:w:0xCF:m

Naudingos nuorodos

Atmega fuse calculator

No comments yet.

TOP