Serg_Sm
Свой-
Постов
183 -
Зарегистрирован
-
Посещение
-
Новый народный хит от Cypress?
Serg_Sm ответил dinam тема в RS232/LPT/USB/PCMCIA/FireWire
Кто-нибудь реализовывал быстрое чтение (а может и запись) через GPIF FX3 в режиме мастера? Пытаюсь настроить проект в GPIF II Designer (прога не обновлялась с 2012г), но на диаграммах оказывается совсем не то, что ожидается увидеть. Например сигналы на линии данных смещены в "прошлое" относительно состояний чтения + сигнал готовности DMA обрывается задолго до расчетных значений. В итоге получается, что либо я что-то не понимаю, либо чтение на 100МГц там вообще недостижимо - нужны wait states (как и есть в единственном примере). Да и вообще толковых примеров по настройке GPIF в режиме мастера как-то не нашлось. Есть только AN87216, но его крайне маловато для понимания. А уж по GPIF II Designer вопросов множество. На официальном форуме кто-то задавал вопрос когда будет обновление (и 5 пунктов ради которых оно нужно) - в ответ "не в ближайшем квартале", т.е. никогда похоже. -
cy7c68013 и EEPROM
Serg_Sm ответил torik тема в Все остальные микроконтроллеры
SDA разрывать как-то не красиво, достаточно изменить адрес. Т.е. ножку адреса микросхемы EEPROM соединить перемычкой с землей (в боевом режиме подтяжка к 3.3В). В моем случае физически не было возможности до платы добраться, чтобы что-нибудь разорвать. Ещё вариант (если есть доступ только к SCL/SDA) и если защита от записи EEPROM управляется контроллером (по умолчанию т.е. прошить не получится) - подсоединить параллельно внутренней EEPROM внешнюю с таким же адресом, но с зашитыми "0". По идее одновременный доступ к шине 2 EEPROM считаются "0", соответственно загрузка по I2C будет отменена. -
cy7c68013 и EEPROM
Serg_Sm ответил torik тема в Все остальные микроконтроллеры
В общем получилось - просто подключился к SCL/SDA другим устройством (тоже на FX2, программатора I2C поблизости не было) и прошил EEPROM из вне)) -
cy7c68013 и EEPROM
Serg_Sm ответил torik тема в Все остальные микроконтроллеры
Связался с техподдержкой по нерабочему прибору - ответили, есть всё-таки SCL/SDA на внешнем разъёме. Алгоритм действий прислали - отключаете прибор, перемычку SDA к земле, подключаете к компу, перемычку убираете и шьёте нашей утилитой. Попробовал, не работает)) Посмотрел осциллографом - как только перемычка убирается (хоть через 10 секунд, хоть через минуту) сразу идет 500мс загрузка с EEPROM (судя по всему), т.е. сброса контроллера не происходит. Так как его правильно сбросить? -
cy7c68013 и EEPROM
Serg_Sm ответил torik тема в Все остальные микроконтроллеры
На основе этого сообщения вопрос и появился -
cy7c68013 и EEPROM
Serg_Sm ответил torik тема в Все остальные микроконтроллеры
Если только по первому байту, то про 0xC0, 0xC2 - это понятно. Сейчас там 0xC2 - загрузка из EEPROM. Просто здесь на форуме описывали чудесную программу CyConsole, с помощью которой можно перепрошивать FX2 и которая лучше EzMr (я ей всё прошивал). Вот я и интересуюсь. -
cy7c68013 и EEPROM
Serg_Sm ответил torik тема в Все остальные микроконтроллеры
И как определяется её невалидность? Грубо говоря при обновлении прошивки вместо 16Кб данных записалось только 8, после этого работоспособность была утеряна (хотя до этого родная прошивка слетела по непонятным причинам). -
cy7c68013 и EEPROM
Serg_Sm ответил torik тема в Все остальные микроконтроллеры
Подскажите, так можно ли очистить EEPROM без прямого доступа к ней. Т.е. есть закрытый прибор на FX2, в нем доступ возможен только к USB порту. Прошивка убита - при подсоединению к компу определяется как неизвестное устройство (VID/PID = 0). -
Не совсем в тему, но тоже про подделки. Долгое время использовали DS1086L Spread-Spectrum EconOscillator. Это 8-ногая микросхемка выдающая программируемую болтающуюся частоту. Программируется по I2C. В железе прошивается один раз. Так вот несколько лет было всё нормально и тут купили партейку. По виду выходная частота есть, но регулируется только предделителем, а точной настройки нет. Регистры считываются все, а вот пишутся только 2 (предделитель и еще какой-то). Регистр цапы (точная настройка) и диапазона не пишется. Теперь отсылаем поставщику - хорошо партия небольшая. Кстати эта партия чуть отличается дополнительной маркировкой. У нормальной что-то вроде XY443, у кривой 443XY. Причем это уже второй раз - год назад было так же.
-
Всё, вроде разобрался)) Теперь работает везде где проверял с тестами и так (XP, 8.1 и 10). Причина была во флаге TXCOMP. У меня использовался переделанный пример из под FREERTOS, и есть там такая фича - сброс сразу кучи прерываний в обработчике (осталась у меня в проекте). А TXCOMP был задефайнен в эту кучу. Т.е. TXCOMP сбрасывался еще до обработки прерывания на него. Соответственно сделал сброс TXCOMP только в одном месте после полной обработки соответствующего прерывания - проблема ушла.
-
Ошибка в том, что запрос SetAddress не проходит - SETUP пакет не принимается корректно. Что касается двух ссылок с проектами, то оба проекта не работают под искомой системой (в Windows XP на другой машине работают). Отличие только в том, что возвращается STALL на запрос SetAddress (в моем случае идет безответный сбой). Естественно после этого устройство не работоспособно. PS: Может у кого есть точно рабочий проект с USB на SAM7S64? Проверенный на 8-ке и без больших тормозящих навесок (с задержками более 1мс между обработкой прерываний скорее всего заработает), нужен только процесс энумерации. Хоть бинарник киньте - попробую проверить.
-
RESET уже прошел - обработали и забыли. Далее идет обмен, вот картинка для наглядности: 8 байт отослали хосту, затем он рвет связь (что не удается отследить). В это время в очередь загружается последующие 8 байт и с приходом следующего SETUP получаем невосстанавливаемый сбой.
-
RESET получен, SETUP с запросом GetDeviceDescriptor 18 байт length. После 8 байт передачи идет следующий SETUP без RESET и всё. В старых системах (на XP) после такого шел RESET, а на 8-ке SETUP. RESET убрали для повышения скорости.
-
Так все-таки, подскажите - запрос GetDeviceDescriptor после сброса, есть система запрашивающая 18 байт и честно получающая все 18 байт, эта же система может запросить 8 байт и ждет 8 байт. Тут всё нормально. Но есть система запрашивающая 18 байт, которая после получения 8 байт разрывает обмен и тут же посылает следующий SETUP пакет. Вот здесь и начинается самое интересное - если до разрыва контроллер успел забить очередь следующими 8 байтами, то при получении SETUP получаем тотальный сбой с невозможностью что либо принять/передать по USB, если же очередь заполнить не успели, то всё проходит нормально. Как на такое реагировать?
-
Всё-таки на самой кривой системе запрашивает именно 18 (Windows 8.1 Intel Core i5, чипсет 82801). На других бывает и 8. Так что не определить.