Перейти к содержанию
    

Программатор Dimoniprog (USB, STK500v2 совместимый, c изоляцией, ПУ, питанием target)

SPI вообще-то синхронный интерфейс - ему пофиг какая частота, до определнных значений, конечно. Гораздо важнее, и про что я говорю - задержки после команд типа стирания, запист страницы и т.д. И вот в этих случаях, особенно, если запаса никакого не предусмотрели, времянку нарушать не хотелось бы, чтобы не получить недозашитый чип.

Да ему то пофиг. Я говорил о том, чтобы было соответствие частоты, которую показывает Студия частоте, которая есть на самом деле.

Хотя если готовность определяется опросом, то сие тоже не существенно.

Готовность определяется так, как запросила Студия. В соответствии с протоколом есть три способа ожидания.

------------------------------------------------------------------------------------------------------------------

Сори, что сразу не ответил:

 

А у Вас есть уверенность, что точно прошьет?... Что Atmel не добавит какой-нить костыль на Host'e, не изменит сам STK протокол на v.3, и т.д.?

Этот вопрос касается ВСЕХ программаторов, ранее обсуждавшихся.

А у вас есть уверенность, что фирменный AVRISP точно прошьёт? А вот у меня нет. Если не прошьёт, вы будете ждать от "фирмы" решения проблемы неизвестно сколько. А я не буду, - сам быстро решу проблему.

Что касается моего варианта, то я уже говорил, что я не проверял работу с кристаллами, у которых памяти больше 64КБ. Так что с ними уверенности нет, тем более что по этому поводу протокол STK500 неоднозначен. Так же нет уверенности с работой универсальных команд протокола, т.к. Студия их не применяет и когда применяет (и для чего)неизвестно. Только страшного я тут ничего не вижу, - будут траблы, преодолеем.

Что касаемо Атмела с его протоколом. Он опубликован для сторонних производителей. Так что фактически Атмел обязал сам себя его "держать" незыблемым. Если же их потянет что-то менять, то они так же вынуждены будут это сразу опубликовать (иначе эти производители с них спросят шозанах). Поэтому коли будут изменения, то и будут исправления.

Но я почему-то думаю, что ничего не поменяется - нет смысла. Да и судя по поведению Атмела (имхо дурью маятся), они скорее сделают какой-нибудь новый интерфейс, как в ХМЕГА сделали.

Знаете, что мне очень не понравилось и прямо сказать задело в ваших первых 15-ти постах -

то что вы напрочь отметаете все что было до вас - как "дерьмое", хреново сделанное и т.п., причем даже как следует не покурив, как стандартное так и нестандартное.

Во-первых, не надо преувеличивать. Я говорил лишь, что мне не понравилось и не подходит (и почему тоже говорил!).

Во-вторых, у меня есть такое право - делать то, что я хочу. Равно как не повторять то, что кто-то делал до меня. Захотел сделать своё - сделал.

Какие претензии у вас к ОРИГИНАЛЬНОМУ AVRISP? (кроме цены, т.к. я уже показал что цена его == цене m8535).

Никаких! Пусть живёт :) Но не у меня. Мне он не нужен (даже даром).

Да конечно, если работать только с Pony-Prog, то появляется необходимость сделать что-то лучше.

Pony-Prog лет 15 назад по сути был единственным вариантом для "нищих". Правда я им так и не воспользовался. В своём варианте я "вставил" такую возможность только для целей первичного программирования.

Но это не значит, что надо варганить свое с нуля...

Вот я и хочу предостеречь от такого подхода.

Не надо навязывать свои критерии и считать всех остальных за дураков. Каждый сам решает для себя как ему поступить: делать с нуля, повторить чьё-то или купить готовое.

Зачем вообще что-то коробить.

Вы не будете, но другие возможно будут.

Доработка стандатного программатора HW фичами - это одно - от этого есть польза. Написание своего софта, к стандартному программатору - тоже прекрасно.

Ну это же не ваше дело, кто и что будет. Другие сами решат что им делать (если не смогут - спросят у вас :) ).

Изобретение своего программатора тоже прекрасно. И что прекраснее другого каждый сам решает для себя.

Изобретение велосипеда, без дальнейшей поддержки и развития - это совсем другое.

Почему без поддержки и развития? Всё открыто, какие проблемы? Каждый может "поддержать и развить". Да и я не отказывался.

как разработчику вам зачет.

как маркетологу - незачет (практическая ценность разработки невысока).

