Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: avreal
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
Petka
Цитата(klen @ Nov 18 2008, 10:37) *
распиновку дать можете?


ARM-JTAG: http://olimex.com/dev/images/arm-jtag-layout.gif
как его подключать к AVR: http://www.ln.com.ua/~real/avreal/description.html#FT2232CFG
этого хватит? или более подробно?

Цитата(ReAl @ Nov 18 2008, 02:52) *
Ну какой-нибудь приличный ключик по частоте... Скажем, -o12MHz (если сам кристалл тактируется от 12 и выше, причём даже если там 16МГц, выгоднее ключ -o12MHz давать :-) ) ...
А то 21 секунда это как-то аж стыдно для USB...


Код
avreal32.exe -aft2232 +mega128 -o12Mhz -r flash.hex

теперь чтение всего флеша 2сек!

Цитата(ReAl @ Nov 18 2008, 02:52) *
По конфиг-файлу:
Там у олимекса есть ещё входные сигналы - SRST зачитывается назад и RTCK, а без конфига на всё выдаются нули.

Может тогда лучше сделать, что бы без конфига нули не выдавались?
Огурцов
А автоподбор sck нельзя сделать ?
ReAl
Цитата(Petka @ Nov 18 2008, 10:03) *
Код
avreal32.exe -aft2232 +mega128 -o12Mhz -r flash.hex

теперь чтение всего флеша 2сек!

Во, другое дело smile.gif

Цитата(Petka @ Nov 18 2008, 10:03) *
Может тогда лучше сделать, что бы без конфига нули не выдавались?

Возможно. На то оно и экспериментальная версия - не только работоспособность надо проверять, но и логику работы утрясать.
Т.е. без конфига оно будет работать только с "голой" FT2232 либо с постоянно открытыми шинниками.
Собственно, так оно и было поначалу, но потом для быстрой проверки на плате с шинниками до дописывания куска конфига было проще выдать нули везде. Теперь можно вернуть на "ничего кроме TCK/TDI/TDO/TMS не трогаем".
Сергей Борщ
Цитата(ReAl @ Nov 18 2008, 12:44) *
Т.е. без конфига оно будет работать только с "голой" FT2232 либо с постоянно открытыми шинниками.
Саша, а конфиг оно уже, надеюсь, умеет искать в той же папке, где и сам avreal32 лежит?
ReAl
Цитата(Огурцов @ Nov 18 2008, 11:16) *
А автоподбор sck нельзя сделать ?
Вообще говоря, об этом думалось уже, но для (достаточно медленного) LPT это имело смысл для довольно низких частот и обычно в проекте всё равно частота известна и нет проблем в makefile прописать (точнее, использовать и так прописанную, котрая передаётся в исходники как F_CPU).
Кроме того, при каких-то экспериментах я нарвался на то, что при определённой частоте SPI выше рассчётной по документации кристалл в программирование входит и DEV_ID читает нормально, но при чтении flash уже идёт мусор. Возможно, то был мой глюк, "дело было вечером" а на другой день было не до этого, но "осадок остался" и я к этой теме больше не возвращался.


Цитата(Сергей Борщ @ Nov 18 2008, 12:59) *
Саша, а конфиг оно уже, надеюсь, умеет искать в той же папке, где и сам avreal32 лежит?
Тьху! Забыл. Пишу в TODO.
Petka
Цитата(ReAl @ Nov 18 2008, 13:44) *
Теперь можно вернуть на "ничего кроме TCK/TDI/TDO/TMS не трогаем".

Да, так будет логичнее. По крайней мере ничего не сгорит, если забуду конфиг указать.
Да, ещё из пожеланий: может уже пора вместе с avreal'ом поставлять и готовые конфиги? например "olimex_arm-usb-ocd.cfg" ?
SasaVitebsk
Цитата(ReAl @ Nov 18 2008, 15:02) *
Кроме того, при каких-то экспериментах я нарвался на то, что при определённой частоте SPI выше рассчётной по документации кристалл в программирование входит и DEV_ID читает нормально, но при чтении flash уже идёт мусор. Возможно, то был мой глюк, "дело было вечером" а на другой день было не до этого, но "осадок остался" и я к этой теме больше не возвращался.

Нет, это не ваш глюк. 640 ведёт себя так стандартно. При программировании на голый кристалл (1МГц внутр.) если забываешь и запускаешь батник fast (10МГц), всё проходит но не верно читается флэш. Аналогично ведёт себя и JTAG ICE MK2 в режиме программатора. Та же шляпа и с 88.

