Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как правильно выставит фьюзы в Ponyprog?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Roma12
Есть такая проблема, не могу разобратся как правильно выставить галочки в PonyProg. По некоторым источникам говорится что галочка - значит "задействован", в других наоборот - галочка - значит "отключен". Совсем запутался ))
izerg
Два способа победить проблему:
1 - выбросить коня, и взять что-либо нормальное. AVREAL, например.
2 - прочитать внимательно, что такое "галочки", и на что оно влияет.

Roma12
Цитата(izerg @ Aug 25 2012, 14:41) *
Два способа победить проблему:
1 - выбросить коня, и взять что-либо нормальное. AVREAL, например.

А чем конь плох вобще?

Цитата(izerg @ Aug 25 2012, 14:41) *
Два способа победить проблему:

2 - прочитать внимательно, что такое "галочки", и на что оно влияет.

а как вы считаете? я уже задолбался искать если чесно, но мне пока важно использовать именно Pony Prog, современем я соберу лучше программатор и перейду на что то более надежное
Палыч
Цитата(Roma12 @ Aug 25 2012, 14:21) *
По некоторым источникам говорится что галочка - значит "задействован", в других наоборот - галочка - значит "отключен".

В Пони галочка означает "Запрограммирован", т.е. значение соответствующего fuse равно нулю.
kovigor
Цитата(Roma12 @ Aug 25 2012, 14:07) *
А чем конь плох вобще?

Ничем. Отличный программатор. Гораздо проще в использовании, чем AvReal. Дело не в программаторе, а в том, что перед выставлением "галочек" вы обязаны проштудировать соотв. разделы документации, с тем, чтобы выставить "галочки" не как попадет, а как нужно именно вам. И программатор здесь решительно ни при чем. Кстати, Пони сам же и показывает, что по умолчанию "checked" = "programmed" (bit = 0) ...
Roma12
Цитата(Палыч @ Aug 25 2012, 15:47) *
В Пони галочка означает "Запрограммирован", т.е. значение соответствующего fuse равно нулю.


Например здесь вот http://www.getchip.net/wp-content/uploads/...313-FuseBit.png
наоборот сделано да? судя по красной надписи снизу

Цитата(kovigor @ Aug 25 2012, 17:02) *
Ничем. Отличный программатор. Гораздо проще в использовании, чем AvReal. Дело не в программаторе, а в том, что перед выставлением "галочек" вы обязаны проштудировать соотв. разделы документации, с тем, чтобы выставить "галочки" не как попадет, а как нужно именно вам. И программатор здесь решительно ни при чем. Кстати, Пони сам же и показывает, что по умолчанию "checked" = "programmed" (bit = 0) ...

ну это понятно. просто в сети блуждают слухи про ненадежность ПОНИ. Я вобще при прошивке не изучаю так подробно фюьзы на контролер, а просто заливаю прошивку в МК как указал создатель данного устройства. Иногда не понятно как выставить фьюзы если программатор совсем не тот
Xenia
Цитата(Roma12 @ Aug 25 2012, 21:22) *
Например здесь вот http://www.getchip.net/wp-content/uploads/...313-FuseBit.png
наоборот сделано да? судя по красной надписи снизу


"Checked = unprogrammed!". Ну и глупо написано! Причем тут программирование, если фузы так и сяк программируются, только на разные значения?
Писать надо то, чему соответствует галочка (check) - нулику или единичке, т.е. как у таблиц в даташите!

Между прочим, в даташите по этому поводу под таблицей есть мелким шрифтом набранная фраза: "For all fuses ”1” means unprogrammed while ”0” means programmed". После стыковки этой фразы с пояснением к программатору наступает ... размягчение мозгов sm.gif, когда уже перестаешь понимать, ставить эту чертову галку или нет. Но насколько я представляю PonyProg, то галка у него соответствует нулику, т.е. "запрограммированному" состоянию. Вот вся эта катавасия и является той причиной, по которой PonyProg сгубила так много МК.

На самом деле суть здесь проста - все таблицы установки параметров в даташитах приведены в нуликах и единичках! И это есть именно то, что соответствует ВЫБРАННОМУ режиму (и CKSEL в том числе). И эти нулики и единички, как раз, и есть то, что требуется запрограммировать. Однако дебилизм понипроговского интерфейса заставляет сперва перевести единицы и нулики в слова "programmed" и "unprogrammed" по сноске под таблицей, а потом повторно перевести "programmed" и "unprogrammed" в "сhecked" и "unchecked". Причем оба раза вопреки здравому смыслу sm.gif.
_Pasha
Цитата(Xenia @ Aug 25 2012, 20:46) *
"Checked = unprogrammed!". Ну и глупо написано!

