Группа: Cоучастник
Сообщений: 1713
Пользователь №: 67520
Регистрация: 16-June 10
Место жительства: Москва
gloryk спасибо за эксперемент и подробный ответ по анализу прошивки пика 628 на МИНИПРО. Обязательно попробую провести такую же прошивку на этом программаторе прошивкой под "FLEX" и опробую ее на отладочной плате
Это сообщение отредактировал колоб - Jan 14 2013, 07:37 PM
Группа: Cоучастник
Сообщений: 1713
Пользователь №: 67520
Регистрация: 16-June 10
Место жительства: Москва
TomasV ,если это все так ,как вы пишете из "CS" да получается" A" ,я снимаю шляпу ,тем более прошивки по ISP очень удобны и просты.. А практически ее только и использует основная масса радиолюбителей в нынешние времена! Я даже и свой CS вскрыл ,а до этого дыру под разъём даже текстолитом закрыл -она навевала на мысль не полного использования прогера.
Это сообщение отредактировал колоб - Jan 14 2013, 07:56 PM
Присоединённое изображение (Нажмите для увеличения)
TomasV навеял это. Ну что Кулибины, будем переделывать TL886CS в TL886A! Шутка! А дело вот в чем, поисследовал Я MiniPro5.80 в отладчике (OllyDbg) и кое что выяснил. Когда подсоеденяешь программатор к USB прога считывает с него кусочек кода, по которому она определяет какой это программатор "CS" или "A".
И Я думаю TomasV прав, если прошить прошивкой от TL886A то прогер будет уже всегда считать, что он TL886A. С этим вопросом разобрались,а второй вопрос если MiniPro сама обновляет прошивку, то нельзя ли приспособить ее, что бы перешить "CS" в "A".Немного потрудившись, подправив немного кода получил прогу, которую Я назвал "TL866A_Прошивальщик" это таже самая прога которая только перепрошивает программатор. Надо только ее опробывать
Это сообщение отредактировал gloryk - Jan 17 2013, 06:56 AM
TomasV навеял это. Ну что Кулибины, будем переделывать TL886CS в TL886A! Шутка! А дело вот в чем, поисследовал Я MiniPro5.80 в отладчике (OllyDbg) и кое что выяснил. Когда подсоеденяешь программатор к USB прога считывает с него кусочек кода, по которому она определяет какой это программатор "CS" или "A", если шестой байт 01 то это TL886A если 02 то TL886CS, если последний байт 03 то V-3, а если 00 то V-0.
И Я думаю TomasV прав, если прошить прошивкой от TL886A то прогер будет уже всегда считать, что он TL886A. С этим вопросом разобрались,а второй вопрос если MiniPro сама обновляет прошивку, то нельзя ли приспособить ее, что бы перешить "CS" в "A".Немного потрудившись, подправив немного кода получил прогу, которую Я назвал "TL866A_Прошивальщик" это таже самая прога которая только перепрошивает программатор. Если есть заинтересовавшиеся то пишите.
Да чуть не забыл прошивки обе находятся в файле update.dat который мы получаем вмете сокачанной программой из которого прогер и обновляется.
Ложный путь: в update.dat нет важной информации - таблиц шифрования загружаемой информации (они записаны в флеше и лоадером не обновляются). А эти таблицы разные у "CS" и "A", в результате получите "кирпич" вместо программатора. Теперь отвечаю на возможные вопросы по HEX файлу: 1. Файл 100% рабочий - если что то не так - это ваши "кривые ручки". 2. Разъем ISP на плате программатора - стандартный Microchip 6-ти контактный, 1-я ножка - квадратная площадка. 3. Конфигурационные байты внутри файла - если ваш программатор не понимает такой формат - вытаскивайте сами из HEX файла.
Группа: Cоучастник
Сообщений: 1713
Пользователь №: 67520
Регистрация: 16-June 10
Место жительства: Москва
уважаемый gloryk я немного не понимаю у Вас два программатора мини про с разными оканчаниями("A" и "CS")? "если шестой байт 01 то это TL886A если 02 то TL886CS, если последний байт 03 то V-3, а если 00 то V-0."
Совет для обладателей TL866A(CS): если ваш программатор не опознается системой после проведения апдейта, то можно его принудительно перевести в режим бутлоадера путем подачи VCC(+3.3v) через резистор 100-200 ом на указанную на картинке точку и выполнив сброс(или подключением к USB или замыканием контакта RESET на разъеме ISP(о чем китайцам следовало бы информировать пользователей TL866).
Присоединённое изображение (Нажмите для увеличения)
"Сделать хотел утюг, слон получился вдруг...." Я только учусь на волшебника.
Колоб программатор у меня один TL886A. В результате подмены байтов ( прогрмма запускается в отладчике) получается,что он может определиться и как TL886A и как TL88CS. Вот Я и подумал, что если Мы заставим определяться его как TL886A, то и обновление прошивки возможно пойдет по пути TL886A.Я прошел в программе двумя путями. 1. Программатор определяется TL886A. 2. Программатор определяется TL886S. В обоих случаях сначала считываюся данные из файла config.dat потом три блока из update.dat были сделаны дампы, дампы для TL886A и TL88CS отличаются, значит для разных версий прогера подгружаются разные коды обноления прошивки. Но TomasV сказал, что это ложный путь может ему и видней.
Присоединённое изображение (Нажмите для увеличения)
"Сделать хотел утюг, слон получился вдруг...." Я только учусь на волшебника.
Колоб программатор у меня один TL886A. В результате подмены байтов ( прогрмма запускается в отладчике) получается,что он может определиться и как TL886A и как TL88CS. Вот Я и подумал, что если Мы заставим определяться его как TL886A, то и обновление прошивки возможно пойдет по пути TL886A.Я прошел в программе двумя путями. 1. Программатор определяется TL886A. 2. Программатор определяется TL886S. В обоих случаях сначала считываюся данные из файла config.dat потом три блока из update.dat были сделаны дампы, дампы для TL886A и TL88CS отличаются, значит для разных версий прогера подгружаются разные коды обноления прошивки. Но TomasV сказал, что это ложный путь может ему и видней.
Кто то из Великих сказал: "Умнуе учатся на ошибках других, а ... (все остальные - на своих". Объясню еще раз: update для версии "A" ЗАШИФРОВАНЫ по своему КЛЮЧУ и по своей ТАБЛИЦЕ ШИФРОВАНИЯ, а версия "CS" - по своему КЛЮЧУ и по своей ТАБЛИЦЕ ШИФРОВАНИЯ (таблицы разные и намертво залиты(лоадером их загрузить невозможно)). Если Вы со стороны приложения принудительно зальете через лоадер другую модификацию, то после расшифровки бутлоадером(на стороне процессора) получится "белый шум" вместо исполняемого кода. Хотя Вы - можете залить и рассказать, что получилось.
Хочу добавить: то, что Вы предлагаете - совершенно БЕЗОПАСНО, т.к. разработчик предусмотрел такое развитие событий: в самом конце update записана кодовая последовательность, котора позволяет лоадеру определить правильнисть расшифровки(при неправильном КЛЮЧЕ или ТАБЛИЦЕ код будет искажен) и лоадер не будет запускать "бредовый" код, а будет ждать нового update.
"Умнуе" TomasV да Я уже это проверил, после принудительной заливки не того кода программатор отказался читать микросхмы так же были стерты байты "02 3B", что в десятичном значении 2.59 то бишь версия прошивки и это ты прав оказалась безопасно, в программе есть сравнение "cmp EAX, 02 3В", а так как там оказались нули, то сразу прыжок на процедуру обновления прошивки. Прошивка обновляется или в моем случае восстнавливается успешно и программатор все читает и пишет. Расчет был на то, что если программатор крякнет то будет возможность залить, любезно тобой предоставленную прошивку. Ну вот написал, а ты уже сам ответил.
Это сообщение отредактировал gloryk - Jan 18 2013, 04:06 AM
The chinese have protected it better than I thought..
the gloryk said that the last byte indicate the version. So your firmware is compatible with all versions of hardware?
Китайцы защищены лучше, чем я думал ..
gloryk сказал, что последний байт указывает версию. Так что ваша прошивка совместима со всеми версиями аппаратного обеспечения?
Прошивка скопирована с TL866A выпуска середины 2012 года, про совместимость с более ранними версиями аппаратной платформы - ничего сказать не могу(не знаю).
Выкладываю вариант прошивки TL866A, которая содержит только лоадер. После загрузки прошивки, через оболочку MiniPro(соответствующей версии) производите update той же версии.
Прошил только загрузчик, потом уже из софта обновил. Прилогаю фотку для соединения. Первый квадратный пин - сброс, потом питание, земля, данные и клок.
Есть оригинальный версии А в германии, кому надо, то пишите в приват.
Присоединённое изображение (Нажмите для увеличения)
Я тут на досуге прочитал в начале темы про м/с MBM29LV651UE, про проблемы с записью, что в софте должна программно сниматься защита от записи и что в софте нет этой функции. Немного потестил програму (V5.80) так в софте есть эта функция. Просто автор скрыл ее для этой м/с, вернее не скрыл а просто не установил в еденицу два бита. С чем это связано Я не знаю, может эта м/с не поддерживает такую возможность, может просто упущение. Эти биты находятся в файле InfoIC.dll. Для примера Я изменил некоторые биты и вот что получилось.
Пример для м/с MBM29LV651UE. 1. Появились "чек боксы"- Откл.и Вкл. защиты. 2. Появилась возможность программирования через ICSP. 3. Размер м/с стал обозначаться в байтах а не словах. Так же в окне редактора адреса стали в байтах
Присоединённое изображение (Нажмите для увеличения)
Да Я не замахивался, это был демонстрационный пример, того что какие пункты меню открывать для данной м/с хранятся в InfoIC.dll , пункт ICSP был засвечен для примера.
Группа: Cоучастник
Сообщений: 12
Пользователь №: 97940
Регистрация: 15-January 13
Место жительства: Беларусь
Внутрисхемное программирование открылось потому что прибор не подключен. Его и без правки, если прибор не воткнут, можно выбирать. А вот когда прогер определится оболочкой как CS или А, вот тогда и будет видно доступно ICSP или нет.
Внутрисхемное программирование открылось потому что прибор не подключен. Его и без правки, если прибор не воткнут, можно выбирать. А вот когда прогер определится оболочкой как CS или А, вот тогда и будет видно доступно ICSP или нет.
В данном случае это не так. Данная флешь 29 серии по умолчанию не имеет режима внутрисхемного программирования
Попробывал на подключенном программаторе ICSP не погасла, еще раз подчеркиваю это было сделано в исследовательских целях, настройки все вернул назад как была в оригинале, хотя может быть "чек боксы" включения и выключения защиты можно было оставить?
Присоединённое изображение (Нажмите для увеличения)