А вот я по теме не много не догоняю. И что с MT-Link-ом будет работать? 07.gif
ReAl
Цитата(SasaVitebsk @ Nov 18 2008, 23:24) *
Нет, это не ваш глюк. 640 ведёт себя так стандартно.
...
Та же шляпа и с 88.
Вот-вот. А у меня это или тини2313, или мега48 была, уже не помню, давно было. Кажется всё же тини2313.
Ну и как в таких условиях автонастройку скорости проводить? Я думал найти скорость, на которой откликается и, к примеру, на треть её понизить для надёжности. А с такими фокусами неохота влазить в эксперименты а потом отвечать на письма "а почему у меня не".

Цитата(SasaVitebsk @ Nov 18 2008, 23:24) *
А вот я по теме не много не догоняю. И что с MT-Link-ом будет работать?
А что, внутри MT-Link стоит FT2232 ??
Alexandro
Цитата(ReAl @ Nov 19 2008, 08:40) *
А что, внутри MT-Link стоит FT2232 ??


MT-Link сделан на ARM-е AT91SAM7S64. Работать как я понимаю не сможет.
Огурцов
Цитата(ReAl @ Nov 19 2008, 06:40) *
Ну и как в таких условиях автонастройку скорости проводить? Я думал найти скорость, на которой откликается и, к примеру, на треть её понизить для надёжности.

Лучше минимум в два раза. В этом случае шьется ? Кроме того, возможность принудительного задания частоты sck не устраняется. Ну это так, к слову - у меня все равно своя прога.
kurtis
Прошу прощения за глупый вопрос, но как им правильно пользоваться в линуксе (Ubuntu 8.10) ? А то он у меня только через sudo avreal запускается, не буду же я постоянно пароль вводить, а сидеть постоянно под root'ом вредно.
ReAl
Цитата(kurtis @ Dec 23 2008, 22:55) *
Прошу прощения за глупый вопрос, но как им правильно пользоваться в линуксе (Ubuntu 8.10) ? А то он у меня только через sudo avreal запускается, не буду же я постоянно пароль вводить, а сидеть постоянно под root'ом вредно.


Для работы через -pE800 или там на каком адресе сидит lpt
chmod +s avreal
но это а) те же, только в профиль, б) на последних ядрах один фиг может не работать.
Посему лучше работать через -p/dev/parport0 и для этого включить пользователья в группу lp

С FT2232 пока ничего кроме sudo не выходит, я не понял пока - куда бы включить пользователя, чтобы он мог работать через libftd2xx -> libusb -> устройства.
klen
Цитата(ReAl @ Dec 24 2008, 01:53) *
С FT2232 пока ничего кроме sudo не выходит, я не понял пока - куда бы включить пользователя, чтобы он мог работать через libftd2xx -> libusb -> устройства.

выставь файлу чтение всем, исполнение всем, и бит установки прав рута при запуске.

это такой бит, который рут может выставить чтоб процес запущенный от имени левого пользователя получал права как у рута. это позволяет левому пользователю работать с девайсами (в нашем случае это ft2232 девайс) через рутовый процес. Идея в том чтобы дать возможность левому пользоватею доступ к системным ресурсам например ДЕ ДАВАЯ ему никаких прав. в таком случае зашиту от врага - пользователя обеспечивает реализация этого процесса.

такаяже ситуация с процессом отладчиком openocd. ему тоже нужен доступ к ft2232 девайсу. пользователь еслсли под своими провами запустит то он ругнется что девайсы нельзя открыть - прав нет. давать пользователю рутовые права чтоб он под рутом запускал отладчик и среду разработки - косяг, от ваще все сламать может. Вот и есть для тагого случая бит установки прав владельца при запуске процесса не влажельцем а тем у кого есть права на запуск.
Арк К
Собрал программатор на FT2232 по авторской схеме с сайта на отдельной печатке - пашет как часы smile.gif . Как следует не гонял, поэтому багов пока не обнаружил (а может их и нет вовсе smile.gif ).
автору - огромный респект a14.gif
Dx!
на FT2232D работать будет?
Немного смутило
Цитата
Requested FT_DEVICE_2232C
Found FT_DEVICE_232R

Понятно, что FT_DEVICE_232R не поддерживается (пока?) но именно FT_DEVICE_2232C насторожила 8)
ReAl
Цитата(Dx! @ Feb 6 2009, 15:13) *
на FT2232D работать будет?
Будет.
Даже живьём проверено на всех трёх - FT2232C,FT2232L,FT2232D

Цитата(Dx! @ Feb 6 2009, 15:13) *
Немного смутило
Понятно, что FT_DEVICE_232R не поддерживается (пока?) но именно FT_DEVICE_2232C насторожила 8)

Устройство проверяется и индицируется по кодам из ftd2xx.h от FTDI

Код
enum {
    FT_DEVICE_BM,
    FT_DEVICE_AM,
    FT_DEVICE_100AX,
    FT_DEVICE_UNKNOWN,
    FT_DEVICE_2232C,
    FT_DEVICE_232R
};

