реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Прошивка OMAP L-138, Проблемы с прошивкой процессора OMAP L-138
alexey123_45
сообщение Dec 20 2017, 14:26
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 1-03-13
Пользователь №: 75 850



Здравствуйте
Столкнудся с такой проблемой: Развели плату на базе OMAP L-138(схема платы во вложении). Настройл загрузочные пины на загрузку по UART2. подключил утилиту OMAP-L138_FlashAndBootUtils_2_40. Дал команду на стирание NAND
sfh_OMAP-L138.exe -erase -targetType OMAPL138 -flashType NAND -p COM4 -v
В консоли лог выполнения программы выглядит так

-----------------------------------------------------
TI Serial Flasher Host Program for OMAP-L138
© 2017, Texas Instruments, Inc.
Ver. 1.67
-----------------------------------------------------

[TYPE] Global erase
[TARGET] OMAPL138
[DEVICE] NAND
[NAND Block] 1
Attempting to connect to device /dev/ttyUSB0...
Press any key to end this program at any time.
(AIS Parse): Read magic word 0x41504954.
(AIS Parse): Waiting for BOOTME... (power on or reset target now)
(AIS Parse): BOOTME received!
(AIS Parse): Performing Start-Word Sync...
(AIS Parse): Performing Ping Opcode Sync...
(AIS Parse): Processing command 0: 0x58535901.
(AIS Parse): Performing Opcode Sync...
(AIS Parse): Loading section...
(AIS Parse): Loaded 14100-Byte section to address 0x80000000.
(AIS Parse): Processing command 1: 0x58535901.
(AIS Parse): Performing Opcode Sync...
(AIS Parse): Loading section...
(AIS Parse): Loaded 1352-Byte section to address 0x80003714.
(AIS Parse): Processing command 2: 0x58535906.
(AIS Parse): Performing Opcode Sync...
(AIS Parse): Performing jump and close...
(AIS Parse): AIS complete. Jump to address 0x80000000.
(AIS Parse): Waiting for DONE...
(AIS Parse): Boot completed successfully.
Waiting for SFT on the OMAP-L138...
Target: BOOTUBL
Target: DONE

И все далее программа не идет
Взял плату другово производителя по схемотехнике такая же только NAND другой фирмы k9f4g08u0d. На ней все работает, программа корректно завершается
Посмотрел осциллографом пины, которые подключены к NAND на этой плате, там все соответствует временной диаграмме.
Посмотрел на нашей плате все порты стоят в +3.3В и ни на что не реагируют
В чем может быть проблема?
Прикрепленные файлы
Прикрепленный файл  SOM_P.zip ( 275.32 килобайт ) Кол-во скачиваний: 19
 
Go to the top of the page
 
+Quote Post
Viwon
сообщение Dec 21 2017, 09:27
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 18-03-14
Пользователь №: 80 976



Что даже EMA_NAND_CS не шевелится?
Go to the top of the page
 
+Quote Post
alexey123_45
сообщение Dec 21 2017, 09:32
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 1-03-13
Пользователь №: 75 850



Да, ни один пин, подключенный к NAND.
Go to the top of the page
 
+Quote Post
Viwon
сообщение Dec 21 2017, 10:58
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 18-03-14
Пользователь №: 80 976



Получается программа чистки NAND зависает по не понятным причинам. Вы какой-нибудь другой код на процессоре запускали, работал?
Go to the top of the page
 
+Quote Post
alexey123_45
сообщение Dec 21 2017, 11:50
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 1-03-13
Пользователь №: 75 850



Нет не запускал, но я сделал следующее: Я скачал исходники утилиты прошивочной. И в функции выдачи команды на NAND поставил бесконечный цикл и стал выдавать на все ножки 1-0 в бесконечном цикле. На рабочей плате ножки дергаются(вижу осциллографом), на нашей нет.Т.е. вообще ни один пин не дернулся.
Похоже что порты стоят в 3-м состоянии. Но странно, утилита одна и та же, процессор явно грузится и программа там работает, т.к. консольный лог я вижу и он соответствует рабочей плате.Я ставлю свои контрольные сообщения, они тоже выводятся одинаково на обоих платах. Не может ли быть аппаратная проблема в самом процессоре?

Сообщение отредактировал alexey123_45 - Dec 21 2017, 11:57
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 21 2017, 12:13
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 612
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(alexey123_45 @ Dec 21 2017, 14:50) *
Не может ли быть аппаратная проблема в самом процессоре?

Проверьте питание RVDD.

Еще OMAP-L138 можно глухо завесить, если не потать питание RTC, а затем выполнить обращение к его регистрам. Загрузчику
это ни к чему, но все же. И лучше, конечно, грузить свою программу.
Go to the top of the page
 
