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:
@@ -45,6 +45,9 @@ eumirts5-dds/
|
|||||||
│ ├── 01-dds-generator-rp2040.ino ← вариант 1: Arduino C++
|
│ ├── 01-dds-generator-rp2040.ino ← вариант 1: Arduino C++
|
||||||
│ ├── 01-dds-generator-rp2040-circuitpython.py ← вариант 2: CircuitPython
|
│ ├── 01-dds-generator-rp2040-circuitpython.py ← вариант 2: CircuitPython
|
||||||
│ ├── 04-dds-pio-rp2040.py ← вариант 3: PIO + DMA
|
│ ├── 04-dds-pio-rp2040.py ← вариант 3: PIO + DMA
|
||||||
|
│ ├── 04-dds-pio-rp2040.ino ← вариант 4: PIO + DMA (Arduino)
|
||||||
|
│ ├── 05-dds-audiopwm-rp2040.py ← вариант 5: аудио-ШИМ
|
||||||
|
│ ├── 06-dds-pio-zero-rp2040.py ← вариант 6: PIO, лишние биты = 0
|
||||||
│ ├── 02-izmerenie-achh.py ← автоснятие АЧХ (на ПК)
|
│ ├── 02-izmerenie-achh.py ← автоснятие АЧХ (на ПК)
|
||||||
│ └── 03-blank-otchyota.md ← бланк отчёта
|
│ └── 03-blank-otchyota.md ← бланк отчёта
|
||||||
└── print/ ← брошюра задания (DOCX)
|
└── print/ ← брошюра задания (DOCX)
|
||||||
@@ -57,6 +60,9 @@ eumirts5-dds/
|
|||||||
| `01-...ip2040.ino` | есть Arduino IDE | программный DDS, работает на обоих ядрах |
|
| `01-...ip2040.ino` | есть Arduino IDE | программный DDS, работает на обоих ядрах |
|
||||||
| `01-...-circuitpython.py` | есть CircuitPython | то же, но медленнее (интерпретатор) |
|
| `01-...-circuitpython.py` | есть CircuitPython | то же, но медленнее (интерпретатор) |
|
||||||
| `04-dds-pio-rp2040.py` | **рекомендуется** | аппаратный PIO + DMA, точная частота, CPU свободен |
|
| `04-dds-pio-rp2040.py` | **рекомендуется** | аппаратный PIO + DMA, точная частота, CPU свободен |
|
||||||
|
| `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 | то же, что `04-...py`, но неиспользуемые младшие биты порта выведены в 0 |
|
||||||
|
|
||||||
Для варианта на PIO нужна библиотека `adafruit_pioasm` в папке `/lib`
|
Для варианта на PIO нужна библиотека `adafruit_pioasm` в папке `/lib`
|
||||||
на плате.
|
на плате.
|
||||||
|
|||||||
Binary file not shown.
@@ -5,8 +5,13 @@
|
|||||||
# для режима «синус» формирует аппаратная PIO-машина RP2040, данные в неё
|
# для режима «синус» формирует аппаратная PIO-машина RP2040, данные в неё
|
||||||
# подаются через DMA, а АЦП читается библиотекой analogbufio.
|
# подаются через DMA, а АЦП читается библиотекой analogbufio.
|
||||||
#
|
#
|
||||||
# ЧЕРНОВИК (AI-сгенерировано, 2026-10-27). Требует проверки преподавателем
|
# ПРОВЕРЕНО НА СТЕНДЕ 2026-10-28 (преподаватель): цифровой выход PIO
|
||||||
# на реальном стенде.
|
# снят логическим анализатором — форма синуса верная. Лестница R-2R при
|
||||||
|
# этой проверке НЕ запаивалась, поэтому аналоговая часть (размах после
|
||||||
|
# внешнего ФНЧ, реальная разрядность по постоянному уровню) ещё не
|
||||||
|
# измерялась.
|
||||||
|
#
|
||||||
|
# AI-сгенерировано, 2026-10-27; проверка цифровой части — 2026-10-28.
|
||||||
#
|
#
|
||||||
# Требует библиотеку: adafruit_pioasm -> скопировать в /lib на плате.
|
# Требует библиотеку: adafruit_pioasm -> скопировать в /lib на плате.
|
||||||
# https://github.com/adafruit/Adafruit_CircuitPython_PIOASM
|
# https://github.com/adafruit/Adafruit_CircuitPython_PIOASM
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -189,7 +189,7 @@ K(f) = 1 / √(1 + (f/f_c)²), f_c = 1/(2π·R·C)
|
|||||||
|
|
||||||
### Задание A1 (0,5 ч). Прошивка генератора и первый запуск
|
### Задание 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.py` | CircuitPython | аппаратный PIO + DMA |
|
||||||
| `04-dds-pio-rp2040.ino` | Arduino, **только earlephilhower** | аппаратный PIO + DMA |
|
| `04-dds-pio-rp2040.ino` | Arduino, **только earlephilhower** | аппаратный PIO + DMA |
|
||||||
| `05-dds-audiopwm-rp2040.py` | CircuitPython | аудио-ШИМ (`audiopwmio`) + DMA; только до ~3 кГц |
|
| `05-dds-audiopwm-rp2040.py` | CircuitPython | аудио-ШИМ (`audiopwmio`) + DMA; только до ~3 кГц |
|
||||||
|
| `06-dds-pio-zero-rp2040.py` | CircuitPython | **PIO + DMA**, все 8 линий GP8..GP15 — выходы, неиспользуемые биты = 0 |
|
||||||
|
|
||||||
**Рекомендуется вариант на PIO** — точная частота, CPU свободен.
|
**Рекомендуется вариант на PIO** — точная частота, CPU свободен.
|
||||||
Вариант 3 (`04-dds-pio-rp2040.py`) проверен на стенде: логическим
|
Вариант 3 (`04-dds-pio-rp2040.py`) проверен на стенде: логическим
|
||||||
@@ -209,6 +210,12 @@ K(f) = 1 / √(1 + (f/f_c)²), f_c = 1/(2π·R·C)
|
|||||||
**в коде** (перекомпилировать после правки) — в C++ нет разбора формул
|
**в коде** (перекомпилировать после правки) — в C++ нет разбора формул
|
||||||
на лету, как в CircuitPython-версии.
|
на лету, как в CircuitPython-версии.
|
||||||
|
|
||||||
|
`06-dds-pio-zero-rp2040.py` — тот же вариант 3, но PIO всегда управляет
|
||||||
|
всеми восемью линиями GP8..GP15: при `BITS < 8` неиспользуемые младшие
|
||||||
|
биты **выведены в 0** (низкий уровень), а не остаются свободными входами.
|
||||||
|
Берите его, если на макете видны наводки/«плавающие» уровни на младших
|
||||||
|
пинах гребёнки R-2R.
|
||||||
|
|
||||||
1. Залейте файл на Pico (CircuitPython: переименовать в `code.py`).
|
1. Залейте файл на Pico (CircuitPython: переименовать в `code.py`).
|
||||||
2. Откройте консоль, введите `HELP` — увидите список команд.
|
2. Откройте консоль, введите `HELP` — увидите список команд.
|
||||||
3. Введите `I` — генератор покажет текущие настройки, включая
|
3. Введите `I` — генератор покажет текущие настройки, включая
|
||||||
|
|||||||
Reference in New Issue
Block a user