Для всех трёх указанных выше микросхем драйвер/библиотека возвращают код FT_DEVICE_2232C
Dx!
Хорошо - тогда новый программатор запускается в производство 8). Схемка на вашем сайте довольно бедная - будет ли она доводиться, или в остальном функционале будет полный freestyle?
Можно ли выходной шинник включать сиглалом reset?
ReAl
Цитата(Dx! @ Feb 7 2009, 02:41) *
Хорошо - тогда новый программатор запускается в производство 8). Схемка на вашем сайте довольно бедная - будет ли она доводиться, или в остальном функционале будет полный freestyle?
Так то не схема, а "достаточный мнимум для демонстрации". Там ссылки даны, за некоторыми из них можно нарыть схемы или вменяемые описания того, что есть на схемах.
Мне пока нет смысла рисовать какую-то "свою" схему - относительно приведенных каких-то особых идей нет, так какой смысл? Плодить разнообразие?

Обратите внимание, что во многи адаптерах, на которые я дал ссылки у себя, есть преобразователи RS232 на втором канале.
И ешё посмотрите обещаную тему на сахаре
http://caxapa.ru/139009.html
от місли с кнопочкой я не отказываюсь, со временем добавлю.
Комбинированный преобразователь RS232/RS485, упомянутый в той теме, может быть интересным кому-то, но дорого.

Цитата(Dx! @ Feb 7 2009, 02:41) *
Можно ли выходной шинник включать сиглалом reset?
Думаю, могут начаться проблемы со входом в режим программирования. Атмел просит сначала подать низкий на SCK, потом на RESET. Какоё-то даже небольшой конденсатор на входе reset гарантированно нарушит это дело.
Во многих случаях вытянется процедурами пересинхронизаци, войдёт в режим программирования не с первой попытки, но лучше не рисковать.
demiurg_spb
ReAl, развели уже давненько платку программатора на ft2232 по схемке с вашего сайта. Спасибо за идёю и за софт.
Пока не стали ставить никаких шинных формирователей. Питание на таргет беру с USB, как собственно и всегда (ранее юзали STK200 свместимый).
Меги 162 шьются влёт. А вот мега1281 нифига. Can't resync. И хоть ты тресни! C мегой64 иногда тоже проскакивает.

вызов простейший:
avreal32.exe -aft2232 +mega1281 -r prog.hex -d data.hex

Был длинный шнурок от программатора до таргета (70-80)см, укоротил до 20см. Эффекта никакого не дало.
Куда можно посмотреть ещё?

PS. Все таргеты с кварцем 14,7456МГц. Mega162 и Mega1281 стартуют со включенным CLKDIV=8.

Программаторов 6 штук. Все ведут себя одинаково.

Спасибо за помощь!
ReAl
Цитата(demiurg_spb @ Mar 30 2009, 18:43) *
А вот мега1281 нифига. Can't resync. И хоть ты тресни! C мегой64 иногда тоже проскакивает.
Я пробовал на меге168, меге128. По нескольку десятков раз при разных тактовых. Постоянно сам сейчас не использую, так как дома мало, а на работе комп доваольно старый, у него LPT есть.
Есть под рукой mega2561, через часик попробую и отпишусь.
ReAl
"ну не знаю".

mega2561 @ 3.3V, 7.3728MHz (на плате свой LM2676S-3.3, питание на плату 12V с рядом стоящего ATX блока питания, воткнутого в тот же удлиннитель, что и UPS).

avreal32-127r0, avreal32-127r1 в разных комбинациях с ckdiv=1 и ckdiv=0 в сумме раз 20 зашили полные 256К флеша.


И ещё + 10 минут цикла
Код
:start
avreal32 -aft2232 +mega2561 %
if not errorlevel 1 goto :start
Прокручивается раза три в секунду. Ну в конце концов я выдернул шнурок из платы и получил can't resync :-)
Только у меня сейчас дома подаренная платка с развязкой на SI8441, земли джампером соединены, питания - нет, так что Si8441 работал по сути преобразователем уровней.
Dx!
Начну с вопроса - обязан ли конфигурационный файл быть именно файлом? неужели я обязан ради enable=adbus7 создавать хз что? Можно сделать возможность указывать его как фьюзы например?
Ну и думаю стоит убрать с сайта
Цитата
а на все незадействованные выводы канала А выдаются нули (для открытия шинных формирователей при всех возможных вариантах их подключения).

Так как это не соответствует действительности - v1.27rev1 (Jan 2 2009 12:49:24) ничего не выдает и соответственно читает 00 8)

Первые впечатления - Какое же оно быстрое 8)

avreal32.exe -aft2232=C:\!ByteBlaster\FT2232.cFg -%% +90usb1287 -o12mHz -5 -r -cJoystick.heR
Total time 2.14s

против
avreal32.exe -p0xb800 -ab -%% +90usb1287 -o12mHz -5 -r -cJoystick.heR
Total time 10.5s

