|
|
  |
avreal, новая версия (если кому-то это ещё нужно) |
|
|
|
Dec 28 2009, 09:34
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 8-05-08
Пользователь №: 37 363

|
Цитата(M_Andrey @ Dec 26 2009, 15:10)  Я уже неоднократно писал, что у меня ATMega128 в TQFP-корпусе с заводскими фьюзами шьется только с ключом -о0, даже ReAl не верит, но это так! ( ссылка) Полностью поддерживаю необходимость внешнего тактирования при прошивке. Несколько раз была аналогичная ситуация, последний раз на меге2561 при первом включении-программировании. Помог байтбластер на LPT с проводком на XTAL1 и ключ -о0,32. Причём, фузы в кристалле стояли не по заводским умолчаниям. Так что, если эту возможность нельзя реализовать на FTDI, то нужен отдельный внешний генератор. Вопрос, в том, будет ли это надёжно работать? Такт генерируется не программой и, соответственно, он несинхронный с последовательностями программатора.
Сообщение отредактировал Арк К - Dec 28 2009, 09:37
|
|
|
|
|
Dec 28 2009, 09:48
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Арк К @ Dec 28 2009, 11:34)  Причём, фузы в кристалле стояли не по заводским умолчаниям. Это единственно возможное объяснение, тянущее за собой вопрос - "а почему так". Если бы предпрошитые производителем (и почему-то часть партии попала в продажу) - так там и программа была бы. Цитата(Арк К @ Dec 28 2009, 11:34)  Так что, если эту возможность нельзя реализовать на FTDI, то нужен отдельный внешний генератор. Вопрос, в том, будет ли это надёжно работать? Такт генерируется не программой и, соответственно, он несинхронный с последовательностями программатора. Эту возможность можно реализовать в режиме SynchronousBitBang (давно обещал, в ближайшее время таки сделаю) для FT232R и FT2232 (впрочем, у FT232R можно и внутренний такт вывести на свободную ножку). Асинхронность не страшна, ну может частота должна быть с небольшим запасом, не ровно в два раза выше частоты SPI, а немного больше. Кварц или внутренний RC ведь асинхронные.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Dec 28 2009, 11:14
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317

|
LPT повторяет судьбу динозавров ... может Real ещё больше разделит на слои свою замечательную программку и она, в один прекрасный момент, научится общаться с AVR910 (это я на программатор от Prottoss намекаю  )? FTxxxx адаптер это здорово ... но на более простых/доступных/"крупных" чипах тоже было бы замечательно.
|
|
|
|
|
Dec 28 2009, 13:44
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 8-05-08
Пользователь №: 37 363

|
Цитата(ReAl @ Dec 28 2009, 12:48)  ... тянущее за собой вопрос - "а почему так". хто ж его знает, взятый из пакетика чип, новый. может статика какая Цитата(ReAl @ Dec 28 2009, 12:48)  Эту возможность можно реализовать в режиме SynchronousBitBang (давно обещал, в ближайшее время таки сделаю) для FT232R и FT2232 (впрочем, у FT232R можно и внутренний такт вывести на свободную ножку). Будет вообще супер! Только внутреннего такта FT232R может быть слишком много по частоте, как показал последний опыт (пришлось ещё делить частоту) Всё-таки этот режим чрезвычайно полезен
|
|
|
|
|
Dec 28 2009, 20:56
|

Участник

Группа: Участник
Сообщений: 58
Регистрация: 28-11-05
Пользователь №: 11 495

