Это старая версия документа!
Содержание
DSP Readback
Блок DSP Readback позволяет считывать значения обратно с DSP в любой точке вашей принципиальной схемы.
Число, отображаемое на экране, представляет собой значение данных, отправленных обратно с DSP, с учетом всех блоков слева от блока Readback. Каждый раз, когда вы нажимаете Read, это значение обновляется последними данными с DSP. Отображая выходное значение любого блока в любом желаемом формате, Readback широко используется для отладки. Readback также можно использовать для хранения значений, к которым микроконтроллер может обращаться через управляющий порт.
Значения могут считываться в шестнадцатеричном или десятичном формате. Для последнего необходимо указать, в каком формате должно отображаться число. По умолчанию для SigmaDSP первого поколения (включая AD1940, AD1941, ADAU1701, ADAU1702, ADAU1401) используется формат 5.19: 5 бит для целой части, 19 для десятичной. Любые изменения этого формата приведут к сдвигу десятичного значения отображаемого числа.
SigmaDSP второго поколения, такие как ADAU1761, ADAU1781 и ADAU1442, могут считывать значения с полной точностью 28 бит (5.23).
SigmaDSP третьего поколения, такие как ADAU1452, ADAU1466 и ADAU1467, могут считывать значения с полной точностью 32 бита (8.24).
См. здесь дополнительную информацию о числовых форматах, используемых в SigmaDSP.
Пример схемы с использованием этого блока см. в примере Basic DSP.
Некоторые примеры использования этого модуля для проверки пикового или среднеквадратичного уровня сигнала см. в этом FAQ на форуме EngineerZone: Monitoring average and instantaneous signal levels
Настройка непрерывного обратного чтения
Ячейка DSP Readback может быть настроена на многократное считывание данных с целевого DSP через регулярные промежутки времени. Чтобы включить этот режим, щелкните правой кнопкой мыши по ячейке и выберите Start Continuous Read.
Вы также можете щелкнуть по маленькому кружку в ячейке, чтобы включить или отключить режим непрерывного чтения. Когда кружок синий, режим непрерывного чтения активен. Когда кружок оранжевый, режим непрерывного чтения неактивен.
Когда режим непрерывного чтения активен, вы можете изменить частоту обновления, щелкнув правой кнопкой мыши по ячейке и выбрав один из вариантов в списке. Выбор более низкой частоты обновления позволит вам иметь больше ячеек обратного чтения, работающих одновременно, и снизит вероятность ошибки недогрузки буфера (buffer underrun) на интерфейсе USB.
Доступ к значениям обратного чтения с микроконтроллера
Ниже предполагается, что у вас есть работающая платформа микроконтроллера с кодом интерфейса SigmaDSP на основе Interfacing SigmaDSP Processors with a Microcontroller.
Блок Readback имеет один адрес только для чтения, который хранит значение со входного пина. Значение обновляется с каждой выборкой аудио. Вы можете прочитать значение и декодировать его в float:
double readback_val = SIGMA_READ_REGISTER_FLOAT(MOD_READBACK1_READBACKALGNEWSIGMA3001VALUE_ADDR);
Сохраните целочисленное представление:
int32_t readback_val = SIGMA_READ_REGISTER_INTEGER(MOD_READBACK1_READBACKALGNEWSIGMA3001VALUE_ADDR, 4);
Или просто выведите значение в последовательный порт; отлично подходит для отладки.
SIGMA_PRINT_REGISTER(MOD_READBACK1_READBACKALGNEWSIGMA3001VALUE_ADDR, 4);
Пример вывода: VALUE AT 0x35: 0x01 00 00 00



