Вообщем, есть такая штука, как российская DDS 1508ПЛ8Т.
Она умеет подключаться к микроконтроллеру либо по SPI, либо по 16-разрядной параллельной шине. Я хочу подключить её через параллельную шину к STM32F427, или к STM32F407.
Конфигурация DDS состоит в записи необходимых данных в регистры DDS.
На рисунке набросал его алгоритм. В двух словах, есть 16-разрядов данных со стандартными стробами чтения (RDn) и записи (WRn), бит выбора кристалла CSn и бит ADR (который определяет, что именно передается, адрес или данные).
Запись в регистр DDS происходит в два этапа: сначала в шину записывается адрес интересующего нас регистра, потом записываются данные.
Биты DATA[0..15] подключаются к шине данных микроконтроллера, а бит ADR подключается к одному из битов адреса микроконтроллера (например к биту ADDRESS0). Тогда, если, например, адресное пространство шины отображается на 0x50000000 запись адреса и запись данных будет такое.
Значение 0x50000000 я взял из российского МК, в STM32F4 наверняка оно другое.
Т.е. поставили ADR в 0, и данные на шине - это адрес регистра, поставили ADR в 1, данные с шины идут а регистр, адрес которого мы записали перед этим.
Вообщем, примерно такой вот код.
Код:
(*(volatile uint16_t *)0x50000000) = address;
(*(volatile uint16_t *)0x50000001) = data;
Вопрос вот в чём.
Хочу подключить также к аппаратной внешней шине STM32F407.
Открыл STMCube, выбрал примерно так
Верно ли выбрал, что это модуль FSMC?
но в STM32F427 нет FSMC, а есть FMC (который похоже более продвинутый)
В нём выбрал, что DDS это SRAM и он предложил использовать такие пины.
Вообщем, хочу спросить совета опытных товарищей: верно ли подключил DDS к STM32F407 и STM32F427, при учёты описанный выше специфики работы? И вообще, заработает ли такая связка (STM32 + 1508ПЛ8)?