реклама на сайте
подробности

 
 
25 страниц V  « < 12 13 14 15 16 > »   
Reply to this topicStart new topic
> avreal, новая версия (если кому-то это ещё нужно)
Арк К
сообщение Dec 28 2009, 09:34
Сообщение #196


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
ReAl
сообщение Dec 28 2009, 09:48
Сообщение #197


Нечётный пользователь.
******

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



Цитата(Арк К @ Dec 28 2009, 11:34) *
Причём, фузы в кристалле стояли не по заводским умолчаниям.
Это единственно возможное объяснение, тянущее за собой вопрос - "а почему так".
Если бы предпрошитые производителем (и почему-то часть партии попала в продажу) - так там и программа была бы.

Цитата(Арк К @ Dec 28 2009, 11:34) *
Так что, если эту возможность нельзя реализовать на FTDI, то нужен отдельный внешний генератор.
Вопрос, в том, будет ли это надёжно работать? Такт генерируется не программой и, соответственно, он несинхронный с последовательностями программатора.
Эту возможность можно реализовать в режиме SynchronousBitBang (давно обещал, в ближайшее время таки сделаю) для FT232R и FT2232 (впрочем, у FT232R можно и внутренний такт вывести на свободную ножку).
Асинхронность не страшна, ну может частота должна быть с небольшим запасом, не ровно в два раза выше частоты SPI, а немного больше. Кварц или внутренний RC ведь асинхронные.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
xemul
сообщение Dec 28 2009, 09:53
Сообщение #198



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Арк К @ Dec 28 2009, 12:34) *
Вопрос, в том, будет ли это надёжно работать? Такт генерируется не программой и, соответственно, он несинхронный с последовательностями программатора.

Этот случай чем-то отличается от программирования контроллера, тактируемого внутренним генератором?
Go to the top of the page
 
+Quote Post
AndryG
сообщение Dec 28 2009, 11:14
Сообщение #199


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317



LPT повторяет судьбу динозавров ... может Real ещё больше разделит на слои свою замечательную программку и она, в один прекрасный момент, научится общаться с AVR910 (это я на программатор от Prottoss намекаю smile.gif )?
FTxxxx адаптер это здорово ... но на более простых/доступных/"крупных" чипах тоже было бы замечательно.
Go to the top of the page
 
+Quote Post
Арк К
сообщение Dec 28 2009, 13:44
Сообщение #200


Участник
*

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



Цитата(ReAl @ Dec 28 2009, 12:48) *
... тянущее за собой вопрос - "а почему так".

хто ж его знает, взятый из пакетика чип, новый. может статика какая

Цитата(ReAl @ Dec 28 2009, 12:48) *
Эту возможность можно реализовать в режиме SynchronousBitBang (давно обещал, в ближайшее время таки сделаю) для FT232R и FT2232 (впрочем, у FT232R можно и внутренний такт вывести на свободную ножку).

Будет вообще супер! Только внутреннего такта FT232R может быть слишком много по частоте, как показал последний опыт (пришлось ещё делить частоту)
Всё-таки этот режим чрезвычайно полезен
Go to the top of the page
 
+Quote Post
acorn
сообщение Dec 28 2009, 20:56
Сообщение #201


Участник
*

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



Цитата(Арк К @ Dec 28 2009, 15:44) *
внутреннего такта FT232R может быть слишком много по частоте

Недавно столкнулся с проблемой: выдаваемый FT232R клок 12MHz был необходим для тактирования MCU. В плате был разведен один из CBUS выводов FT232R в надежде вывести нужный сигнал на нужную лапку с помощью переконфигурации EEPROM, как оно в доке и обещалось.
По факту вывести этот клок удалось только на одном выводе (CBUS3 вроде) при любых вариантах конфигурации, т.е. либо CBUS3, либо нигде.
Поделка разовая, вспомогательная, так что разбираться в причинах не стал, порезал дорожки, но запомнилось.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 29 2009, 11:18
Сообщение #202


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
acorn
сообщение Dec 29 2009, 20:16
Сообщение #203


Участник
*

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



Цитата(Сергей Борщ @ Dec 29 2009, 13:18) *
Выводил на CBUS2, работало. Но проблема была с тактированием процессора от этого сигнала.

С номером CBUS могу и ошибаться, сейчас лень по плате смотреть, от которого я клок в конце концов взял, но описанной проблемы не встретил. Устройство это есть и работает (в единственном экземпляре, правда), пользуюсь постоянно, глюки, думаю, заметил-бы. Процессор там atmega162-16 с питанием от USB и клоком от FTDI, кварца нет.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jan 21 2010, 20:52
Сообщение #204


Нечётный пользователь.
******

Группа: Свой
Сообщений: 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.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jan 31 2010, 20:20
Сообщение #205


Нечётный пользователь.
******

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



Вышла новая версия avreal.

v1.28r1 (Sun 2010-01-31)
  • Добавлено поддержку FT2232H, FT4232H с возможностью использовать для программирования оба канала с MPSSE.
  • Добавлен ключ -k для ожидания нажатия кнопки на адаптере программирования и соответствующую конфигурационную запись key.
  • Добавлена модификация ключа -os для задания частоты SCK, а не частоты тактирования микроконтроллера.

FT2232C/L/D позволяют задать частоты от 6МГц и ниже путём деления этих 6МГц на целое число. Т.е. реально для AVR можно выставить не выше 3.
FT2232H с повышенной базовой частотой вообще лапочка - позволяет получить сетку 30/N и приподнять частоту программирования для тактируемых 16..20MHz AVR-ок, а со своими двумя каналами - шить в два ручья.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
_pv
сообщение Feb 7 2010, 13:26
Сообщение #206


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



В 64х разрядной dlportio.dll отсутствует функция DlPortWritePortBufferUchar, есть только DlPortWritePortUchar.
нельзя ли поправить так чтобы использовалась DlPortWritePortUchar если не найдена DlPortWritePortBufferUchar?
Go to the top of the page
 
+Quote Post
ReAl
сообщение Feb 7 2010, 17:24
Сообщение #207


Нечётный пользователь.
******

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



Цитата(_pv @ Feb 7 2010, 15:26) *
В 64х разрядной dlportio.dll отсутствует функция DlPortWritePortBufferUchar, есть только DlPortWritePortUchar.
нельзя ли поправить так чтобы использовалась DlPortWritePortUchar если не найдена DlPortWritePortBufferUchar?
Ткните пальцем в 64-битную dlportio, а то у авторов лежит только та старая.

Поправить можно, как и прикрутить любую другую, которая работает под 64-битными ОС.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
_pv
сообщение Feb 7 2010, 18:22
Сообщение #208


Гуру
******

Группа: Свой
Сообщений: 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 все работает отлично.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Feb 7 2010, 20:37
Сообщение #209


Нечётный пользователь.
******

Группа: Свой
Сообщений: 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 ? :-)


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
_pv
сообщение Feb 7 2010, 21:26
Сообщение #210


Гуру
******

Группа: Свой
Сообщений: 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 этот драйвер тоже работает, все остальное значит тоже должно.
Прикрепленные файлы
Прикрепленный файл  DlportIOx64.zip ( 177.74 килобайт ) Кол-во скачиваний: 980
 
Go to the top of the page
 
+Quote Post

25 страниц V  « < 12 13 14 15 16 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th July 2025 - 15:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01514 секунд с 7
ELECTRONIX ©2004-2016