ReAl
Цитата(Dx! @ Mar 31 2009, 10:34) *
Начну с вопроса - обязан ли конфигурационный файл быть именно файлом? неужели я обязан ради enable=adbus7 создавать хз что? Можно сделать возможность указывать его как фьюзы например?
Дело в том, что там по плану ещё будут светодиоды program/fail, кнопка. Всё в командную строку как-то неинтересно. Но я зарубочку поставлю.

Цитата(Dx! @ Mar 31 2009, 10:34) *
Так как это не соответствует действительности - v1.27rev1 (Jan 2 2009 12:49:24) ничего не выдает и соответственно читает 00 8)
Ой, да. Спасибо.
С выдачей всех нулей нехорошие конфликты с адаптерами, в которых есть другие входные сигналы через трансляторы уровней - выход работает на выход. Это обсуждалось в том числе где-то в данной теме. Из программы выдачу нулей убрал, а из текста забыл.

Цитата(Dx! @ Mar 31 2009, 10:34) *
avreal32.exe -aft2232=C:\!ByteBlaster\FT2232.cFg -%% +90usb1287 -o12mHz -5 -r -cJoystick.heR
Total time 2.14s
против
avreal32.exe -p0xb800 -ab -%% +90usb1287 -o12mHz -5 -r -cJoystick.heR
Total time 10.5s
Это у Вас LPT медленный smile.gif (впрочем, у меня на рабочем компе такой же).
А вот под столом одно чудо стоит - Pentium-166 c Win98-ой, так он за 5 секунд справляется с чтением 128К - это с физически той же PCI-LPT картой, с которой Q6600 @ 2.4GHz справляется за 10. Просто там на PCI никаких мостов и один цикл LPT 0,25мкс вместо 0,75
Dx!
Ну всёравно быстрее 8) И изоляция не лишне, иногда нужна - компов с выпаленным LPT у нас хватает 8)
Вот, собственно проект под PCAD2006 по мотивам и на основе схемки с сахары. По хорошему и там нужно запостить, но чтото както с тем форумом у меня не складывается.
Плата под корпус BOX-KA08
Petka
2 Real:
1) Версия avw127r1 не фурычит:
Код
Command:
avreal32 -aft2232=olimex.cfg +atmega128 -e -f_low=0x24,_high=0xD9,_ext=0xFE -w -v prog.hex
Can't open FTDI device with description "Dual RS232 A" (FT_DEVICE_NOT_FOUND)

Раньше (avw127r0) работало, правда тоже ругалось:
Код
avreal32 -aft2232=olimex.cfg +atmega128 -e -f_low=0x24,_high=0xD9,_ext=0xFE -w -v prog.hex
No FT2232 "port" switch found, first 'A' channel will be used

в чём дело?
2) avreal так и не научился искать конфиг там-же где и сам располагается?
ReAl
Цитата(Petka @ Apr 30 2009, 12:52) *
2 Real:
Код
Command:
avreal32 -aft2232=olimex.cfg +atmega128 -e -f_low=0x24,_high=0xD9,_ext=0xFE -w -v prog.hex
Can't open FTDI device with description "Dual RS232 A" (FT_DEVICE_NOT_FOUND)

Гляньте
Код
avreal32 +atmega128 -aft2232 -p?

Нужно будет что-то в духе
Код
avreal32 -aft2232=olimex.cfg -pd="Olimex OpenOCD JTAG A" +atmega128 -e -f_low=0x24,_high=0xD9,_ext=0xFE -w -v prog.hex

Я уже толком не помню, почему было решено не искать "что попало с А в хвосте", если не задано описание. Но сейчас без -pd= оно ищет описание по умолчанию со стёртой EEPROM

Цитата(Petka @ Apr 30 2009, 12:52) *
2) avreal так и не научился искать конфиг там-же где и сам располагается?
ма - ма ...
Когда же я за него возьмусь...
Petka
Цитата(ReAl @ Apr 30 2009, 15:44) *
Нужно будет что-то в духе
Код
avreal32 -aft2232=olimex.cfg -pd="Olimex OpenOCD JTAG A" +atmega128 -e -f_low=0x24,_high=0xD9,_ext=0xFE -w -v prog.hex

Спасибо, заработало.
Следующий вопрос:
если запускать БЕЗ ключика "-5", то не может спрограммировать:
Код
Command:
  -o6Mhz "-pd=Olimex OpenOCD JTAG A" -aft2232=olimex.cfg +atmega128 -e -f_low=0x24,_high=0xD9,_ext=0xFE -w -v prog.hex
Adapter enabled
Device connected, mega128 detected
Chip not locked
Device erased
Device connected, mega128 detected
Can't write to locked chip

Reset pin released
Adapter disabled


Это нормально?

Цитата
ма - ма ...
Когда же я за него возьмусь...

