ai: вариант 6 генератора (PIO, неиспользуемые биты = 0), синхронизация с РПД

- stub/06-dds-pio-zero-rp2040.py: новый вариант; PIO всегда выводит 8 бит
  (out pins, 8), младшие неиспользуемые линии GP8..GP(15-BITS) — выходы в 0
- stub/04-dds-pio-rp2040.py: подтянута шапка с отметкой о проверке на стенде
- task.md, print/: пересобраны из РПД (таблица вариантов + брошюра студента)
- README.md: список вариантов приведён в соответствие
This commit is contained in:
mss
2026-11-02 13:46:40 +04:00
parent 5c9ec93760
commit ebd2ac546a
5 changed files with 1313 additions and 3 deletions
+8 -1
View File
@@ -189,7 +189,7 @@ K(f) = 1 / √(1 + (f/f_c)²), f_c = 1/(2π·R·C)
### Задание A1 (0,5 ч). Прошивка генератора и первый запуск
В папке `stub/` три варианта генератора — **выберите один**:
В папке `stub/` несколько вариантов генератора — **выберите один**:
| Файл | Платформа | Как формируется синус |
|---|---|---|
@@ -198,6 +198,7 @@ K(f) = 1 / √(1 + (f/f_c)²), f_c = 1/(2π·R·C)
| `04-dds-pio-rp2040.py` | CircuitPython | аппаратный PIO + DMA |
| `04-dds-pio-rp2040.ino` | Arduino, **только earlephilhower** | аппаратный PIO + DMA |
| `05-dds-audiopwm-rp2040.py` | CircuitPython | аудио-ШИМ (`audiopwmio`) + DMA; только до ~3 кГц |
| `06-dds-pio-zero-rp2040.py` | CircuitPython | **PIO + DMA**, все 8 линий GP8..GP15 — выходы, неиспользуемые биты = 0 |
**Рекомендуется вариант на PIO** — точная частота, CPU свободен.
Вариант 3 (`04-dds-pio-rp2040.py`) проверен на стенде: логическим
@@ -209,6 +210,12 @@ K(f) = 1 / √(1 + (f/f_c)²), f_c = 1/(2π·R·C)
**в коде** (перекомпилировать после правки) — в C++ нет разбора формул
на лету, как в CircuitPython-версии.
`06-dds-pio-zero-rp2040.py` — тот же вариант 3, но PIO всегда управляет
всеми восемью линиями GP8..GP15: при `BITS < 8` неиспользуемые младшие
биты **выведены в 0** (низкий уровень), а не остаются свободными входами.
Берите его, если на макете видны наводки/«плавающие» уровни на младших
пинах гребёнки R-2R.
1. Залейте файл на Pico (CircuitPython: переименовать в `code.py`).
2. Откройте консоль, введите `HELP` — увидите список команд.
3. Введите `I` — генератор покажет текущие настройки, включая