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

 
 
> Проблема с LPC3250 service boot, Сервисный загрузчик в ROM LPC3250 работает не так как должен
Dennis E
сообщение Jan 4 2011, 08:07
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 27-07-07
Пользователь №: 29 404



Проблема следующая.

Не удаётся загрузить LPC3250 через последовательный интерфейс в режиме ‘Service boot’. Это режим загрузки, который включается при установке линии ‘BOOTSEL’ в ‘0’. В нём после ‘Reset’ из ROM процессора запускается заводской загрузчик ‘bootstrap’, который позволяет через UART5 загрузить во внутреннюю IRAM и запустить бинарник.

1. Выяснилось, что ‘bootstrap’ в запаянных на наши платы LPC3250 ревизии ‘-’ ведёт себя немного отлично от того, как он должен это делать судя по UserManual.
В UserManual говорится, что процесс ‘Service’ загрузки такой:
LPC32x0 Host
-> BootID (0x35=’5’)
<- 0x41=’A’
-> BootID (0x35=’5’)
<- 0x55=’U’
<- 0x33=’3’
-> 0x52=’R’
<- StartAddress (4 bytes)
<- CodeSize (4 bytes)
<- Code

А наш процессор почему-то в самом начале выдаёт не 1 код ‘BootID’ а сразу 2 штуки:

[смотри картинку "01_osc_dbl_'5'.png"]

Последующие этапы обмена процессор отрабатывает верно. Но у программы «LPC3250 Loader» из NXP’s CSP v2.01 “nxpmcu/software/csps/lpc32xx/tools/LPC3250 loader” всё равно сносит крышу и она прерывает процесс загрузки. (Причём физически два ‘BootID’ идут сразу друг за другом, а крышу у программы сносит немного позже, когда проходит несколько этапов обмена):

[смотри картинку "Serial_loader_dbl_'5'.PNG"]


2. Был сделан «Передатчик» на первой попавшейся подходящей плате, который транслирует данные с 1-го UART, подключенного к компьютеру, на 2-ой UART, подключенный к LPC3250. Но при трансляции «Передатчик» вырезает второй ‘BootID’, посылаемый LPC3250:

[смотри картинку "02_osc_do_single_'5'.png"]


После этого процесс ‘Service’ загрузки продвинулся дальше:

[смотри картинку "Serial_loader_cut_dbl_'5'.PNG"]


«LPC3250 Loader» начинает загружать бинарник. Но всё равно! Примерно через 1,42 секунды LPC3250 опять инициализирует процесс ‘Service’ boot, выдавая двойной ‘BootID’ и в дальнейшем выдавая ‘BootID’ в ответ на каждый байт продолжающегося грузиться бинарника:

[смотри картинку "07_osc_boot.png"]


3. Маркировка нашего LPC3250 следующая:

LPC3250FET296
POG454.00 01
ESD0920-

То есть ревизия нашего процессора ‘-’, дата производства: 11-17 Мая 2009 года.

PS: К сообщению прицеплен PDF с иллюстрациями: скриншоты и осциллограммы.
PPS: Также к сообщению прицеплены иллюстрации в виде отдельных файлов.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  LPC3250_Service_boot_problem_rus.pdf ( 174.27 килобайт ) Кол-во скачиваний: 159
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dennis E
сообщение Jan 4 2011, 09:24
Сообщение #2





Группа: Новичок
Сообщений: 5
Регистрация: 27-07-07
Пользователь №: 29 404



Here is illustrated problem description in PDF (in English).
Прикрепленные файлы
Прикрепленный файл  LPC3250_Service_boot_problem_eng.pdf ( 167.87 килобайт ) Кол-во скачиваний: 487
 
Go to the top of the page
 
+Quote Post
Dennis E
сообщение Jan 5 2011, 07:42
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 27-07-07
Пользователь №: 29 404



Победить проблему не удалось, но обнаружилась интересная вещь. Из 3-х плат не работают 2 - глючит 'bootstrap' как описано выше. А на третьей плате всё работает нормально, загручик выдаёт, как и положено 1 'BootID', а затем нормально грузит бинарник.

Есть предположение, что процессоры на первых двух платах повреждены при монтаже. Перегрели их что ли, да так, что ROM слетела...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th August 2025 - 22:15
Рейтинг@Mail.ru


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