|
Цитата(Арк К @ Dec 28 2009, 15:44)  внутреннего такта FT232R может быть слишком много по частоте Недавно столкнулся с проблемой: выдаваемый FT232R клок 12MHz был необходим для тактирования MCU. В плате был разведен один из CBUS выводов FT232R в надежде вывести нужный сигнал на нужную лапку с помощью переконфигурации EEPROM, как оно в доке и обещалось. По факту вывести этот клок удалось только на одном выводе (CBUS3 вроде) при любых вариантах конфигурации, т.е. либо CBUS3, либо нигде. Поделка разовая, вспомогательная, так что разбираться в причинах не стал, порезал дорожки, но запомнилось.
|
|
|
|
|
Dec 29 2009, 11:18
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(acorn @ Dec 28 2009, 22:56)  По факту вывести этот клок удалось только на одном выводе (CBUS3 вроде) при любых вариантах конфигурации, т.е. либо CBUS3, либо нигде. Выводил на CBUS2, работало. Но проблема была с тактированием процессора от этого сигнала. Предполагаю, что при инициализации FT232R этот сигнал генерится с более высокой частотой, чем указана в конфигурации. У меня процессор с ума сходил - пропускал некоторые команды в стартап-коде. Пришлось на процессор кварц повесить. Цифрового осциллографа не было, убедиться в правильности гипотезы не мог. Но кварц на процессоре снял проблему.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 29 2009, 20:16
|

Участник

Группа: Участник
Сообщений: 58
Регистрация: 28-11-05
Пользователь №: 11 495