Совершенно сапоги. Потому что написано с точностью до наоборот, т.е. checked==programmed==0

Еще.
Цитата(Xenia @ Aug 25 2012, 20:46) *
Вот вся эта катавасия и является той причиной, по которой PonyProg сгубила так много МК.

Там-таки что-то в коде не так, потому что avreal никогда ничего не губил, на том же stk200. laughing.gif
Xenia
Цитата(_Pasha @ Aug 25 2012, 22:05) *
Там-таки что-то в коде не так, потому что avreal никогда ничего не губил, на том же stk200.


Avreal действительно ничего не губит, поскольку фузы задаются в нем числовым способом, в полном соотвествии с таблицами даташита. Например:
CKSEL = 0 to F - Clock selection
т.е. переводишь двоичное число из выбранной строки таблицы в 16-ричную форму - его и пишешь. А в большинстве случаев и того нет, когда параметр программируется единственным битом:
avreal.exe +90USB647 -fcksel=e, ckdiv=1, bodlevel=2, sut=0, hwbe=1, jtagen=1 ...
- всё предельно ясно и понятно, без необходимости разбирательства в том, "programmed" это или "unprogrammed".
Палыч
Цитата(Xenia @ Aug 25 2012, 21:46) *
Причем тут программирование, если фузы так и сяк программируются, только на разные значения?
Этот термин придумали разработчики AVR... Что же нам делать? Приходится идти у них на поводу, чтобы была однозначность в терминах...

Цитата(Xenia @ Aug 25 2012, 21:46) *
...все таблицы установки параметров в даташитах приведены в нуликах и единичках!
Тут Вы слегка погорячились. В подразделе DS "Fuse bits" во всех таблицах рядом с единичками-ноликами написано в скобочках programmed-unprogrammed.

Цитата(_Pasha @ Aug 25 2012, 22:05) *
Там-таки что-то в коде не так...
Всё нормально в Пони с кодом... Разработчики Пони пошли у Atmel"а на поводу - отталкивались от programmed/unprogrammed, решив, что галка должна соответствовать - programmed (т.е. нулевому значению fuse). Тогда как у большенства людей стойкий стереотип: галка = единица. Отсюда и загубленные по невнимательности МК...


Цитата(Xenia @ Aug 25 2012, 22:15) *
...т.е. переводишь двоичное число из выбранной строки таблицы в 16-ричную форму - его и пишешь. А в большинстве случаев и того нет, когда параметр программируется единственным битом...
Ну, вот видите - как сложно... Проще из Студии fuses программировать. Я, например, так и делаю. Там, вообще "словами" написано - переводить из разных систем счислений ничего не надо!
_Pasha
Цитата(Палыч @ Aug 25 2012, 21:52) *
Отсюда и загубленные по невнимательности МК...

Каждый верит в свою историю. Но я несколько десятков аврок спасал самопальным параллельным программатором... он паялся только с целью шить меги 8 и 16, оказалось, что еще и выставить D9E1 sm.gif
ЗЫ невнимательностью там и не пахло, чисто проблема при прошивке фузов... и резистор по SCK был ни при чем.
Палыч
Цитата(_Pasha @ Aug 25 2012, 22:55) *
....спасал самопальным параллельным программатором...
К моему счастью JTAG'у работающий генератор не нужен biggrin.gif
ILYAUL
Цитата
Тогда как у большенства людей стойкий стереотип: галка = единица.
Позвольте уж с Вами не согласиться - галка стойкий стереотип =программировать. А вот, что там запишется 0 или 1 мне лично по барабану. Эта разница ощутима для тех , кто создает программатор сам. И если после работы с тем или иным программатором МК "накрывается медным тазом" - прямая вина разработчика программатора.
_Артём_
Цитата(Палыч @ Aug 25 2012, 22:08) *
К моему счастью JTAG'у работающий генератор не нужен biggrin.gif

Вы уверены, что не нужен (для АВР)?
В тех нескольких случаях когда неправильно прошивались фузы (например, от External clock-а которого нет), приходилось припаивать RC-на соотв. вход, а после ставить фузы программатором.
Палыч
Цитата(_Артём_ @ Aug 26 2012, 01:09) *
Вы уверены, что не нужен (для АВР)?
Да. Другое дело - с ошибочной установкой источника тактирования ещё и JTAG отключить. Тогда - "ой"! Но, если JTAG используется для программирования, то с помощью JTAG изменить fuse JTAGEN - невозможно.
Roma12
Цитата(Xenia @ Aug 25 2012, 21:46) *
"Checked = unprogrammed!". Ну и глупо написано! Причем тут программирование, если фузы так и сяк программируются, только на разные значения?
Писать надо то, чему соответствует галочка (check) - нулику или единичке, т.е. как у таблиц в даташите!

