Я пытаюсь связать STM32F303 Nucleo с AD7748-4. Паспорт на АЦП:
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768-7768-4.pdf
Проблема в том, что АЦП НЕ выводит преобразованное значение через порт SPI, а скорее использует сигнал готовности данных (DRDY), тактовый сигнал данных (DCLK) и комбинацию из 4 выходов данных (DOUT0-DOUT3). Выходные потоки передают 96 битов последовательно через один провод, если я настроил его таким образом, но время имеет решающее значение в моем приложении, и мне нужно синхронизировать данные с использованием DOUT0 в DOUT2, каждый из которых будет выводить 32 бита. Если бы я передавал данные последовательно, я мог бы обманом заставить порт SPI прочитать их, но это не так. АЦП работает на частоте 20 МГц, поэтому DCLK будет работать на той же частоте. Nucleo работает с максимальной частотой 72 МГц, но когда используется DAM, он устанавливает тактовую частоту на 64 МГц.
В руководстве STM он описывает «регистр входных данных порта GPIO (GPIOx_IDR) (x = A..H)» как регистр только для чтения - я понимаю, что младшие 16 бит могут хранить введенное значение до 16 бит. (скорее всего, для чтения / записи данных в памяти) - поэтому вопрос в том, как я могу настроить GPIO для чтения данных? Я здесь в небольшом тупике. Мой инстинкт подсказывает мне, что Nucleo может быть недостаточно быстрым, чтобы читать данные, поступающие с АЦП ... Есть идеи? Все написано на C / C ++ в основном на голом металле ... Я новичок в Nucleo, не писал код уже 4 года - простите за упущение в знаниях ...