Ждём =)
ReAl
Цитата(Petka @ Apr 30 2009, 14:51) *
если запускать БЕЗ ключика "-5", то не может спрограммировать:
Ой, аж -5 ?
-1 не помогает ?
А напряжение питания какое?

А вообще странно, у меня шьёт вроде бы и без. Это дома надо глянуть, что там стоит для меги128.
Хотя такое ощущение, что времена стирания подкорректировать надо малость, уже было.
Petka
Цитата(ReAl @ Apr 30 2009, 16:52) *
Ой, аж -5 ?
-1 не помогает ?
А напряжение питания какое?

А вообще странно, у меня шьёт вроде бы и без. Это дома надо глянуть, что там стоит для меги128.

5вольт. Странно сейчас проверил (правда HEX уже другой). Работает и без ключика "-5".
До этого на "-3" - вылетал с ошибками верификации.
Genadi Zawidowski
Цитата(ReAl @ Apr 30 2009, 16:52) *
Ой, аж -5 ?
-1 не помогает ?
А напряжение питания какое?

А вообще странно, у меня шьёт вроде бы и без. Это дома надо глянуть, что там стоит для меги128.
Хотя такое ощущение, что времена стирания подкорректировать надо малость, уже было.


Цитата
Adapter enabled
Device connected, mega128 detected
Chip not locked
Device erased
Device connected, mega128 detected
Can't write to locked chip


Подтверждаю. Сам солкнулся с таким после перехода на послденюю версию avreal. Откат назад версии программатора помог.
stk200, atmega128l-8 под 3.3 вольта.
Dx!
Цитата(Petka @ Apr 30 2009, 13:52) *
2) avreal так и не научился искать конфиг там-же где и сам располагается?

А абсолютный путь к конфигу указать то почему нельзя? Запись немного длиннее, ну да и бог с ней.

Такой вопрос - что за частоту указывает -o ?
Просто может тогда сразу уж сделать возможным указывать частоту SPI ? Ибо по сравнению с частотой работы AVR -o всегда приходится занижать... -o6MHz для 8MHz итд..
ReAl
Цитата(Dx! @ May 1 2009, 18:41) *
А абсолютный путь к конфигу указать то почему нельзя? Запись немного длиннее, ну да и бог с ней.
Абсолютный путь плох, если надо таскать проект между компами, на которых это дело лежит в разных местах (хотя у меня давно многое унифицировано).
Впрочем, тут могут помочь переменные среды. Но это удобно для makefile/батников, а когда хочется что-то вручную попинать, то удобнее было бы что-то в духе "если путь не указан никакой, то сначала искать в текущем каталоге, потом в каталоге программы", так что тут я со страждущими солидарен.

Цитата(Dx! @ May 1 2009, 18:41) *
Такой вопрос - что за частоту указывает -o ?
Просто может тогда сразу уж сделать возможным указывать частоту SPI ? Ибо по сравнению с частотой работы AVR -o всегда приходится занижать... -o6MHz для 8MHz итд..
Странно. После того, как avreal стал замерять время обращения к LPT я занижаю только для RC-генератора, но она может быть реально ниже, чем номинальная. А с кварцами проблем нет и раньше не было - при указании времени обращения вручную (к примеру, -pE800,0.35).
Dx!
Ну, у меня то на ft2232, да и это так, запрос лишней фичи 8) Не работало кстати именно на тактовой с внутреннего. На кварцах не проверял давно - всегда ставлю немного ниже реальной, возможно зря.
ReAl
Стоп!
Каюсь, грешен, "круглые" частоты кварцев (с точки зрения равенства получающейся частоты SPI у адаптера с максимально допустимой частотой SPI) проскакивают у меня редко и не помню - пробовал ли с FT2232, для которой это актуально. Платка с 8МГц кварцем на работе, а там LPT.
Вполне может быть, что при 8МГц кварце и 2МГц частоте SPI от FT2232 будут косяки, так как всё "на грани" и достаточно малой разности частот, чтобы всё разбежалось. Сейчас подберу "круглых" кварцев, погоняю на макетке с панелькой под кварц.

_____________
Изначально было сделано указание частоты тактирования кристалла, так как у 90s1200 и у 90s8515 было разное соотношение высокого/низкого уровней и avreal по частоте тактирования процессора вычисляет именно длительности H/L на SCK, плясать от частоты тактирования было удобнее. Хотя сейчас у ft2232 скважность фиксированная
Мысль задавать в том числе частоту SPI возникала уже, только для тактирования от avreal с делителем (-o0,8) всё равно пляшет от частоты тактирования да и старый ключ для совместимости оставить надо.
Сейчас avreal игнорирует регистр ключей, может сделать -o - частота тактирования, -O - частота SPI ?
Petka
Цитата(ReAl @ May 2 2009, 12:28) *
Сейчас avreal игнорирует регистр ключей, может сделать -o - частота тактирования, -O - частота SPI ?