Между прочим, в даташите по этому поводу под таблицей есть мелким шрифтом набранная фраза: "For all fuses ”1” means unprogrammed while ”0” means programmed". После стыковки этой фразы с пояснением к программатору наступает ... размягчение мозгов sm.gif, когда уже перестаешь понимать, ставить эту чертову галку или нет. Но насколько я представляю PonyProg, то галка у него соответствует нулику, т.е. "запрограммированному" состоянию. Вот вся эта катавасия и является той причиной, по которой PonyProg сгубила так много МК.

На самом деле суть здесь проста - все таблицы установки параметров в даташитах приведены в нуликах и единичках! И это есть именно то, что соответствует ВЫБРАННОМУ режиму (и CKSEL в том числе). И эти нулики и единички, как раз, и есть то, что требуется запрограммировать. Однако дебилизм понипроговского интерфейса заставляет сперва перевести единицы и нулики в слова "programmed" и "unprogrammed" по сноске под таблицей, а потом повторно перевести "programmed" и "unprogrammed" в "сhecked" и "unchecked". Причем оба раза вопреки здравому смыслу sm.gif.

Все у меня уже с этими ноликами и единичками едит крыша!!! laughing.gif короче пони буду менять иначе не видать мне просвета )) Хотя в принципе понятно, то что если галочку ставить на unprog то это противоположно prog! тоесть нолик меняется с единицей
izerg
Цитата(izerg @ Aug 25 2012, 13:41) *
Два способа победить проблему:
1 - выбросить коня, и взять что-либо нормальное.
2 - прочитать внимательно, что такое "галочки", и на что оно влияет.

Цитата(Roma12 @ Aug 26 2012, 21:05) *
Все у меня уже с этими ноликами и единичками едит крыша!!! (IMG:style_emoticons/default/laughing.gif) короче пони буду менять иначе не видать мне просвета )) Хотя в принципе понятно, то что если галочку ставить на unprog то это противоположно prog! тоесть нолик меняется с единицей


Два дня потеряно впустую.
Как показывает практика - "не осиливает" начинающий фьюзы. Хочется веть спаять 3 детальки, вшить прошивку и радоваться моргающему светодиоду, а тут еще разбираться с чем то... sm.gif

hd44780
Меняйте пони, не меняйте - дело, конечно, Ваше, но вдуматься и понять фьюзы всё равно придётся. Иначе Вы далеко не уедете.

В пони галочка включена - бит programmed (==0), выключена - unprogrammed (==1). Это написано прямым текстом в том окне. И, кстати, на 100% соответствует терминологии атмеловских даташитов rolleyes.gif .
Поэтому, если Вам угодно ругаться, ругайтесь не на пони, а на атмеловцев, придумавших эту "инверсную" терминологию с вытекающим из неё туманом. Хотя и она отнюдь не взята с потолка, т.к. для любых флэшей и прочих ПЗУ чистая, незапрограммированная (unprogrammed) ячейка всегда содержит 0xFF. Такова технология. Привыкайте.
А пони губит только невнимательных людей, у которых руки голову обгоняют.

Я приложил пример для ATMega32. CKSEL= 0100 - внутренний генератор 8MHz, SUT=10 - Slow rising power, CKOPT=1 и т.д.

Единственный недостаток поника, на мой взгляд, - это отсутствие в схеме генератора. И генерить частоту портом он тоже не умеет.
Посему будьте осторожны с CKSEL=0000 (все 4 галки включены, это внешний генератор, а не кварц!!!!). Я один раз ошибся sad.gif , пришлось переделывать под AVReal кажется, т.к. он может генерить частоту на пине LPT порта.
Потом всё равно ушёл на пони. ИМХО, удобнее, чем писать какие-то командные строки или применять разношерстные самопальные GUI программы-надстройки над тем же avr-dude и родственными вещами. Но это уже дело вкуса и личных предпочтений - кому как sm.gif ....
izerg
Нажмите для просмотра прикрепленного файла
Оконо программирования AVR Студии.
Мне гораддо проще выставить настройки подписаные текстом, чем "выковыривать" их для каждого нового процессора из документации.
В студии все настройки для всех процессоров прописаны, с выходом нового камня не придется ждать, пока разработчики коня соизволят его добавить sm.gif