|
Цитата(Сергей Борщ @ Dec 29 2009, 13:18)  Выводил на CBUS2, работало. Но проблема была с тактированием процессора от этого сигнала. С номером CBUS могу и ошибаться, сейчас лень по плате смотреть, от которого я клок в конце концов взял, но описанной проблемы не встретил. Устройство это есть и работает (в единственном экземпляре, правда), пользуюсь постоянно, глюки, думаю, заметил-бы. Процессор там atmega162-16 с питанием от USB и клоком от FTDI, кварца нет.
|
|
|
|
|
Jan 21 2010, 20:52
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Вышла новая версия avreal - частично вобрала в себя не дошедшую до релиза 1.27r5, частично новое. v1.28r0 (Wed 2010-01-20)- Для выдачи списка подключенных устройств FTDI по -aft2232 -p? уже не нужно указывать хоть какой-то микроконтроллер.
- Добавлены tiny2313A, tiny4313.
- Ключ -az для FT2232 оставляет микросхему в режиме MPSSE с выводами программирования, переключенными на вход.
- Для конфигурируемого LPT-адаптера добавлены группы сигналов led_ok, led_error.
- Для FT2232-адаптеров поддерживаютя все типы сигналов в конфигурационном файле, включая новые led_ok, led_error.
- Сигнал enable для FT2232 обрабатывается так же, как и для LPT, необходимо указывать инверсию для формирователей с активным низким входом разрешения.
- Выдача информации производится без буферизации и при перенаправлении вывода, чтобы при перехвате в IDE было постянное обновление.
- Игнорируются строки данных HEX-файла с нулевым полем длины (нашёлся компилятор, который спорадически их формирует).
- Убран ключ -ar, теперь для инверсии сигнала RESET нужно создать соответствующий конфигурационный файл
Цитата(ReAl @ Dec 11 2009, 14:15)  Как уже сказано, переназначать ноги, равно как и поднять тактирование XTAL1 в режиме MPSSE нельзя - это конкретный "аппаратный" режим микросхемы и поменять ничего не получится. Ну, кроме инверсии. Инверсия допускается, т.е. указать sck=~adbus0 теперь можно, а вот sck=adbus6 нельзя. Цитата(ReAl @ Dec 11 2009, 14:15)  Тут бяка вылезла. Точнее, заметил я это давно и, кажется, где-то об этом уже писал. Но вот только сейчас руки дошли. Дело в том, что для конфигурирования адаптеров на LPT по умолчанию сигнал enable считется активным высоким уровнем (аналогично mosi/sck/set/power) ... А для FT2232 - указывается только нога и считается, что разрешение низким уровнем. И если вдруг кто-то поставит буферы 74HC126 с разрешением "1"-кой - придётся писать на разрешении инверсию. Что непорядок, так как поведение противоположно LPT. Поэтому и версия поменялась, не 1.27r5 а 1.28r0 - теперь надо подредактировать существующие батники/конфиги/..., поставив инверсии перед выводом для сигнала enable.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 7 2010, 17:24
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(_pv @ Feb 7 2010, 15:26)  В 64х разрядной dlportio.dll отсутствует функция DlPortWritePortBufferUchar, есть только DlPortWritePortUchar. нельзя ли поправить так чтобы использовалась DlPortWritePortUchar если не найдена DlPortWritePortBufferUchar? Ткните пальцем в 64-битную dlportio, а то у авторов лежит только та старая. Поправить можно, как и прикрутить любую другую, которая работает под 64-битными ОС.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 7 2010, 18:22
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(ReAl @ Feb 7 2010, 23:24)  Ткните пальцем в 64-битную dlportio, а то у авторов лежит только та старая. нашел здесь: http://ponyprog.sourceforge.net/phorum/read.php?2,501Только, это похоже не dlportio, a inpout32 ( http://www.highrez.co.uk/Downloads/InpOut32/default.htm ), в который добавлены DlPortWritePort функции для совместимости с dlport, однако нет DlPortWritePortBuffer. Там, кстати, есть исходники этой дллки, я туда добавил требуемые функции, собрал, вроде всё заработало. единственная проблема в том что почему-то работает 1 раз из 10. почти всегда просто выходит ничего не сделав: Код >avreal32-1.28r1.exe -% -ab -p1 +mega48 -e
avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr v1.28r1 (Jan 31 2010 16:43:36) http://real.kiev.ua/avreal bug-reports, suggestions and so on mail to avreal@real.kiev.ua Command: -% -ab -p1 +mega48 -e % LPT port number 1 % LPT base address 0x378 % DLportIO.dll succesfully loaded, DLportIO.sys interface activated % LPT write cycle 0.000000ns % ByteBlasterMV found % ByteBlaster adapter mode и все, на этом выходит. иногда, но уж совсем редко еще добавляет Can't allocate memory. но иногда все-таки работает (правда ничего к нему в тот момент не было подключено, но все вроде нормально, ножками дергает): Код avreal32-1.28r1.exe -% -ab -p1 +mega48 -e
avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr v1.28r1 (Jan 31 2010 16:43:36) http://real.kiev.ua/avreal bug-reports, suggestions and so on mail to avreal@real.kiev.ua Command: -% -ab -p1 +mega48 -e % LPT port number 1 % LPT base address 0x378 % DLportIO.dll succesfully loaded, DLportIO.sys interface activated % LPT write cycle 2.91ns % ByteBlasterMV found % ByteBlaster adapter mode % MCU oscillator frequency = 0.80MHz % setup 2.63us, hold 2.63us % actual SCK frequency 190kHz Adapter enabled % Reset % PgmOn reply FF FF FF FF % Try 1 to resync by reset pulse % PgmOn reply FF FF FF FF % Try 2 to resync by reset pulse % PgmOn reply FF FF FF FF % Try 3 to resync by reset pulse % PgmOn reply FF FF FF FF % Try 4 to resync by reset pulse % PgmOn reply FF FF FF FF Can't resync
Reset pin released Adapter disabled Да, с avreal 1.26 все работает отлично.
|
|
|
|
|
Feb 7 2010, 20:37
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Отвлекли на мной же заведённое правило - в выходные вечером все вместе смотрим очередной фильм из завалов.Цитата(_pv @ Feb 7 2010, 20:22)  Только, это похоже не dlportio, a inpout32 Да, я тоже уже доискался до этого имени, где-то даже прозвучало, что оно не полностью совместимо с dlportio. Цитата(_pv @ Feb 7 2010, 20:22)  Код % LPT write cycle 0.000000ns Код % LPT write cycle 2.91ns Да, с avreal 1.26 все работает отлично. Опаньки. Где-то знатная бага пролезла... Буду смотреть diff-ы и, наверное, всё же добавлю проверку на наличие блочной функции и эмуляцию её у себя - чтобы и с непатченной работло. А почему такой жуткий промах с определением времени цикла - непонятно абсолютно. Под XP/32 с изначальной dlportio замеряет ведь нормально. Цитата(_pv @ Feb 7 2010, 20:22)  Да, с avreal 1.26 все работает отлично. Значит это всё было под 64-битной ОС (какой?) с обычным avreal-ом и с той доработанной библиотекой. "Задача-64 имеет решение" и это приятно. Пошёл смотреть. .oO Хм... А 1.26r0 или 1.26r3 ? :-)
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 7 2010, 21:26
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(ReAl @ Feb 8 2010, 02:37)  Да, я тоже уже доискался до этого имени, где-то даже прозвучало, что оно не полностью совместимо с dlportio. Благо исходники доступны и сделать её полностью совместимой с dlport вроде не сильно сложно Цитата(ReAl @ Feb 8 2010, 02:37)  Опаньки. Где-то знатная бага пролезла... Буду смотреть diff-ы и, наверное, всё же добавлю проверку на наличие блочной функции и эмуляцию её у себя - чтобы и с непатченной работло. А почему такой жуткий промах с определением времени цикла - непонятно абсолютно. Под XP/32 с изначальной dlportio замеряет ведь нормально. Сорри, это мой косяк. когда добавлял DlportWritePortBuffer случайно скопипастил туда DlportWritePort(ULONG port, UCHAR data). получилось DlportWritePortBuffer с параметрами (ULONG port, UCHAR data)... со всеми вытекающими отсюда последствиями. Теперь всё нормально и с 1.28 тоже. в аттаче патченная дллка с исходным inpout32 64х разрядным драйвером, и родным инсталлером от dlport. в дллку было добавлено: Код UCHAR _stdcall DlPortReadPortUchar (ULONG port){return Inp32(port);} void _stdcall DlPortWritePortUchar(ULONG port, UCHAR Value){Out32(port, Value);} USHORT _stdcall DlPortReadPortUshort (ULONG port){return Inp32(port);} void _stdcall DlPortWritePortUshort(ULONG port, USHORT Value){Out32(port, Value);} ULONG _stdcall DlPortReadPortUlong(ULONG port){return Inp32(port);} void _stdcall DlPortWritePortUlong(ULONG port, ULONG Value){Out32(port, Value);} void _stdcall DlPortReadPortBufferUchar (ULONG port, UCHAR* buff, ULONG cnt){while(cnt--) *buff++ = Inp32(port);} void _stdcall DlPortWritePortBufferUchar(ULONG port, UCHAR* buff, ULONG cnt){while(cnt--) Out32(port, *buff++);} void _stdcall DlPortReadPortBufferUshort (ULONG port, USHORT* buff, ULONG cnt){while(cnt--) *buff++ = Inp32(port);} void _stdcall DlPortWritePortBufferUshort(ULONG port, USHORT* buff, ULONG cnt){while(cnt--) Out32(port, *buff++);} void _stdcall DlPortReadPortBufferUlong(ULONG port, ULONG* buff, ULONG cnt){while(cnt--) *buff++ = Inp32(port);} void _stdcall DlPortWritePortBufferUlong(ULONG port, ULONG* buff, ULONG cnt){while(cnt--) Out32(port, *buff++);} еще могут быть чудеса с тем что исходные Inp32 и Out32 имеют в качестве данных всегда short. следовательно DlPortWritePortBufferUlong(ULONG port, ULONG* buff, ULONG cnt) будет работать не совсем правильно. но для avreal'a вроде не критично. Цитата(ReAl @ Feb 8 2010, 02:37)  Значит это всё было под 64-битной ОС (какой?) с обычным avreal-ом и с той доработанной библиотекой. "Задача-64 имеет решение" и это приятно. Пошёл смотреть. да, ОС winXP 64. судя по форумам в висте64 этот драйвер тоже работает, все остальное значит тоже должно.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|