Перейти к содержанию
    

STM32H743ZI + FPGA + Mux PSRAM

К микроконтроллеру STM32H7 подключено ПЛИС по мультиплекированной асинхронное шине Address / Data на 16 бит (без частоты и сигнала ожидания, FIFO по записи отключено, кеш процессора отключен, оптимизация компилятора тоже). Все сконфигирировано через последний CubeMx. Проблема в том, что не удается корректно читать ПЛИС. Уже думаю сымитировать шину ножками. Чтения по адресу 0x6000'0000 инициализируют обмен, как просто по volatile указателю так и через HAL функции. Пишу логическим анализатором ПЛИС всю шину. Управляющие сигналы похожи на ожидаемые (address valid, nwe, noe, ne1, byte enable), странности в поведение адреса и количестве обменов.

Первый вопрос: как отключить кеширование внешней шины. Чтение шины происходит даже раньше, чем я его запрашиваю и сразу пакетом (много чтений).

Второй вопрос: странный протокол адреса. При чтение 32х разрядного числа по адресу 0x6000'0000 получаю в первом цикле адрес 0x0000, во втором 0x0201. Такое впечатление что 2 какой-то управляющий сигнал в 9 бите (слипнуться ноги не могут)

 

Изменено пользователем Manfred

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

57 minutes ago, Manfred said:

Все сконфигирировано через последний CubeMx.

Похоже, проблема именно в этом :big_boss:

 

Прошу прощения не мог удержаться :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Аналогично с STM32F7: Перенесите работу с памятью в адресное пространство 0xC000'0000 и сделайте так:

    SYSCFG->MEMRMP |= SYSCFG_MEMRMP_SWP_FMC_0;        // Remapping memory (FMC->SRAM from 0x60000000 to 0xC0000000).

Я даже нашёл причину на другом форуме. Довольно занимательный поиск причины.

Изменено пользователем AlanDrakes

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/15/2019 at 7:34 PM, AlanDrakes said:

Аналогично с STM32F7: Перенесите работу с памятью в адресное пространство 0xC000'0000 и сделайте так:


    SYSCFG->MEMRMP |= SYSCFG_MEMRMP_SWP_FMC_0;        // Remapping memory (FMC->SRAM from 0x60000000 to 0xC0000000).

Я даже нашёл причину на другом форуме. Довольно занимательный поиск причины.

 

Спасибо, перенос в 0xC000_0000 определенно помог, адреса на внешней шине теперь правильные выставляются

Изменено пользователем Manfred

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...