Ну спасибо, последний раз зачёты получал лет 25 назад :) И вот опять...

Маркетинг - это совсем из другой области (и форум другой). Я бизнес на своём программаторе делать не собирался (потому и выложил). Просто я сделал годный мне программатор и выложил информацию для тех (только), кому это нужно. И ВСЁ. Так что на зачёт не сдавал.

 

Если Вы знаете ошибки в проекте "AvrUsb500 by Petka". Прошу о них сообщить. Разумеется в соответствующем топике.

Сожалею, но я "пометок" не делал. Я сейчас даже не помню у какого именно варианта я замечал ошибки. Мне тогда нужно снова всё "перелопачивать", но на это нужно время. Будет время, посмотрю ещё раз.

 

так программатор и есть конвертер, обычный СОМ порт , работает и со старыми программами программирования, и с новыми, в Win/Lin/Mac (а как с этим обстоят дела с софтовыми типа протосса ?). Задействуется и в других целях - напр. для вывода отладочной информации. Зачем там еще угребищный DB9 ?

не согласен, иногда бывает трудно найти поблизости доп.розетку, плюс можно перепрограммировать вообще при отсутствии электричества с заряженным ноутом.

зачем насиловать выводы контроллера ? через защ.диоды он будет запитывать всю программируемую систему.

просмотрите ветку http://electronix.ru/forum/index.php?showtopic=18676 - там куча вопросов и воплей из-за проблем с различным питанием программатора и программируемого, плюс проблемы с надежностью самого софтового USB. и это ради экономии 4$ и отсутствии последовательного канала ?

Полностью разделяю.

кстати, тот же FT232R может работать в режиме Async bit bang, частота обновления выводов определяется как 16 х baud rate (вряд ли для программирования нужна частота больше нескольких мегагерцев), плюс VCCIO поддерживает напряжения 1.8..5.5В. Учитывая что задействовать одновременно последовательный и параллельный ввод-вывод не нужно, то получается что FT2232 - излишество, тем более в 3 раза более дорогое.

заказал FT232R, попробую собрать на нем Serial+ISP, возможно и с опторазвязкой (как раз нужен будет программатор AT45DBxx/AT25xx). хех, решается вопрос переноса софта на хост.

Вот как раз сейчас и занимаюсь реализацией идеи программатора на одной FT232R (если отбросить изоляцию и питание). Причём не только программатора, но и, возможно, JTAG. Пока буду по возможности реализовывать такую идею: сделаю драйвер + программу, которая будет создавать виртуальный СОМ-порт с одной стороны (его задавать в Студии как порт программатора AVRISP), а с другой - работать через FT232R в режиме bit-bang. Таким же макаром можно будет потом и JTAG соорудить. Скорее всего софт сделаю на "каникулах", не раньше (времени мало).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сожалею, но я "пометок" не делал. Я сейчас даже не помню у какого именно варианта я замечал ошибки. Мне тогда нужно снова всё "перелопачивать", но на это нужно время. Будет время, посмотрю ещё раз.

не помните у какого а "поливаете" всех? Всё ещё жду описание обнаруженных ошибок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не помните у какого а "поливаете" всех?

Я, как вы говорите, "поливал" всех не за ошибки, а за ПЛОХОЧИТАЕМЫЙ КОД, изобилующий лишними строчками (правда я не очень понимаю обиды на это, поскольку этот код в основной объёме ЧУЖОЙ, иными словами просто взят и откорректирован). Ошибки я обнаруживал кое-где. Причём это были ошибки (насколько я помню), которые могли "всплыть" лишь в определённых случаях (на одной из "веток" алгоритма), а может на практике и вообще никогда. Но если есть написанный код, то...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Что касается моего варианта, то я уже говорил, что я не проверял работу с кристаллами, у которых памяти больше 64КБ. Так что с ними уверенности нет, тем более что по этому поводу протокол STK500 неоднозначен. Так же нет уверенности с работой универсальных команд протокола, т.к. Студия их не применяет и когда применяет (и для чего)неизвестно. Только страшного я тут ничего не вижу, - будут траблы, преодолеем.

 

 

Собрал программатор по упрощенной версии без гальванической развязки выбросил кварц и тактирую

процессор ат FT232R частотой 12 МГц пришлось перекомпилить проект в части скорости UART и скорости

SPI (аппаратная скорость 6,3,1.5,0.75 Мгц) да еще процессор ATmega8 /

Все работает отлично прошивал ATmega128 на скорости SPI 6Мгц