может логичнее "-spi" ?
ReAl
Цитата(Petka @ May 2 2009, 11:49) *
может логичнее "-spi" ?
Тогда уже --spifreq или что-то в таком духе, если переходить к длинным ключам.
Может и стоит перейти, так как ключи не совсем хороши сейчас, тот же -v обычно используется для задания уровня болтливости программы.





Цитата(Genadi Zawidowski @ Apr 30 2009, 17:16) *
Подтверждаю. Сам солкнулся с таким после перехода на послденюю версию avreal. Откат назад версии программатора помог.
stk200, atmega128l-8 под 3.3 вольта.
Каюсь, грешен, что-то там действительно не так. Причём с мегой168 (а у меня в ходу сейчас она да 48-ая) всё нормально, откопал плату со 128-ой, повторил результат.
Причём даже при 5 вольтах надо -2 а то и -3.
Только для стирания, если стереть с -3 отдельным вызовом, то потом шьётся без этих ключей вообще.
Более того, если стереть с -3, то потом лок-биты стёрты и проверка на чистоту работает. Если после этого опять дать -e без замедления, то лок-биты оказываются прошиты. Возможно, там что-то на тему защиты от разлочки укороченным стиранием.
Раньше времена в табличках были с запасом, после перехода к замеру всех времён через таймеры ОС я их приблизил к документации.
С мега48, мега168, тини13 всё нормально, так что больше похоже на опечатку в табличках.
Сейчас буду сравнивать версии между собой и с описаниями.
ReAl
Тьху, заболтался и забыл

Цитата(ReAl @ May 2 2009, 11:28) *
Вполне может быть, что при 8МГц кварце и 2МГц частоте SPI от FT2232 будут косяки, так как всё "на грани" и достаточно малой разности частот, чтобы всё разбежалось. Сейчас подберу "круглых" кварцев, погоняю на макетке с панелькой под кварц.
Да, при совпадении частот плохо.
4, 6, 8, 12 МГц кварца дают 1,5, 2, 4, 3 МГц SPI, которые отрабатываются в FT2232 как запрошено и обмен срывается. Чип детектится, фьюзы читаются, а на чтении или записи - срыв.
На одном из горсти разных кварцев 4МГц один раз почти до конца зашилось :-)
Или в -o надо давать 10% запас частоты, или, что более правильно, добавить ключ частоты SPI и переложить ответственность за выбор частоты на пользователя :-)


Цитата(ReAl @ May 2 2009, 13:12) *
Каюсь, грешен, что-то там действительно не так. Причём с мегой168 (а у меня в ходу сейчас она да 48-ая) всё нормально, откопал плату со 128-ой, повторил результат.
Причём даже при 5 вольтах надо -2 а то и -3.
Только для стирания, если стереть с -3 отдельным вызовом, то потом шьётся без этих ключей вообще.
КГМ...
Документация на atmega128 (и так забито в avreal):
Код
tWD_FUSE      4.5 ms
tWD_FLASH     5 ms
tWD_EEPROM   10 ms
tWD_ERASE    10 ms

ATmega128.xml от AVRstudio
Прошивка флеша - 10мс.
Прошивка EEPROM - 20мс
Страние - 20мс

"повбивав би"
Petka
Цитата(ReAl @ May 2 2009, 16:02) *
Тьху, заболтался и забыл

Да, при совпадении частот плохо.
4, 6, 8, 12 МГц кварца дают 1,5, 2, 4, 3 МГц SPI, которые отрабатываются в FT2232 как запрошено и обмен срывается. Чип детектится, фьюзы читаются, а на чтении или записи - срыв.
На одном из горсти разных кварцев 4МГц один раз почти до конца зашилось :-)
Или в -o надо давать 10% запас частоты, или, что более правильно, добавить ключ частоты SPI и переложить ответственность за выбор частоты на пользователя :-)

Пользователю (мне) удобнее частоту камня указывать (так проще makefile делать). Думаю, будет простительно потерять 10% производительности.
Dx!
А что мешает и сделать новый ключик и дать запас? Так и "по старому" будет работать и у любителей выжать 100% будет такая возможность 8) Можно сделать ключик, отключающий запас... но это уже имхо перебор.
ReAl
Цитата(Dx! @ May 2 2009, 16:25) *
А что мешает и сделать новый ключик и дать запас? Так и "по старому" будет работать и у любителей выжать 100% будет такая возможность 8)
Да, конечно, так лучше.
________________

Что вообще весело, так это то, что в xml-ках от AVRstudio в секциях STK500v2 и STK600 даны разные времена стирания/пргошивания для многих кристаллов. Но при этом везде времена записи больше от "ну немного" до "раза в два", а вот времена стирания - от "раза в два" до "на порядок".