Единственное преимущество коня -его "универсальность". Для радиолюбителя, повтояющего чужие конструкции не нужно ставить кучу разных IDE разных производителей.
kovigor
Цитата(hd44780 @ Aug 27 2012, 09:09) *
Меняйте пони, не меняйте - дело, конечно, Ваше, но вдуматься и понять фьюзы всё равно придётся. Иначе Вы далеко не уедете.

В пони галочка включена - бит programmed (==0), выключена - unprogrammed (==1). Это написано прямым текстом в том окне. И, кстати, на 100% соответствует терминологии атмеловских даташитов

Согласен. Дело не в Пони. Дело в элементарной невнимательности.
P.S. Никак не пойму, почему AvReal до сих пор не обзавелся GUI ...
Xenia
Цитата(kovigor @ Aug 28 2012, 13:01) *
P.S. Никак не пойму, почему AvReal до сих пор не обзавелся GUI ...


GUI у AvReal не будет никогда! - Принципиальная позиция автора. sm.gif
ReAl
1111493779.gif Категорически заявляю, что я никому не запрещаю писать GUI оболочку к avreal !!! 1111493779.gif

Его и у avrdude нет, как я понимаю :-) К avrdude отдельным проектом есть.
К avreal тоже когда-то avrealshell был написан, но, насколько я понимаю, проект давно замер.

Мне, как я уже не раз писал, всегда хватало существующих TUI (DOS, редактор QEdit, по Alt-F9 при необходимости перекомпиляция и зашивка микроконтроллера) и GUI (MED, NetBeans, Code::Blocks, ...)
Выглядит это уже четырнадцать лет так:
В Makefile проекта
Код
...
MCU = atmega64
F_CPU=7372800
# fuses for avreal
FUSES = m103c=1,wdton=1,jtagen=1,cksel=F,ckopt=0,sut=1,boden=0,bodlevel=1
AVREAL_OPT=-n -az
...
...
common_makefiles=$(PROJ_SRCTOP)/makefiles
include $(common_makefiles)/gcc-avr.mak
include $(common_makefiles)/avreal.mak

avreal.mak
Код
ifndef AVREAL_PORT
AVREAL_PORT = 1
endif

ifndef AVREAL_ADAPTER
AVREAL_ADAPTER = b
endif

AVREAL := avreal "-a$(AVREAL_ADAPTER)" "-p$(AVREAL_PORT)" +$(MCU)

ifndef AVREAL_FREQ
ifdef F_CPU
AVREAL_FREQ  := $(F_CPU)
endif
endif

ifdef AVREAL_FREQ
AVREAL_FREQ_SW  := -o$(AVREAL_FREQ)hz
endif

.PHONY : program prg_final fuses verify lock erase reset
#
program : $(TRGPGM)
    $(AVREAL) $(AVREAL_OPT) $(AVREAL_FREQ_SW) -e -wp $^ -v
#
fuses:
    $(AVREAL) -o50 -wp -v -f$(FUSES)
#
ifdef FUSES
verify: $(TRGPGM)
    $(AVREAL) $(AVREAL_FREQ_SW) -v $^ -f$(FUSES)
else
verify: $(TRGPGM)
    $(AVREAL) $(AVREAL_FREQ_SW) -v $^
endif
#
lock:  $(TRGPGM)
    $(AVREAL) $(AVREAL_FREQ_SW) -v -l2 $^
#
erase:
    $(AVREAL) $(AVREAL_FREQ_SW) -e
#
reset:
    $(AVREAL)  $(AVREAL_FREQ_SW)

На домашнем компьютере
Код
$ echo $AVREAL_ADAPTER
FT2232H=avreal-f32ha_a.cfg
$ echo $AVREAL_PORT
d=Dual RS232-HS A
$
На работе что-то другое.

Тот же Code::Blocks настроен на работу с внешним Makefile и Tools:Program вызывает make program

Если мне кто-то объяснит, зачем мне GUI, если я в редакторе изменяю строку, жму «горячую клавишу» и зашиваю проект в кристалл, я еще подумаю (на самом деле, иногда подмывает на чём-то не сильно нужном освоить wxpy, чтобы при необходимости уже освоен был, но недосуг).

Е если кому-то нужно, так см.рис 1 первую строку. Я свою часть работы сделал :-)
IgorKossak
Цитата(Roma12 @ Aug 26 2012, 21:05) *
Все у меня уже с этими ноликами и единичками едит крыша!!! laughing.gif короче пони буду менять иначе не видать мне просвета )) Хотя в принципе понятно, то что если галочку ставить на unprog то это противоположно prog! тоесть нолик меняется с единицей

Я думаю, что за два дня можно было догадаться сначала прочесть (это в любом случае неразрушающая операция) понипрогом имеющиеся по умолчанию фузы, и тут же достичь просветления.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.