(avrdude -p m128 -c avrispv2 -Pcom3 -U flash:w:test.hex ) время прошивки и вепификации 22 с.

для сравнения STK200 и avreal 15 c при скорости SPI 2Мгц .

Вывод : програматор вполне пристойный и гараздо быстрее всех здесь упоминавшихся

Особо хотелось поблагодарить автора за хорошо документированый код и инструкции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё ещё жду описание обнаруженных ошибок.

Не будет: я сейчас по-быстрому посмотрел проекты, которые я рассматривал. Освежил так сказать память. Так вот ваш код (тьфу, Tuxgraphics), я сразу отложил в сторону, - мне он не понравился (т.е. не понравилась сама реализация). Так что ошибок я там не обнаруживал, т.к. в код не вдавался.

Что касается именно ошибок (или даже 1-й ошибки, не помню), что я находил, то это скорее всего было в проекте от Doper, поскольку я детально рассматривал именно его, когда сравнивал протокол STK500 и его реализацию в Doper. Я даже скачивал WinAVR для компилляции (хотя им никогда не пользовался) этого проекта и пытался его зашивать в железо Prottoss-а (МастерКит). Но когда это не заработало, я плюнул, и после этого как раз принял решение делать всё своё.

 

Собрал программатор по упрощенной версии без гальванической развязки выбросил кварц и тактирую

процессор ат FT232R частотой 12 МГц

Имеется в виду 12 МГц с выхода FT232R?

Да, тоже вариант. У меня такая мысля была, но я решил всё же поставить кварц со стандартной частотой. Да и M88V при 1.8В питании официально не работает на частоте более 4 МГц, а на 12 и вообще, только M88.

Да, ещё вопрос: объём прошиваемого кода был больше 64КБ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имеется в виду 12 МГц с выхода FT232R?

Да, тоже вариант. У меня такая мысля была, но я решил всё же поставить кварц со стандартной частотой. Да и M88V при 1.8В питании официально не работает на частоте более 4 МГц, а на 12 и вообще, только M88.

Да, ещё вопрос: объём прошиваемого кода был больше 64КБ?

 

Да 12 МГц с выхода FT232R (CBUS2) К сожелению размер кода

59549 bytes of CODE memory

33981 bytes of DATA memory

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

59549 bytes of CODE memory

Эх, маловато. А может вставите какой-нибудь "пустой" массив во флеш для переваливания за 64КБ?

Но я не настаиваю, так если время есть и желание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кстати, тот же FT232R может работать в режиме Async bit bang, частота обновления выводов определяется как 16 х baud rate (вряд ли для программирования нужна частота больше нескольких мегагерцев), плюс VCCIO поддерживает напряжения 1.8..5.5В. Учитывая что задействовать одновременно последовательный и параллельный ввод-вывод не нужно, то получается что FT2232 - излишество, тем более в 3 раза более дорогое.
async bitbang был и у FT232BM, но счастья в нём мало. У FT232R есть sync bitbang. Поковырялся немного, вот "послеотпускное" на работе/дома разгребу окончательно и допишу поддержку.

 

Излишество ли FT2232, равно как и причины/поводы для всех поломанных в этой теме копий - каждый решает сам.

 

1) FT2232/MPSSE даёт гораздо большую скорость, чем может дать {FT2232|FT232R}/SYNC_BITBANG, этот последний реально недотягивает даже до LPT.

Причина проста - при MPSSE посылается один байт и выдвигается побитово, при SYNC_BITBANG надо послать на один байт эмулируемого SPI аж 16 байт заготовленных масок. И упирается всё уже не в 16*baud_rate, а в пропускную способность 12Mbit/s USB как таковой. Итого первоначальная оценка (тестовая программа с замером времён + осциллограф) дают скорость зашивки AVR через FT232R раза в два-три медленнее, чем LPT. Оценка скорее пессимистическая, т.е. может и выйдет в полтора-два раза, а не в два-три, но пусть лучше радость будет, чем разочарование :-)

А FT2232, напоминаю, заливает 128кил флеша за пять секунд, читает за две (при ключе -o12000 == при 3МГц SPI). Для кого-то это может оказаться важнее цены, про которую через несколько месяцев уже и забудешь.

 

2) для FT2232 есть поддержка для ARM и Blackfin (точнее, для блекфиновского адаптера надо узнать расположение вывода, разрешающего выходные формироатели + его description - и он будет поддержан в avreal написанием нужного config-файла и указанием нужных ключей, как это уже проверено с Olimex-овским ARM OCD)

 