+Quote Post
Viwon
сообщение Dec 21 2017, 13:02
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 18-03-14
Пользователь №: 80 976



Раз есть исходники, то подключитесь отладчиком и отследите процесс выполнения программы
Go to the top of the page
 
+Quote Post
alexey123_45
сообщение Dec 21 2017, 13:18
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 1-03-13
Пользователь №: 75 850



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

Отладчиком подключился, программа перестает работать на первом же обращении к NAND. И перестает она работать, потому что не может выдать команду reset на NAND. Но на на рабочей плате ровно эта же программа без проблем работает
Совсем глупое предположение(хотя официальный диллер говорит, что ничего такого не слышал). Может ли быть так, что для другой ревизии чипа эта программа работает некорректно?

Сообщение отредактировал alexey123_45 - Dec 21 2017, 13:24
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 21 2017, 14:11
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 4 856
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(alexey123_45 @ Dec 21 2017, 15:18) *
Совсем глупое предположение(хотя официальный диллер говорит, что ничего такого не слышал). Может ли быть так, что для другой ревизии чипа эта программа работает некорректно?

Теоретически - может. У вас на плате может быть старая ревизия, в которой есть какой-то баг, пофиксенный позже. А прога написана для более нового чипа, с исправленным багом.
Я сам когда-то работал с OMAP-Lxxx и наступал на баги в них лично. Причём даже не отмеченные (на тот момент) в еррата. Так что это немудрено.
Go to the top of the page
 
+Quote Post
Viwon
сообщение Dec 21 2017, 14:46
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 18-03-14
Пользователь №: 80 976



Ревизию можете посмотреть в Memory Browser по адресу 0xFFFD0000, режим Caracter. Увидите что то типо d800k00*, где * - 2,4,6,8

Посмотрите, также значение по адресу 0x68000000, режим 32-bit hex, он должен содержать 0x40000205. Это регистр EMIFA.MIDR.

И расшифруйте "не может выдать команду reset на NAND", в идеале должно быть "после чтении/записи такого-то региста/адреса..."
Go to the top of the page
 
+Quote Post
alexey123_45
сообщение Dec 21 2017, 16:56
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 1-03-13
Пользователь №: 75 850



Для reset NAND существует команда 0xFF. Т.е. выдаем команду 0xFF и ждем момента. когда R/B опустится в нуль на некий промежуток времени в качестве ответа. Для того чтобы выдать команду нужно подать на управляющие ноги сигналы, ну в часности опустить в нуль CS. Это делает процессор. вот я осциллографом этих управляющих воздействий не вижу
Go to the top of the page
 
+Quote Post
Viwon
сообщение Dec 21 2017, 19:59
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 18-03-14
Пользователь №: 80 976



То, что снаружи ни какой реакции нет - это ясно. Предполагаем, что с железом все хорошо.
Процессор сам по себе ни чего не делает. Тогда вопрос встает следующим образом, пытается ли программа "выдать команду reset на NAND"? Может она завершается раньше.
В эксперименте с подачей на все ножки 1-0 в бесконечном цикле, есть уверенность, что программа на вашей плате заходит в этот цикл?
Если гарантированно заходит, в таком случае надо убедиться, что
1. Подача тактового сигнала на модуль GPIO разрешена
2. Что выводы сконфигурированы как GPIO
В случае NAND надо убедится, что
1. тактовая частота EMIFA в допустимом диапазоне
2. разрешена подача тактового сигнала на модуль EMIFA
3. EMIFA сконфигурирован верно

Может еще что-то... если все соблюдено значит дело в железе.
Go to the top of the page
 
+Quote Post
alexey123_45
сообщение Dec 21 2017, 20:27
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 1-03-13
Пользователь №: 75 850



программу я проверял на рабочей плате, там все хорошо работает и судя по отладчику все работает на нерабочей плате. По поводу GPIO не смотрел, но я проверю этот момент, но странно, почему утилита от TI для прошивки, которая работает везде и проблем не возникало(мы пользовались готовыми платами разных производителей и KIT-ами в том числе) не работает тут.

Сообщение отредактировал alexey123_45 - Dec 21 2017, 20:32
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 21 2017, 21:06
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 612
Регистрация: 11-12-04
Пользователь №: 1 448



Судя по схеме, у вас нарушена последовательность подачи питающих напряжений - 3.3V стартует немедленно, а должен запускаться после 1.8V.
Go to the top of the page
 
+Quote Post
alexey123_45
сообщение Dec 22 2017, 07:52
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 1-03-13
Пользователь №: 75 850



Извините за глупый вопрос, а как вы это поняли? Просто это схема не моя. Не могли бы вы объяснить подробнее?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th July 2018 - 09:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01057 секунд с 7
ELECTRONIX ©2004-2016