Jump to content

    

Serg_Sm

Свой
  • Content Count

    183
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Serg_Sm

  • Rank
    Частый гость
  • Birthday 11/18/1980

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

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