Files
RadioPhotonic_PCB_software/Examples/SD_Card/README.md
2026-04-24 16:51:15 +03:00

71 lines
2.5 KiB
Markdown

SD card example layout
Firmware expects a plain FAT volume handled by FatFs. In this project `exFAT` is disabled in [ffconf.h](/home/europa/Desktop/RadioPhotonic_PCB_software/Inc/ffconf.h:213), so the safe choice is `FAT32` with a standard MBR partition.
Recommended card preparation:
1. Format the card as `FAT32`.
2. Copy the files from this directory to the root of the SD card, or keep the same relative folder structure.
3. Make sure `profiles.csv` is present at the root path expected by the firmware.
Expected file set:
- `profiles.csv`
- `profiles/profile_1_saw.ini`
- `profiles/profile_2_custom_wave.ini`
- `waves/wave_custom.csv`
`profiles.csv` format:
- One profile per line.
- Columns: `display_name, profile_ini_path, optional_waveform_csv_path`
- Empty lines are ignored.
- Lines starting with `#` or `;` are ignored.
Example:
```csv
Factory Saw,profiles/profile_1_saw.ini,
Custom SRAM,profiles/profile_2_custom_wave.ini,waves/wave_custom.csv
```
Profile `.ini` format:
- One `key=value` pair per line.
- Empty lines are ignored.
- Lines starting with `#` or `;` are ignored.
- Unknown keys are ignored.
Additional profile-controlled devices:
- `AD9102` waveform settings are stored through the `waveform_*` keys.
- `AD9833` settings are stored through `ad9833_enable`, `ad9833_triangle`, and `ad9833_frequency_word`.
- STM32 internal DAC settings are stored through `stm32_dac_enable` and `stm32_dac_code`.
- `DS1809` is stored as an absolute target above the minimum tap using `ds1809_apply` and `ds1809_position_from_min`.
Notes:
- `ad9833_frequency_word` uses the same raw 28-bit tuning word that the old serial command accepted.
- `ds1809_position_from_min` is clamped to the valid `0..63` range by the firmware.
- When `ds1809_apply=true`, the firmware first drives the potentiometer fully down and then steps it up to the requested absolute position.
Waveform file format:
- The firmware scans the file with `strtol()`.
- Any integer token found in the file becomes one AD9102 SRAM sample.
- Separators may be commas, spaces, tabs, or newlines.
- Do not put comments or stray digits into the waveform file, because any parsed integer will be treated as a sample.
Supported `waveform_mode` values:
- `saw`
- `generated_sram`
- `custom_sram`
Minimal boot behavior:
- On startup the firmware loads the first valid line from `profiles.csv`.
- It then loads the referenced profile `.ini`.
- If `boot_enabled=true`, the profile is activated.
- If `auto_run=true`, the board immediately enters `WORK` mode.