Jump to content

    

что-то не так с SDRAM

запустил u-boot на STM32F429

запустил mtest получил вывод:

 

Mem error @ 0xD0000000: found 00100000, expected 00000000

Mem error @ 0xD0000004: found 00100001, expected 00000001

Mem error @ 0xD0000008: found 00100002, expected 00000002

Mem error @ 0xD000000C: found 00100003, expected 00000003

Mem error @ 0xD0000010: found 00100004, expected 00000004

Mem error @ 0xD0000014: found 00100005, expected 00000005 
.....

 

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

Edited by Elex_MD

Share this post


Link to post
Share on other sites

Похоже, что 24-й бит всегда равен 1, как будто испорчена одна нога шины данных, и записи 0 по этой линии не доходят до памяти. Или с частотами что-то не так, и самая слабая нога глючит первой.

Есть исходники этого теста mtest ?

Или самому быстренько написать подобное...

Share this post


Link to post
Share on other sites
Похоже, что 24-й бит всегда равен 1, как будто испорчена одна нога шины данных, и записи 0 по этой линии не доходят до памяти. Или с частотами что-то не так, и самая слабая нога глючит первой.

Есть исходники этого теста mtest ?

Или самому быстренько написать подобное...

шина данных 16ти битная. соответственно, если бы была испорчена нога, то получили бы два бита неверных.

Share this post


Link to post
Share on other sites

У нас бывали случаи, когда шина PCI на фазе данных не могла "встать" во много 1 из многих 0 при соседних передачах совсем разных данных -- ток где-то требовался приличный, изменение свойств выводов ПЛИС помогало (иногда не окончательно, только прореживало). А обратно -- из 1 в 0 -- без проблем падало. Вдруг здесь тоже где-то мультиплексирование сильно меняющихся данных, да приёмник защёлкивает недофлуктуации от плохого сигнала питания или влияния соседних шин ? Могли и плату "засоплить", "недопрогреть", хотя проверка ОТК должна быть у китайцев.

В МК частоты небольшие, можно ж осциллом все доступные "памятные" и процовые ноги обглядеть и сравнить формы времянок, пустив зацикленный кусок кода, который всё время пишет 00000000 в D0000000, а читает обратно 00100000 ? Если всё очень стабильно, проблему будет видно мгновенно. Под микроскопом потом капли припоя вдруг увидятся.

Я вообще не железячник, это надо в отдел регулировки всякой техники обращаться, там народ с любыми соплями борется успешно.

Share this post


Link to post
Share on other sites

Посмотрите внимательно исходники memtest'а. Я как-то сталкивался, что там были неинициализированные данные и тест фейлился. Попробуйте сами записать своё значение и прочитать.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this