Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Sdram+stm32h743 sdram теряет данные

Татьяна Свидунович Ученик (98), открыт 2 недели назад
у меня самодельная плата с stm32h743bit6 + sdram is42s32800j-6bli
собрал код в кубе весь конфиг приложу, запустил тест памяти записываю а потом читаю пару тысяч слов , почти всегда из этих пару тысяч теряется несколько слов.
пробовал понижать частоту пересмотрел даташиты , конфиги в интернете тоже не помогли.
 //структура инита sdram
IS42S32800J_Context_t SDR = {FMC_SDRAM_CMD_TARGET_BANK1,FMC_SDRAM_CMD_AUTOREFRESH_MODE,1689,0,0<<3,2<<4,0<<7,1<<9};

ссылка на код инита sdram и документацию
https://disk.yandex.ru/d/Hl6a5cH8cErJrw

тактирование fms 200MHz
2 ответа
Def Просветленный (41210) 2 недели назад
Я далёк от stm и прочих контроллеров и особенностей их работы с модулями памяти, но имхо, здесь очевидно, что дело в отсутствии обновления или его неправильной реализации. Нужно читать даташит и искать там алгоритм этого самого рефреша и ноги, за него ответственные. В простейших случаях нужно по таймингу дёргать единственную ногу, в более сложных - нужно вычитывать ячейку из блока, размером, скажем в 256 байт непрерывно по всем адресам.
саша свидунович ЮзерУченик (99) 2 недели назад
Тоже думаю что в этом дело, но рефреш настроен по даташиту

При том что если записывать одинаковые значения то данные не теряются
Татьяна Просветленный (28778) 2 недели назад
Похоже, что вы сталкиваетесь с проблемами удержания данных в SDRAM на вашей самодельной плате с STM32H743BIT6 и IS42S32800J-6BLI. Вот несколько шагов и соображений, которые могут помочь в устранении этой проблемы:

Проверьте конфигурацию SDRAM:
Убедитесь, что параметры времени SDRAM и последовательность инициализации правильно настроены в вашем проекте CubeMX. Обратите особое внимание на такие параметры, как частота обновления, латентность CAS и другие настройки времени.

Настройки тактовой частоты:
Проверьте, что тактовая частота FMC (Гибкий Контроллер Памяти) установлена правильно. Время работы SDRAM очень чувствительно к настройкам тактовой частоты, и неправильные настройки могут привести к проблемам удержания данных.

Макет PCB:
Убедитесь, что макет вашей печатной платы соответствует лучшим практикам проектирования высокоскоростной памяти. Это включает в себя правильную целостность сигнала, завершение и развязку питания.

Питание:
Убедитесь, что питание SDRAM стабильно и соответствует требуемым спецификациям. Любые колебания или шум в питании могут вызвать проблемы с удержанием данных.

Тестовые шаблоны:
Запустите тесты памяти с различными шаблонами (например, чередующиеся единицы и нули, шахматная доска), чтобы определить, зависит ли потеря данных от шаблона.

Температурные и экологические факторы:
Учитывайте рабочую температуру и условия окружающей среды, так как они могут влиять на производительность SDRAM.

Изучение даташита:
Повторно ознакомьтесь с даташитом IS42S32800J, чтобы убедиться, что все рекомендации по конфигурации и эксплуатации соблюдены.

Код структуры для инициализации SDRAM на основе вашего контекста:

 IS42S32800J_Context_t SDR = { 
FMC_SDRAM_CMD_TARGET_BANK1,
FMC_SDRAM_CMD_AUTOREFRESH_MODE,
1689,
0,
0 << 3,
2 << 4,
0 << 7,
1 << 9
};

// Пример настроек конфигурации
#define REFRESH_COUNT ((uint32_t)0x0603) // Счетчик обновления SDRAM (100 МГц SD-тактирование)
#define IS42S32800J_TIMEOUT ((uint32_t)0xFFFF)
Рекомендованные шаги по устранению неисправностей:
Переоценка кода инициализации:
Убедитесь, что последовательность инициализации соответствует спецификациям, изложенным в даташите IS42S32800J.

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

Запуск комплексных тестов памяти:
Реализуйте серию тестов памяти для обнаружения любых закономерностей в потере данных.

Консультации с технической поддержкой:
Если проблема не устраняется, обратитесь в службы поддержки STMicroelectronics или производителя SDRAM для получения дальнейшей помощи.
саша свидунович ЮзерУченик (99) 2 недели назад
При заполнении памяти одинаковыми данными ошибка тоже остаётся
Похожие вопросы