|
|
  |
altufm_i2c, плохо работает |
|
|
|
Nov 20 2013, 13:38
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
В epm570TC100 (Quartus 9.0) плохо работает сабж. Сбоит, часто не определяется на живом железе. При компиляции варнинг: Цитата Circuit may not operate. Detected 4 non-operational path(s) clocked by clock "SCL" with clock skew larger than data delay. Что с этим можно сделать? Перепробовал кучу настроек компилятора, создал тестовый проект с одной только этой функцией, менял назначение пинов... Цифры в репорте меняются не намного. Кто-нибудь это юзал вживую?
|
|
|
|
|
Nov 20 2013, 14:02
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(iosifk @ Nov 20 2013, 17:48)  Чисто навскидку... У i2c медленные фронты... Я ставил фильтр от дребезга по фронтам.. Да тут почище дело... Взял квартус 7.2. То же самое. Удалил все ассайнменты, девайс сменил. Хоть бы хны. Вот что дальше делать?  UPD. Исходно хотел сделать размер памяти 1К. Но если увеличивать, то и количество этих non-operational path(s) увеличивается. UPD. Скачал с альтеры пример из комплекта к AN489. И там то же самое. Это как понимать-то?
|
|
|
|
|
Nov 20 2013, 18:47
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(vitan @ Nov 20 2013, 20:53)  Неужели никто не пользовал UFM в MAXII? Я использовал, правда не I2C, а самописаный MicroWire в стиле 93Cxx. Проблем не припомню, завелось с пол-оборота, и на несколькис сотнях экземпляров работало без проблем. Правда, это было еще в дотаймквестовскую эру  , так что sdc для этого проекта не существовало. А вот еще вопрос с уровнем Ваших внешних сигналов I2C - какой он у Вас? 3,3В? 5В? Я, к примеру, делал специальный диодно-резисторный согласователь между FT254BM и MAX II. Цитата(vitan @ Nov 20 2013, 16:38)  Перепробовал кучу настроек компилятора... А в настройках мегафункции чего-нибудь не пробовали подкрутить?
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Nov 20 2013, 19:16
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(Stewart Little @ Nov 20 2013, 22:47)  А вот еще вопрос с уровнем Ваших внешних сигналов I2C - какой он у Вас? 3,3В? 5В? Я, к примеру, делал специальный диодно-резисторный согласователь между FT254BM и MAX II. Всё трехвольтовое. Цитата(Stewart Little @ Nov 20 2013, 22:47)  А в настройках мегафункции чего-нибудь не пробовали подкрутить? Пробовал. Единственное, что получилось (правда уже могу ошибаться, много экспериментов уже прошло с тех пор) - указать режим записи Page, доступ разрешить по записи, и при этом указать, что нет стирания (NO_ERASE). Вроде бы, при таких настройках проходила успешно запись в "епромину", но только один раз, первый после прошивки самой плисины, да и то нестабильно. Это еще как-то понять можно, но вот остальное я понять не могу. В частности, не понятно, почему она плохо определяется (делаю u-boot-ом i2c probe несколько раз). Ну и не пишется тоже. Даже не знаю, мастер на шине аппаратно реализован в проце, другие девайсы на этой же шине работают... Времянки что ли анализировать альтеровские i2с-шные на предмет общеупотребительных значений? Мда, не ожидал, думал, все с полпинка заведется...
|
|
|
|
|
Nov 20 2013, 20:45
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(vitan @ Nov 20 2013, 22:16)  Пробовал. Единственное, что получилось (правда уже могу ошибаться, много экспериментов уже прошло с тех пор) - указать режим записи Page, доступ разрешить по записи, и при этом указать, что нет стирания (NO_ERASE). Вроде бы, при таких настройках проходила успешно запись в "епромину", но только один раз, первый после прошивки самой плисины, да и то нестабильно. Это еще как-то понять можно, но вот остальное я понять не могу. В частности, не понятно, почему она плохо определяется (делаю u-boot-ом i2c probe несколько раз). Ну и не пишется тоже. Даже не знаю, мастер на шине аппаратно реализован в проце, другие девайсы на этой же шине работают... Времянки что ли анализировать альтеровские i2с-шные на предмет общеупотребительных значений? Мда, не ожидал, думал, все с полпинка заведется...  Насчет записи я не совсем понял. Вы хотите из MAX II сделать "полный аналог" еепромки? Тогда следующие предостережения: 1. у UFM секторная организация. Соответственно, стриание происходит посекторно, ну и с повторной перезаписью вопросы возникают. 2. гарантированный ресурс UFM у МАХ II всего 100 циклов стирания-записи. По факту при нормальных условиях получается больше, но это уже на собственный страх и риск. ПМСМ, из UFM хорошо можно только читать
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Nov 21 2013, 06:09
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(Stewart Little @ Nov 21 2013, 00:45)  Насчет записи я не совсем понял. Вы хотите из MAX II сделать "полный аналог" еепромки? Тогда следующие предостережения: 1. у UFM секторная организация. Соответственно, стриание происходит посекторно, ну и с повторной перезаписью вопросы возникают. 2. гарантированный ресурс UFM у МАХ II всего 100 циклов стирания-записи. По факту при нормальных условиях получается больше, но это уже на собственный страх и риск. ПМСМ, из UFM хорошо можно только читать  Нет я про полный аналог все понимаю, мне не надо туда писать со страшной силой, имеющегося ресурса достаточно. Про секторную организацию тоже все правильно, но опять же, меня это устраивает. Вообще эта фигня планируется для хранения всякой ерунды типа мак-адресов, т.е. будет буквально один раз записываться на производстве, а потом даже может и блокироваться на запись (пока не решил, запустить бы...). Тем не менее, запись хотелось бы иметь работающую, точнее даже так: я уверен, что если запись не работает, то и читаться\определяться нормально не будет. Т.е. я думаю, что косяк где-то в этой функции в части интерфейса i2c. Уфф... Пойду резисторы попаяю...
|
|
|
|
|
Nov 22 2013, 09:04
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Вот ведь.. И на старуху бывает проруха...  Прошивал плисину не обычным байтбластером, а внешним программатором elnec, и с непривычки не заметил, что не выставлено предвариательное стирание. Сбои, вроде, исчезли. Но теперь вторая проблема. Хочу проинитить память данными. Подсовываю файл .mif, делаю дамп на железе и вижу, что данные идут через одно, а не друг за другом. Т.е. у меня в файле написано: 00 : 55 01 : aa 02 : 12 03 : 34 А в реальности дамп следующий: 00 : 55 01 : ff 02 : aa 03 : ff 04 : 12 05 : ff 06 : 34 07 : ff Перепробовал все комбинации width в файле не помогает. При этом ячейки с FF работают нормально (с учетом особенностей стирания, конечно), т.е. я могу их записать со стороны мастера на I2C. В чем тут дело, не пойму никак?
|
|
|
|
|
Nov 22 2013, 21:10
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
А дело, похоже, в общей кривизне этой функции и документации на неё. Впервые столкнулся с тем, что для запуска функции недостаточно хелпа в квартусе. Вот здесь объясняют, почему в данных пропуски, а также много чего еще. Зачем и почему такие сложности - загадка. И как именно сделать тот самый padding в mif-файле тоже весьма не отчетливо написано. Но это еще не все. Реально можно указать размер 8К, о чем нигде ни слова, и это работает, только непонятно, как там все мапится... Мда... Неожиданно низкое качество...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|