Так что, на мой взгляд, FT232R расширяет спектр возможных адаптеров, но не вытесняет FT2232.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так что, на мой взгляд, FT232R расширяет спектр возможных адаптеров, но не вытесняет FT2232.

Да я думаю, что оба варианта могут нормально жить. Скорость ведь тоже не всем нужна. Кому-то будет проще и дешевле самому собрать на FT232, для неё же обвязки почти никакой + дешевле + паять попроще. FT2232 конечно помощнее, тем более ожидаемая FT2232H. В общем каждому своё.

 

А всё-таки как на счёт STK500 в AvReAl? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эх, маловато. А может вставите какой-нибудь "пустой" массив во флеш для переваливания за 64КБ?

Но я не настаиваю, так если время есть и желание.

 

Провел тестирование для ATmega 128 с размером кода 78088 kb прошил нормально все работает

ниже результат:

для avrdude

____________

 

D:\WORK\Me\Програматор_AVR\test_prg\avrdude>avrdude -p m128 -c avrispv2 -Pcom3

-U flash:w:test.hex

 

avrdude: AVR device initialized and ready to accept instructions

 

Reading | ################################################## | 100% 0.06s

 

avrdude: Device signature = 0x1e9702

avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed

 

To disable this feature, specify the -D option.

avrdude: erasing chip

avrdude: reading input file "test.hex"

avrdude: input file test.hex auto detected as Intel Hex

avrdude: writing flash (78088 bytes):

 

Writing | ################################################## | 100% 14.69s

 

avrdude: 78088 bytes of flash written

avrdude: verifying flash memory against test.hex:

avrdude: load data flash data from input file test.hex:

avrdude: input file test.hex auto detected as Intel Hex

avrdude: input file test.hex contains 78088 bytes

avrdude: reading on-chip flash data:

 

Reading | ################################################## | 100% 15.06s

 

avrdude: verifying ...

avrdude: 78088 bytes of flash verified

 

avrdude: safemode: Fuses OK

 

avrdude done. Thank you.

 

для STK500

_____________________

D:\WORK\Me\Програматор_AVR\test_prg\STK500>stk500.exe -ccom3 -ms -J -I921600 -

J -dATmega128 -s -e -iftest.hex -pf -iftest.hex -vf

STK500 command line programmer, v 2.2 Atmel Corp © 2004-2005.

 

Connected to STK500 V2 on port com3

Setting ISP frequency to 921.6 kHz (0x00)

Getting ISP frequency: 921.6 kHz (0x00)

Device parameters loaded

Programming mode entered

Device erased

Signature is 0x1E 0x97 0x02

FLASH input file read

Programming FLASH... FLASH programmed

Reading FLASH... FLASH read

FLASH verified successfully

Programming mode left

Connection to STK500 V2 closed

время програмирования 20 с. время верификации 16 с.

 

 

Для сравнения время програмирования и верификации avreal v1.26.3 18 c.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так что, на мой взгляд, FT232R расширяет спектр возможных адаптеров, но не вытесняет FT2232.

 

 

Хочется добавить есть такой програматор http://hubbard.engr.scu.edu/embedded/avr/ftisp/

на самом деле это FT232R и все выводы програмирования :

 

SCK -DTR

RES -RI

MISO -DSR

MOSI -DCD

 

Позволяет програмировать все семейство ATmega

 

Вот результат програмирования ATmega 128

 

 

D:\WORK\Me\Програматор_AVR\test_prg\Ft>ftisp -B 4000000 -Fr -E -fw testb.bin

 

Welcome to FT-ISP: FTDI ISP Programming Tool V2

Build: Oct 20 2008 -- ©2006-2008 Pascal Stang

---------------------------------------------------------

ftisp: Detected 1 FTDI device(s) connected

ftisp: Opening FTDI device.

ftisp: Enter Programming Mode.

ftisp: Read Signature Bytes => 1E 97 02

ftisp: Identified part as ATmega128.

ftisp: Setting ISP bitrate to 4000000.

ftisp: Reading fuse bits => 0xFFCFBF

ftisp: Erasing chip...Done.

ftisp: Reading File 'testb.bin'...78088 bytes

ftisp: Writing program memory (FLASH=128K, Page=256b)...

 

Writing | ################################################## | 100% 25.98s

 

ftisp: Leaving programming mode.

ftisp: Closing FTDI device.

---------------------------------------------------------

 

