# AD7766 — принятые решения Ссылки на страницы — по AD7766 Data Sheet Rev. D. ## Тактирование и частота дискретизации | Параметр | Значение | Обоснование | |:--|:--|:--| | Системный клок | 50 МГц (E2) | генератор Tang Primer 25K | | MCLK | 1.000 МГц = 50/50 | t2 min 100 нс, t3 max 900 нс, f max 1.024 МГц (Table 3, стр. 6-7) | | ODR АЦП | 125 000 Гц | ODR = MCLK/8 для AD7766 (Table 6, стр. 15) | | Дециматор | sinc^1 (среднее по 10) | понижение обязательно: 125 kSPS x 3 байта = 375 кБ/с не влезает в UART | | Выходная ЧД | 12 500 Гц | совпадает с FS в F:\PyPrj\Signal_analayzer | | SCLK | 6.25 МГц = 50/8 | 24 бита за 3.84 мкс при окне чтения 7.7 мкс | Окно чтения: DRDY низкий в течение tDRDY - t5 = 8000 - 294 = 7706 нс (Table 3). MCLK взят 1.000 МГц вместо максимальных 1.024 МГц ради целого деления от 50 МГц (без PLL) и ради ровной выходной ЧД 12 500 Гц. ## Интерфейс АЦП Регистров конфигурации у AD7766 нет — интерфейс только на чтение (стр. 17). - Сброс/синхронизация — низкий импульс на SYNC/PD (пин 7), цепь `RESET` на гребёнке. События защёлкиваются по нарастающим фронтам MCLK (стр. 17). - После снятия SYNC/PD выждать tSETTLING = 590 x tMCLK = 590 мкс (Table 7). - Чтение: по спаду DRDY опустить CS, MSB появляется на SDO по спаду CS, остальные 23 бита выдвигаются спадами SCLK (стр. 17, Figure 3). Мастер защёлкивает биты по нарастающим фронтам SCLK. - SDI (пин 15) — вход daisy-chain, для одиночного АЦП постоянный '0' (стр. 18). ## Шкала VREF+ = 5 В -> синфазный уровень 2.5 В, каждый вход 0...5 В, дифференциально +-5 В (стр. 16, 20). Полная шкала кода 0x7FFFFF = +5 В, 0x800000 = -5 В. В Signal_analayzer нужно `'V_REF': 5`. ## Формат кадра UART Бод 921600, 8N1. 50 отсчётов в кадре -> 157 байт, 250 кадров/с, 39.25 кБ/с (43% канала). | Поле | Байт | Описание | |:--|--:|:--| | SYNC | 2 | `A5 5A` | | FRAME_CNT | 2 | uint16 BE, инкремент на кадр | | STATUS | 1 | бит0 — переполнение FIFO, бит1 — сорван счёт DRDY | | DATA | 150 | 50 отсчётов x 24 бита, MSB first | | CRC16 | 2 | CCITT, poly 0x1021, init 0xFFFF, по FRAME_CNT..DATA | ## Приём на ПК Пишутся два файла: - `*.raw` — байт в байт всё, что пришло из порта, до разбора. Отладочный. - `*.bin` — только отсчёты, 3 байта BE на отсчёт, без служебных полей. Читается функцией `read_24bit_bin()` из Signal_analayzer без переделок. Кадр с несошедшейся CRC отбрасывается, а пропуск по FRAME_CNT добивается нулями, чтобы не сдвинулась ось времени. Места вставок пишутся в лог.