Второй обнаруженный косяк - в свежих версиях не только скорость LPT замеряется, но и времена отсекаются уже не по нему (в случае использования ft2232 вообще не подгружается dlportio.dll и драйвер на машине может не стоять), а системными вызовами, заодно не занимает процессор зря.
Как-то я уже привык, что Windows по Sleep() даёт время от заказанного времени, округлённого вверх к своим квантам до в несколько раз большего, что тут не страшно (Sleep(0) всегда особняком стояло, речь не о нём).
Оказалось, что меньше тоже умеет. Буду проверять по таймеру и дотягивать.
Genadi Zawidowski
Цитата(ReAl @ May 2 2009, 14:12) *
Более того, если стереть с -3, то потом лок-биты стёрты и проверка на чистоту работает. Если после этого опять дать -e без замедления, то лок-биты оказываются прошиты. Возможно, там что-то на тему защиты от разлочки укороченным стиранием.


Новая версия говорит что чип залочен... после этого запускаю старую - в батнике (.cmd) всегда стоит стирание и запись... батник одинаковый.
ReAl
Тырнету несколько дней не было. Ломка началась.

Цитата(ReAl @ May 2 2009, 20:17) *
Что вообще весело, так это то, что в xml-ках от AVRstudio в секциях STK500v2 и STK600 даны разные времена стирания/пргошивания для многих кристаллов. Но при этом везде времена записи больше от "ну немного" до "раза в два", а вот времена стирания - от "раза в два" до "на порядок".
Похоже, это они крепко перестраховались.

Цитата(ReAl @ May 2 2009, 20:17) *
Как-то я уже привык, что Windows по Sleep() даёт время от заказанного времени, округлённого вверх к своим квантам до в несколько раз большего, что тут не страшно (Sleep(0) всегда особняком стояло, речь не о нём).
Оказалось, что меньше тоже умеет. Буду проверять по таймеру и дотягивать.
Все причины в этом были. Причём если стереть, то дальше шьётся уже нормально и в таком варианте.
Линуксовая 1.27r1 нормально работала, поправил и виндовую в этом месте.
По осциллографу Sleep(10) довольно упорно выполнялся 4-5мс, чего не хватало при 9мс паспортном стирании, где-то 6-7 оказалось достаточно.
Пока тут цепляю, ещё может что по мелочам причешу да поставлю наконец-то и дома полный набор ОС, чтобы собирать все варианты, тогда выложу на сайте.

Цитата(Petka @ Apr 30 2009, 14:51) *
Спасибо, заработало.
Так может восстановить в правах поиск первого FT2232 с именем канала, заканчивающемся на "A" для случая отсутствия ключа "-p" ?
Вспомнил, почему было убрано, точнее, заменено на нынешнее поведение - для такого поиска делается запрос списка устройств у FTD2XX.DLL/libftd2xx.so и в списке ищется нужное описание (теперь при указанном описании открывается по описанию и список не строится) и открывется по индексу в списке.
А под линуксом это построение списка в libftd2xx приводило к тому, что отрубались висящие рядом USB<->RS232 мосты на FT232 (знаю, знаю, надо переходить на libftdi).
Теперь такое построение заказывается только по ключу "-p?" , при отсутствии ключа "-p" тоже производится открытие по описанию, просто берётся описание по умолчанию (о чём и собщается).
Petka
Цитата(ReAl @ May 7 2009, 12:09) *
...

проверил новую версию, работает и без ключа "-5".
при "-o8Mhz" на ft2232 - теряет синхронизацию.
конфиг так и не ищет там-же где и *.exe
ReAl
Цитата(Petka @ May 7 2009, 11:32) *
при "-o8Mhz" на ft2232 - теряет синхронизацию.
Снижения частоты SPI по сравнению с F_CPU/4, которое обсуждалось выше по ветке, пока не делал, нашёл время только явный глюк исправить.
Ну, просто умножить запрошенную частоту на 0.95 не проблема, хотелось просто сразу "в комплексе", раз уж лезть.
Сделаю вместе с прямым заданием частоты SPI, похоже, пока развалю на -o (как было) -O (частота SPI).
Вот только если у кого в батнике завалялось -O, то оно же шить перестанет...
Тьху.
Иногда придумать логичный ключ тяжелее, чем функцию реализовать.

