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

Почему HAL ставит частоту SDRAM в 2 раза ниже (STM32H743) ?

Друзья,

есть на плате микроконтроллер (STM32H743) и SDRAM (IS42S16160G). Все в принципе работает, данные в SDRAM пишутся, считываются, проблем вроде нет.

Однако тыкнув осциллографом в сигнал CLK на SDRAM я увидел, что частота вдвое ниже чем ожидалось, 71,5 МГц, а должно быть 143 МГц.

Проект сделан в CubeMX. На вкладке Clock Configuration явно видно, что на FMC идет 143МГц. Однако параметр SDRAM_common_clock = "2 HCLK clock cycles" превращает 143 МГц в 71,5 МГц.  (а меньше выбрать нельзя)

Это так и должно быть ? 

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


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

1 hour ago, TOG said:

Однако тыкнув осциллографом в сигнал CLK на SDRAM я увидел, что частота вдвое ниже чем ожидалось, 71,5 МГц, а должно быть 143 МГц.

Выкладки из ПДФ:

SDRAM/LPSDR SDRAM, NOR/NAND Flash
clocked up to 133 MHz in synchronous mode

The maximum FMC_CLK/FMC_SDCLK frequency for synchronous accesses is the
FMC kernel clock divided by 2.

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


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

Еще рекомендую ознакомиться с разделом "FMC Characteristics" DS: в зависимости от ревизии и напряжения питания, максимальная частота FMC_CLK при работе с SDRAM не должна превышать 100 или 110МГц. То есть SDRAM доступна в режиме 50/55МГц всего-навсего.

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


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

On 10/22/2021 at 3:55 PM, Tolyaha said:

Выкладки из ПДФ:

SDRAM/LPSDR SDRAM, NOR/NAND Flash
clocked up to 133 MHz in synchronous mode

The maximum FMC_CLK/FMC_SDCLK frequency for synchronous accesses is the
FMC kernel clock divided by 2.

Нашел, увидел. Спасибо, Tolyaha !

On 10/22/2021 at 5:47 PM, aaarrr said:

Еще рекомендую ознакомиться с разделом "FMC Characteristics" DS: в зависимости от ревизии и напряжения питания, максимальная частота FMC_CLK при работе с SDRAM не должна превышать 100 или 110МГц. То есть SDRAM доступна в режиме 50/55МГц всего-навсего.

Спасибо, aaarrr !

В общем подведя итог получается следующее:

1. Максимальная частота клока на SDRAM:  FMC_CLK = 100 MHz (так пишет первая страница даташита)

2. В ревизии V максимальная частота клока на SDRAM:  FMC_CLK = 110 MHz (стр. 272 даташита)

3. Частота fmc_ker_ck должна быть вдвое выше. Поскольку в даташите нигде не указаны ограничения на fmc_ker_ck, посмотрел в CubeMX, там они пишут что fmc_ker_ck не должна превышать 300 МГц.

Получается, что задав фундаментальную частоту fmc_ker_ck = 220 MHz, по идее на SDRAM мы должны получить FMC_CLK = 110 MHz и выжать таким образом максимум из FMC.

Вот только в реальности, я могу выставить fmc_ker_ck = 160 MHz и память работает без ошибок. Но если выставить fmc_ker_ck = 160,5 MHz, то сразу появляются ошибки чтения. Их не много (~ 20 штук на 16 Мегабайт), но это уже не приемлемо.

 

fmc1.jpg

fmc2.jpg

fmc3.jpg

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


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

On 10/25/2021 at 6:31 AM, TOG said:

Вот только в реальности, я могу выставить fmc_ker_ck = 160 MHz и память работает без ошибок. Но если выставить fmc_ker_ck = 160,5 MHz, то сразу появляются ошибки чтения. Их не много (~ 20 штук на 16 Мегабайт), но это уже не приемлемо.

Может сама плата уже не тянет? звоны, фронты затянуты, уровни не те, питания не хватает, еще чего-нибудь. Кстати, убедитесь что чаcтота действительно была 160, и стала действительно 160.5 МГц - может тестировали на сильно меньше чем 160, или после нее установили сильно больше чем 160.5.

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


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

Перестарался я с делителями. Действительно, должно на 100МГц работать. OSPEED на пинах FMC правильно выставлены?

 

Вообще, обилие тем типа "SDRAM на STM32H7 не работает как надо" наводит на мысль, что в консерватории, возможно, что-то не так.

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


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

2 часа назад, aaarrr сказал:

Вообще, обилие тем типа "SDRAM на STM32H7 не работает как надо" наводит на мысль, что в консерватории, возможно, что-то не так.

Осталось понять: "в какой именно консерватории?" Кубо-кальной или в самой периферии МК?  :wink:

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


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

4 minutes ago, jcxz said:

Осталось понять: "в какой именно консерватории?" Кубо-кальной или в самой периферии МК?  :wink:

Поначалу я думал, что люди, ранее не имевшие дела с более-менее скоростными сигналами, массово принялись делать свое железо, и отсюда многочисленные проблемы.

Теперь сомневаюсь. На куб я бы особо не грешил - десять раз исправили бы уже, будь там такого уровня косяк.

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


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

4 часа назад, aaarrr сказал:

На куб я бы особо не грешил - десять раз исправили бы уже, будь там такого уровня косяк.

Это легко проверить, посмотрев в отладчике значения битовых полей в регистрах после инициализации кубом и сравнив их с требуемыми по логике работы блока.

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


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

 

On 10/25/2021 at 9:31 AM, TOG said:

Вот только в реальности, я могу выставить fmc_ker_ck = 160 MHz и память работает без ошибок. Но если выставить fmc_ker_ck = 160,5 MHz, то сразу появляются ошибки чтения. Их не много (~ 20 штук на 16 Мегабайт), но это уже не приемлемо.

Косяк  у меня был в том, что сигнал FMC_SDNE0 (SDRAM_CS) был подключен к порту PC2_C, а это низкоскоростной аналоговый порт (так пишет даташит, стр. 67). Фронты FMC_SDNE0 (SDRAM_CS) были очень сильно завалены. Когда я переназначил этот сигнал через альтернативную функцию на порт PC4 (обычный высокоскоростной GPIO), все заработало как надо. Теперь FMC работает на своей максимальной частоте 220 МГц (FMC_ker_ck = 220 MHz), соответственно SDRAM работает на частоте 110 MHz , ошибок чтения нет.

 

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


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

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

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

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

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

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

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

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

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

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