alexey123_45 0 20 декабря, 2017 Опубликовано 20 декабря, 2017 · Жалоба Здравствуйте Столкнудся с такой проблемой: Развели плату на базе 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viwon 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Что даже EMA_NAND_CS не шевелится? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexey123_45 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Да, ни один пин, подключенный к NAND. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viwon 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Получается программа чистки NAND зависает по не понятным причинам. Вы какой-нибудь другой код на процессоре запускали, работал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexey123_45 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 (изменено) · Жалоба Нет не запускал, но я сделал следующее: Я скачал исходники утилиты прошивочной. И в функции выдачи команды на NAND поставил бесконечный цикл и стал выдавать на все ножки 1-0 в бесконечном цикле. На рабочей плате ножки дергаются(вижу осциллографом), на нашей нет.Т.е. вообще ни один пин не дернулся. Похоже что порты стоят в 3-м состоянии. Но странно, утилита одна и та же, процессор явно грузится и программа там работает, т.к. консольный лог я вижу и он соответствует рабочей плате.Я ставлю свои контрольные сообщения, они тоже выводятся одинаково на обоих платах. Не может ли быть аппаратная проблема в самом процессоре? Изменено 21 декабря, 2017 пользователем alexey123_45 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Не может ли быть аппаратная проблема в самом процессоре? Проверьте питание RVDD. Еще OMAP-L138 можно глухо завесить, если не потать питание RTC, а затем выполнить обращение к его регистрам. Загрузчику это ни к чему, но все же. И лучше, конечно, грузить свою программу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viwon 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Раз есть исходники, то подключитесь отладчиком и отследите процесс выполнения программы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexey123_45 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 (изменено) · Жалоба Питание присутствует. Не может такого быть, что на конденсаторах оно есть, а до непосредственно ножек не дошло из-за паек, например? Отладчиком подключился, программа перестает работать на первом же обращении к NAND. И перестает она работать, потому что не может выдать команду reset на NAND. Но на на рабочей плате ровно эта же программа без проблем работает Совсем глупое предположение(хотя официальный диллер говорит, что ничего такого не слышал). Может ли быть так, что для другой ревизии чипа эта программа работает некорректно? Изменено 21 декабря, 2017 пользователем alexey123_45 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Совсем глупое предположение(хотя официальный диллер говорит, что ничего такого не слышал). Может ли быть так, что для другой ревизии чипа эта программа работает некорректно? Теоретически - может. У вас на плате может быть старая ревизия, в которой есть какой-то баг, пофиксенный позже. А прога написана для более нового чипа, с исправленным багом. Я сам когда-то работал с OMAP-Lxxx и наступал на баги в них лично. Причём даже не отмеченные (на тот момент) в еррата. Так что это немудрено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viwon 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Ревизию можете посмотреть в Memory Browser по адресу 0xFFFD0000, режим Caracter. Увидите что то типо d800k00*, где * - 2,4,6,8 Посмотрите, также значение по адресу 0x68000000, режим 32-bit hex, он должен содержать 0x40000205. Это регистр EMIFA.MIDR. И расшифруйте "не может выдать команду reset на NAND", в идеале должно быть "после чтении/записи такого-то региста/адреса..." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexey123_45 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Для reset NAND существует команда 0xFF. Т.е. выдаем команду 0xFF и ждем момента. когда R/B опустится в нуль на некий промежуток времени в качестве ответа. Для того чтобы выдать команду нужно подать на управляющие ноги сигналы, ну в часности опустить в нуль CS. Это делает процессор. вот я осциллографом этих управляющих воздействий не вижу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viwon 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба То, что снаружи ни какой реакции нет - это ясно. Предполагаем, что с железом все хорошо. Процессор сам по себе ни чего не делает. Тогда вопрос встает следующим образом, пытается ли программа "выдать команду reset на NAND"? Может она завершается раньше. В эксперименте с подачей на все ножки 1-0 в бесконечном цикле, есть уверенность, что программа на вашей плате заходит в этот цикл? Если гарантированно заходит, в таком случае надо убедиться, что 1. Подача тактового сигнала на модуль GPIO разрешена 2. Что выводы сконфигурированы как GPIO В случае NAND надо убедится, что 1. тактовая частота EMIFA в допустимом диапазоне 2. разрешена подача тактового сигнала на модуль EMIFA 3. EMIFA сконфигурирован верно Может еще что-то... если все соблюдено значит дело в железе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexey123_45 0 21 декабря, 2017 Опубликовано 21 декабря, 2017 (изменено) · Жалоба программу я проверял на рабочей плате, там все хорошо работает и судя по отладчику все работает на нерабочей плате. По поводу GPIO не смотрел, но я проверю этот момент, но странно, почему утилита от TI для прошивки, которая работает везде и проблем не возникало(мы пользовались готовыми платами разных производителей и KIT-ами в том числе) не работает тут. Изменено 21 декабря, 2017 пользователем alexey123_45 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 21 декабря, 2017 Опубликовано 21 декабря, 2017 · Жалоба Судя по схеме, у вас нарушена последовательность подачи питающих напряжений - 3.3V стартует немедленно, а должен запускаться после 1.8V. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexey123_45 0 22 декабря, 2017 Опубликовано 22 декабря, 2017 · Жалоба Извините за глупый вопрос, а как вы это поняли? Просто это схема не моя. Не могли бы вы объяснить подробнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться