Участник тусовки
Регистрация: 05.05.2014
Сообщений: 169
Вы сказали Спасибо: 9
Поблагодарили 52 раз(а) в 20 сообщениях
Сказал(а) Фууу!: 2
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: клоповник Москва
Авто: Toyota liteace '92
|
Борьба с ошибкой 200.46 или почему некоторым адаптерам требуется подмена папки с прошивкой.
Здесь мои изыскания, может кому поможет, может кто подскажет мне.
Немного теории:
Для тех кто не знает – папка vecom содержит куски прошивки для адаптера. Запускаясь, диагностическое приложение, каждый раз проверяет версию прошивки внутри адаптера и обновляет его до нужных значений в случаи несовпадения.
Файлы с расширением bin и есть куски прошивки, а файл с расширением cnf адресация процессора куда всё это будет укладываться, любезно предоставленная разработчиками софта.
Кроме этого все файлы имеют звучные названия. По адресам понятно, что boot и sys живут внутри процессора, а всё остальное в 29f160. Для того что бы адаптер стартанул достаточно только содержимого процессора. Однако разрабы перестраховались на случай непредвиденных обстоятельств во время обновления и уложили sysbk во флеш. То есть, если испорчен sys, адаптер стартанёт с sysbk.
Теперь немного о процессоре – это xc161. Из даташита можно вычитать, что процессор имеет два механизма зашиты к внутренней памяти закрытую 64 битным паролём. Первый: защита от записи секторов – блокируется любое изменение данных, чтение при этом доступно. Второй: глобальная защита – механизм, который служит для защиты от нежелательных лиц(то есть нас). Пока процессор загружается и работает с внутренней памяти, защита отключена. Если загрузка инициализируется с внешних источников включаются защитные регистры и доступ к внутренней памяти прекращается до hw_reset.
Так вот некоторые адаптеры приходят с включённой глобальной защитой. В этом и кроется проблема обновления версий и необходимость подкидывать старые прошивки.
Тут не понятно кого винить, китайцев или немцев. Ведь адаптер стартует изнутри, значит защита должна быть отключена, но механизм обновления в прошивке запускает срабатывание регистров защиты.
Что можно попробывать: отключить защиту введя пороли ff,00 и т.д.
Как подключится к адаптеру: понадобится COM с уровнями TTL. На борту 5V, крайне желательно. Но я лично схватил первое, что попалось мне под руку, мекетка с FT2232HL с 3.3V, которая удачно зацепилась.
Далее всё просто – пять проводов 5V,GRN,RX,TX,BOOT.
Для просмотра ссылок или изображений в данном разделе, у Вас должно быть не менее 15 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Boot через резистор(например 1Kом) сажаем на массу и подаём питание. Если работаем с внутренней памятью, то boot можно оставить на массе, если работаем с периферией то отключаем провод от boot. Заводской программой будет MiniMon. Выбиваем COM порт, архитектуру процессора, частоту и скорость(или оставляем всё по умолчанию в программе нажимаем connect. Я использовал 20мгц, com=38400,n,8,1. Регистры лучше оставить по умолчанию, ели вы работаете с прошивкой процессора, так отключен EBC и меньше шансов что-нибудь спалить.
Проверяем состояние защиты – нажимаем status
Для просмотра ссылок или изображений в данном разделе, у Вас должно быть не менее 15 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
В данном случаи statusword0 это регистр SFR, а statusword1 это регистр PROCON
Если PROCON=0000 то защита отключена, если 800X, то шлите китайцам пламенный привет.
Синие платы приходят с SFR=0800 PROCON=0000. Это ничего страшного, включена защита на стирание из вне. Достаточно сделать unprotect с пустым паролем.
Про саму разблокировку: включаем её в программе:
Для просмотра ссылок или изображений в данном разделе, у Вас должно быть не менее 15 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в данном разделе, у Вас должно быть не менее 15 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Нажимаем и вводим пароль, можно попробовать заполнить лёгкие ff или 00, программа скажет ок, но в статусе ничего не изменится. После каждой попытки не забывайте делать hw_reset, так как процессор принимает пароль один раз.
Тем кому надо поиграться с периферией(29F160, RAM и т.д.), значения регистров EBC легко высматриваются в BOOT.bin:
EBCMOD0 4055
TCONCS0 21C0
FCONCS0 0021
TCONCS1 0040
FCONCS1 0021
ADDRSEL1 70E0
TCONCS2 0040
FCONCS2 0021
ADDRSEL2 0807
TCONCS3 78BF
FCONCS3 0021
ADDRSEL3 3FE0
TCONCS4 28A8
FCONCS4 0011
ADDRSEL4 3FF0
С EBCMOD1 непонятки, но для работы с периферией достаточно =0000
Кому впадлу взять и вызвонить концы на плате, подскажу: CS0=FLASH, CS1,CS2=RAM.
TCON – тайминги шины, можете сами посчитать, какие чипы, максимально, могут уложить китайцы на плату. Для просмотра ссылок или изображений в данном разделе, у Вас должно быть не менее 15 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Также примечателен регистр ADDRSEL1, кому впадлу открыть даташит, скажу, что размечено как 4KB, на чём китайцы и жадничают, не впаивая вторую ram.
И так, способов стереть или изменить содержимое заблокированного процессора я не нашел, если кто подскажет, буду премного благодарен?
Не понятен механизм процедуры обновления. Судя по содержимому папки с прошивками, за загрузку отвечает загрузчик Flash.bin. Но он ведь сам загружается в нулевой адрес, а там исходя из регистров EBC ничего не примонтированно?
|