|
cy7c68013 и EEPROM, как очистить |
|
|
|
Aug 13 2016, 07:58
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Serg_Sm @ Aug 12 2016, 12:54)  Подскажите, так можно ли очистить EEPROM без прямого доступа к ней. Т.е. есть закрытый прибор на FX2, в нем доступ возможен только к USB порту. Нет конечно. Если только сама прошивка, находящаяся в EEPROM, не позволяет этого. Цитата(Serg_Sm @ Aug 12 2016, 12:54)  Прошивка убита - при подсоединению к компу определяется как неизвестное устройство (VID/PID = 0). Насколько помню: если в EEPROM нет прошивки или она невалидна, то сабж должен переходить в режим загрузки прошивки по USB.
|
|
|
|
|
Aug 15 2016, 09:26
|
Частый гость
 
Группа: Свой
Сообщений: 183
Регистрация: 10-10-06
Из: Смоленск
Пользователь №: 21 167

|
Цитата(jcxz @ Aug 13 2016, 10:58)  Насколько помню: если в EEPROM нет прошивки или она невалидна, то сабж должен переходить в режим загрузки прошивки по USB. И как определяется её невалидность? Грубо говоря при обновлении прошивки вместо 16Кб данных записалось только 8, после этого работоспособность была утеряна (хотя до этого родная прошивка слетела по непонятным причинам).
|
|
|
|
|
Aug 15 2016, 11:39
|
Частый гость
 
Группа: Свой
Сообщений: 183
Регистрация: 10-10-06
Из: Смоленск
Пользователь №: 21 167

|
Цитата(jcxz @ Aug 15 2016, 13:55)  Очевидно, что это описано в документации. Помнится там должен быть какой-то заголовок. Если только по первому байту, то про 0xC0, 0xC2 - это понятно. Сейчас там 0xC2 - загрузка из EEPROM. Просто здесь на форуме описывали чудесную программу CyConsole, с помощью которой можно перепрошивать FX2 и которая лучше EzMr (я ей всё прошивал). Вот я и интересуюсь.
|
|
|
|
|
Aug 18 2016, 08:17
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Serg_Sm @ Aug 18 2016, 13:01)  Связался с техподдержкой по нерабочему прибору - ответили, есть всё-таки SCL/SDA на внешнем разъёме. Алгоритм действий прислали - отключаете прибор, перемычку SDA к земле, подключаете к компу, перемычку убираете и шьёте нашей утилитой. Попробовал, не работает)) Посмотрел осциллографом - как только перемычка убирается (хоть через 10 секунд, хоть через минуту) сразу идет 500мс загрузка с EEPROM (судя по всему), т.е. сброса контроллера не происходит. Так как его правильно сбросить? Там скорей всего встроенный ROM-загрузчик непрерывно сканирует все источники загрузки (USB, EEPROM, ...) откуда можно загрузиться и грузит с того, которое первое ответит. Я помню делал так (когда в EEPROM почему-либо оказывалось нерабочее ПО, которое блокировало загрузку по USB и при этом само не работало): отключал SCL перемычкой (у нас была на плате) от EEPROM, грузил по USB прошивальщик в CY7C68013, возвращал перемычку на место, шил рабочую прошивку в EEPROM через загруженный прошивальщик. Прошивальщик можно написать отдельный (а может он даже есть у Cypress), но у нас он входил в состав рабочего firmware. Собственно я им самим его самого и шил в EEPROM. Посмотрите - может в составе примеров или Cypress Suite есть такой прошивальщик. Я уже плохо помню, так как работал с CY7C68013 несколько лет назад.
|
|
|
|
|
Aug 18 2016, 08:40
|
Частый гость
 
Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311

|
Цитата(Serg_Sm @ Aug 18 2016, 10:01)  Связался с техподдержкой по нерабочему прибору - ответили, есть всё-таки SCL/SDA на внешнем разъёме. Алгоритм действий прислали - отключаете прибор, перемычку SDA к земле, подключаете к компу, перемычку убираете и шьёте нашей утилитой. Попробовал, не работает)) Посмотрел осциллографом - как только перемычка убирается (хоть через 10 секунд, хоть через минуту) сразу идет 500мс загрузка с EEPROM (судя по всему), т.е. сброса контроллера не происходит. Так как его правильно сбросить? Мы для таких случаев специально делали перемычку на линии SDA, и не к земле, а разрывали саму SDA между EEPROM и контроллером. Сколько раз эта перемычка выручала. Может быть, если просто притянуть к земле, контроллер воспринимает это как неготовность EEPROM и намертво зависает ожидании. Он выставляет на линию 1, а там всегда 0. Как только вы убираете перемычку, он это дело тут же прочухивает и загружает битую прошивку. Попробуйте разорвать саму линию SDA, если это возможно, должно гарантированно сработать.
|
|
|
|
|
Aug 18 2016, 11:29
|
Частый гость
 
Группа: Свой
Сообщений: 183
Регистрация: 10-10-06
Из: Смоленск
Пользователь №: 21 167

|
Цитата(dima32rus @ Aug 18 2016, 11:40)  Мы для таких случаев специально делали перемычку на линии SDA, и не к земле, а разрывали саму SDA между EEPROM и контроллером. Сколько раз эта перемычка выручала. Может быть, если просто притянуть к земле, контроллер воспринимает это как неготовность EEPROM и намертво зависает ожидании. Он выставляет на линию 1, а там всегда 0. Как только вы убираете перемычку, он это дело тут же прочухивает и загружает битую прошивку. Попробуйте разорвать саму линию SDA, если это возможно, должно гарантированно сработать. SDA разрывать как-то не красиво, достаточно изменить адрес. Т.е. ножку адреса микросхемы EEPROM соединить перемычкой с землей (в боевом режиме подтяжка к 3.3В). В моем случае физически не было возможности до платы добраться, чтобы что-нибудь разорвать. Ещё вариант (если есть доступ только к SCL/SDA) и если защита от записи EEPROM управляется контроллером (по умолчанию т.е. прошить не получится) - подсоединить параллельно внутренней EEPROM внешнюю с таким же адресом, но с зашитыми "0". По идее одновременный доступ к шине 2 EEPROM считаются "0", соответственно загрузка по I2C будет отменена.
|
|
|
|
|
Aug 18 2016, 12:10
|
Частый гость
 
Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311

|
Цитата(Serg_Sm @ Aug 18 2016, 14:29)  SDA разрывать как-то не красиво, достаточно изменить адрес. Т.е. ножку адреса микросхемы EEPROM соединить перемычкой с землей (в боевом режиме подтяжка к 3.3В). В моем случае физически не было возможности до платы добраться, чтобы что-нибудь разорвать. У нас эта перемычка на SDA закладывалась сразу при проектировании платы. С адресом тоже способ интересный, возможно, что при отсутствии заранее предусмотренного джампера на SDA это было бы лучшим вариантом.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|