Ez az útmutató a config.h fájl fő #define opcióit és azok használatát magyarázza el.
A Stepper-Ninja két egymáshoz illeszkedő konfigurációs fejlécet használ:
firmware/inc/config.hhal-driver/config.h
Általános használatban a hal-driver/config.h fájlnak a firmware/inc/config.h symlinkjének kell lennie, nem pedig külön karbantartott másolatnak.
Ha a symlinkek hiányoznak, a hal-driver könyvtárból ezzel hozhatod létre őket:
./make_symlinks.shEz a script újra létrehozza a HAL driver által használt közös symlinkeket.
- A Pico firmware viselkedésének módosításához a
firmware/inc/config.hfájlt szerkeszd. - A
hal-driver/config.hennek a fájlnak symlinkje kell legyen. - Ha a
hal-driver/config.hnem symlink, hanem normál fájl, futtasd ahal-driver/make_symlinks.shscriptet.
Megjegyzés: egyes értékeket a footer.h automatikusan felülír, ha a breakout_board nem 0.
Ezek az értékek határozzák meg az induló hálózati konfigurációt, amely a flash memóriában marad, amíg a soros terminálon át meg nem változtatod.
| Define | Jelentés |
|---|---|
DEFAULT_MAC |
Alapértelmezett Ethernet MAC-cím |
DEFAULT_IP |
Alapértelmezett statikus IP-cím |
DEFAULT_PORT |
A HAL driver által használt UDP port |
DEFAULT_GATEWAY |
Alapértelmezett átjáró |
DEFAULT_SUBNET |
Alapértelmezett alhálózati maszk |
DEFAULT_TIMEOUT |
Kommunikációs időtúllépés mikroszekundumban |
Ha később a soros terminál ipconfig parancsait használod, a futásidejű értékek felülírhatják a flash-ben tárolt alapbeállításokat.
A breakout_board a hardverelrendezést választja ki.
| Érték | Jelentés |
|---|---|
0 |
Egyedi pin-kiosztás a config.h alapján |
1 |
Stepper-Ninja breakout board |
2 |
IO-Ninja breakout board |
3 |
Analog-Ninja breakout board |
100 |
BreakoutBoard100 |
Ha a breakout_board értéke nagyobb mint 0, a footer.h több egyedi pin-definíciót boardspecifikus értékekre cserél.
Ezek a definíciók adják meg, hány csatorna van és mely pineket használják.
| Define | Jelentés |
|---|---|
stepgens |
Step-generátor csatornák száma |
stepgen_steps |
Step kimeneti pinek |
stepgen_dirs |
Irányjelek pinek |
step_invert |
Step jel invertálása csatornánként |
encoders |
Enkóder csatornák száma |
enc_pins |
Minden kvadratúrás enkóderpár első pinje |
enc_index_pins |
Enkóder index pinek |
enc_index_active_level |
Az index bemenetek aktív szintje |
Minden enkódernél az enc_pins két GPIO-t használ: az A a megadott pinen van, a B pedig a következőn.
A firmware két encoder PIO megvalósítást támogat:
| Define | Jelentés |
|---|---|
ENCODER_PIO_LEGACY |
Az eredeti kvadratúrás számláló PIO |
ENCODER_PIO_SUBSTEP |
Az újabb, substep-aware PIO |
encoder_pio_version |
Kiválasztja, melyik encoder PIO forduljon |
Jellemző beállítás:
#define encoder_pio_version ENCODER_PIO_SUBSTEPHa vissza akarsz térni a régi encoder PIO-ra:
#define encoder_pio_version ENCODER_PIO_LEGACYJelenlegi működés:
- Az enkóder sebességbecslése a HAL driverben történik.
- Legacy módban a firmware ciklusonkénti enkóder számlálódeltát küld.
- Substep módban a firmware továbbra is nyers számlálóadatot küld, de a sebességkimenetet a HAL oldal állítja elő.
A mód build közben is felülírható:
CFLAGS='-Dencoder_pio_version=ENCODER_PIO_LEGACY' cmake -S firmware -B build -DWIZCHIP_TYPE=W5500| Define | Jelentés |
|---|---|
in_pins |
Bemeneti GPIO-k listája |
in_pullup |
Pull-up engedélyezése bemenetenként |
out_pins |
Kimeneti GPIO-k listája |
Ezek az értékek csak custom módban használatosak, vagy ha a kiválasztott breakout board nem írja felül őket.
| Define | Jelentés |
|---|---|
use_pwm |
PWM támogatás engedélyezése |
pwm_count |
PWM kimenetek száma |
pwm_pin |
PWM kimeneti pinek |
pwm_invert |
PWM invertálása csatornánként |
default_pwm_frequency |
Alapértelmezett PWM frekvencia |
default_pwm_maxscale |
HAL skálázási határ |
default_pwm_min_limit |
Minimális PWM kimenet |
Csak akkor állítsd a use_pwm értékét 1-re, ha a hardveredhez tartozó PWM csatornaszám és pinek érvényesek.
| Define | Jelentés |
|---|---|
raspberry_pi_spi |
Wiznet Ethernet helyett SPI kapcsolat Raspberry Pi felé |
raspi_int_out |
Interrupt/státusz pin a Raspberry Pi felé |
raspi_inputs |
A Raspberry Pi által látható bemenetek |
raspi_input_pullups |
Ezek pull-up beállításai |
raspi_outputs |
A Raspberry Pi által vezérelt kimenetek |
Ha a raspberry_pi_spi értéke 0, a firmware a Wiznet Ethernet útvonalat használja.
| Define | Jelentés |
|---|---|
default_pulse_width |
Alapértelmezett step impulzusszélesség nanoszekundumban |
default_step_scale |
Alapértelmezett steps per unit érték |
use_timer_interrupt |
Engedélyezi a step parancs ring buffert és az időzítővezérelt step kimenetet |
A use_timer_interrupt csökkentheti a PC és a Pico közötti látható jittert a step parancsok pufferelésével.
Néhány fontos define a footer.h fájlban található, mert board- vagy platformfüggő.
| Define | Jelentés |
|---|---|
use_stepcounter |
Kvadratúrás enkóder helyett step számlálót használ |
debug_mode |
További debug viselkedés Raspberry Pi kommunikációnál |
max_statemachines |
A PIO state machine-ek teljes, származtatott száma |
pico_clock |
A firmware által használt Pico rendszeróra |
Ezeket ne módosítsd könnyelműen, ha nem ismered az időzítésre és a PIO kiosztásra gyakorolt hatásukat.
Néhány hasznos opció CMake-ben választható ki, nem a config.h-ban.
| Opció | Jelentés |
|---|---|
-DWIZCHIP_TYPE=W5100S |
Build W5100S-hez |
-DWIZCHIP_TYPE=W5500 |
Build W5500-hoz |
-DBOARD=pico |
Build Picóhoz |
-DBOARD=pico2 |
Build Pico2-höz |
-DSTEPPER_NINJA_RUN_FROM_RAM=ON |
Futás előtt SRAM-ba másolja a firmware-t |
Példa:
cmake -S firmware -B build -DBOARD=pico2 -DWIZCHIP_TYPE=W5500 -DSTEPPER_NINJA_RUN_FROM_RAM=ON- Válaszd ki a boardot a
breakout_boardsegítségével. - Állítsd be a
stepgens,encodersértékeket és a pin-listákat custom módban. - Válaszd ki az
encoder_pio_versionértékét. - Csak akkor engedélyezd a PWM-et, ha a hardvered igényli.
- Tartsd összhangban a firmware és a HAL driver konfigurációját.
- Minden érdemi konfigurációváltozás után fordítsd újra a firmware-t és a HAL drivert.
Futásidejű hálózati beállításokhoz lásd még: IPCONFIG.hu.md.