D:\WORK\Me\Програматор_AVR\test_prg\Ft>pause

Для продолжения нажмите любую клавишу . . .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Провел тестирование для ATmega 128 с размером кода 78088 kb прошил нормально все работает

Спасибо за проделанную проверку. Она порадовала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А всё-таки как на счёт STK500 в AvReAl? :)
Ну как сказать... По мере возникновения у меня интереса к stk500 ;)

Тут уже звучали такие слова - "я сделал для себя то, что нужно мне". Именно так был сделан 10+ лет назад avreal. А сейчас я в него добавил то, что было проще опять таки мне. Потихоньку структуру программы правлю, что повышает шансы попасть в неё поддержке stk500, но всё же это не первоочередные пункты.

 

 

 

Для сравнения время програмирования и верификации avreal v1.26.3 18 c.
78килобайт?

Это время программирования плюс верификации или время и программирования и верификации по отдельности, а суммарное 36 секунд?

Если второе, то или мега тактируется от одного мегагерца или надо было дать ключик -o с правильной частотой.

1.1-микросекундный LPT даёт возможность залить+прочесть все 128 килобайт меги128 за 12+12 секунд,

0,75-микросекундный - за 10+8 секунд, 0,24-микросекундный (да, такие чудеса встречаются) - за 6,5+5 секунд. Это всё как раз для 1.26r3/1.27r0

 

 

Хочется добавить есть такой програматор http://hubbard.engr.scu.edu/embedded/avr/ftisp/

...

Позволяет програмировать все семейство ATmega

Ну да. FT232R не вчера родилась, давно должно было что-то такое появиться.

Я просто года три (если не четыре) в спячке был. Мне и сейчас не печёт USB, но какое-никакое свободное время появилось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

78килобайт?

Это время программирования плюс верификации или время и программирования и верификации по отдельности, а суммарное 36 секунд?

Если второе, то или мега тактируется от одного мегагерца или надо было дать ключик -o с правильной частотой.

1.1-микросекундный LPT даёт возможность залить+прочесть все 128 килобайт меги128 за 12+12 секунд,

0,75-микросекундный - за 10+8 секунд, 0,24-микросекундный (да, такие чудеса встречаются) - за 6,5+5 секунд. Это всё как раз для 1.26r3/1.27r0

 

 

Тестировалось програмирование ATmega128 тактовая частота 14Мгц размер кода (78088 bytes)

 

Результат вот

 

D:\WORK\Me\Програматор_AVR\test_prg\avreal>avreal32 +mega128 - -o3000 -p1 -2 -E

-e -w -v -f_low=BF,_high=CF,_ext=FF -l2 -ctest.hex

 

avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr

v1.26rev3 (Oct 31 2008 14:01:29) http://www.ln.ua/~real/avreal

bug-reports, suggestions and so on mail to [email protected]

Command: +mega128 - -o3000 -p1 -2 -E -e -w -v -f_low=BF,_high=CF,_ext=FF -l2 -ct

est.hex

Device connected, mega128 detected

Chip locked - reading and programming disabled

Device erased

Device connected, mega128 detected

Fuses

OSCCALs = AA AB A1 A0

BODLEVEL = 1

BODEN = 0

SUT = 3

CKSEL = F

BLB1 = 3

BLB0 = 3

OCDEN = 1

JTAGEN = 1

CKOPT = 0

EESAVE = 1

BOOTSZ = 3

BOOTRST = 1

M103C = 1

WDTON = 1

Programming CODE memory

................................................................................

........................................................................ done (1

0.1s)

Verifying CODE memory

................................................................................

........................................................................ passed

done (7.8s)

Programming fuses

New fuses value

OSCCALs = AA AB A1 A0

BODLEVEL = 1

BODEN = 0

SUT = 3

CKSEL = F

BLB1 = 3

BLB0 = 3

OCDEN = 1

JTAGEN = 1

CKOPT = 0

EESAVE = 1

BOOTSZ = 3

BOOTRST = 1

M103C = 1

WDTON = 1

Verifying fuses

passed

Device locked to level 2!

Total time 18.7s

Reset pin released

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я сегодня почти закончил пайку (не хватает нескольких номиналов резисторов). Прошилось и запустилось с полпинка!

В итоге без возни с ПП появился программатор.

Спасибо!

З.Ы. Было бы удобно в разьеме ХР3 поменять местами MOSI и MISO. Тогда на стандартном ISP красный проводок попадет в "1" контакт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...