Цитата(Petka @ May 7 2009, 11:32) *
конфиг так и не ищет там-же где и *.exe
Этого пока и не обещал.
Dx!
А непосредственное задание, как фьюзы? На пока ведь только одна ножка нужна.... 8)
alexander iz
Про линуксовую версию хотел спросить..
Суть вот в чём: в debian lenny используется libftdi, avreal просит libftd2xx. Постедней в системе не было, установил собственноручно. Теперь библиотка находится.
по avreal +mega8 -aft2232 -p? находится девайс и его два канала. При этом отваливаются все ftdi мосты, приходится перетыкать.
при avreal +mega8 -aft2232 "-pv=0403,p=6010,d=AVREAL01A" говорит следующее:
Can't open FTDI device with description "AVREAL01A" (FT_DEVICE_NOT_FOUND)
пробовал писать как AVREAL01A так и AVREAL01 A, пробовал не указывать pid и vid - результата никакого.
AVREAL01 - такой серийник прописан в eeprom (у меня их несколько под разными номерами).
Под виндой работает без проблем уже несколько месяцев.
Поиск практически ничего не сказал (
Хелпми? smile.gif

и на всякий случай
$ dmesg|tail
[ 117.698015] ftdi_sio: Detected FT2232C
[ 117.698015] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 117.719914] ftdi_sio 1-1:1.1: FTDI USB Serial Device converter detected
[ 117.719914] ftdi_sio: Detected FT2232C
[ 117.719914] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB1
[ 117.723918] usb 1-1: New USB device found, idVendor=0403, idProduct=6010
[ 117.723918] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 117.723918] usb 1-1: Product: USB <-> Serial Cable
[ 117.723918] usb 1-1: Manufacturer: FTDI
[ 117.723918] usb 1-1: SerialNumber: AVREAL01
ReAl
Цитата(alexander iz @ Jun 26 2009, 10:25) *
по avreal +mega8 -aft2232 -p? находится девайс и его два канала. При этом отваливаются все ftdi мосты, приходится перетыкать.
Есть такая дрянь, почему-то ftd2xx при вызове построения списка устройств их отрубает. Что-то неудачно "спортили" в этой библиотеке под линукс.

Цитата(alexander iz @ Jun 26 2009, 10:25) *
при avreal +mega8 -aft2232 "-pv=0403,p=6010,d=AVREAL01A" говорит следующее:
Can't open FTDI device with description "AVREAL01A" (FT_DEVICE_NOT_FOUND)
пробовал писать как AVREAL01A так и AVREAL01 A, пробовал не указывать pid и vid - результата никакого.
AVREAL01 - такой серийник прописан в eeprom (у меня их несколько под разными номерами).
А что говорится по ключу
-p?
нужно указать как там было.

Стандартные vid/pid можно не указывать (не нужно указывать?), это для всяких перешитых типа Olimex сделано.
Смогу вернуться к этому делу через полторы недели.
alexander iz
Цитата(ReAl @ Jun 26 2009, 14:11) *
А что говорится по ключу
-p?
нужно указать как там было.

дословно так:

avreal +mega8 -aft2232 -p?

avreal/LINUX - AVR controllers LPT programmer by Redchuk Alexandr
v1.27rev1 (Jan 3 2009 19:04:27) http://www.ln.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
+mega8 -aft2232 -p?
2 FTDI devices detected
0: FT_DEVICE_2232C (USB <-> Serial Cable A), serno 'AVREAL02 A'
1: FT_DEVICE_2232C (USB <-> Serial Cable cool.gif, serno 'AVREAL02 B'


Я так понимаю, что оно с пробелом. В виндах оно слитно. Пробовал копипастить, пробовал вписывать AVREAL02 A в любых вариация с кавычками и без них, с пробелами и без - результат всегда такой (за исключением надписи в кавычках):
Can't open FTDI device with description "AVREAL02 A" (FT_DEVICE_NOT_FOUND)

Цитата(ReAl @ Jun 26 2009, 14:11) *
Смогу вернуться к этому делу через полторы недели.

очень надеюсь smile.gif а то катастрофически не хочется юзать ещё один комп специально под программатор в винде.

Пока попробую stk200.

ЗЫ где-то я что-то упустил?
Andreas1
Цитата(ReAl @ Jun 26 2009, 14:11) *
Смогу вернуться к этому делу через полторы недели.

Когда-то на сахаре были разговоры о возможной поддержке FT232. Есть шанс, что вернетесь к этой идее?
ReAl
Цитата(alexander iz @ Jun 26 2009, 13:46) *
0: FT_DEVICE_2232C (USB <-> Serial Cable A), serno 'AVREAL02 A'
Я так понимаю, что оно с пробелом. В виндах оно слитно. Пробовал копипастить, пробовал вписывать AVREAL02 A в любых вариация с кавычками и без них, с пробелами и без - результат всегда такой (за исключением надписи в кавычках):
Can't open FTDI device with description "AVREAL02 A" (FT_DEVICE_NOT_FOUND)
Странно. Я пробовал прописывать серийник, разницу между win и lin в +- пробел заметил. Но вроде бы всё работало. Посмотрю ещё.

Цитата(Andreas1 @ Jun 26 2009, 14:15) *
Когда-то на сахаре были разговоры о возможной поддержке FT232. Есть шанс, что вернетесь к этой идее?
FT232R
Есть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.