Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переназначение выводов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
TarasG
Каким образом, допустим, в ATmega8 можно использовать выводы для программирования (MOSI, MISO и др.? Можно ли использовать их для других целей (кроме программирования) с возможностью перепрограммирования микросхемы в отдельном программаторе (не в целевой схеме) через PonyProg? Или нужно, как с выводом Reset, фьюзом отключать возможность последовательного программирования?
defunct
Цитата(TarasG @ Feb 25 2008, 23:09) *
(MOSI, MISO, SCK) Можно ли использовать их для других целей (кроме программирования)

Можно.
TarasG
Цитата(defunct @ Feb 26 2008, 00:34) *
Можно.

И для этого не надо ничего менять?
sergeeff Jr.
Вот самая главная информация, которую стоит хорошо изучить
http://www.atmel.com/dyn/resources/prod_do...nts/doc2486.pdf
Там же и написано, что
Port B is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit).
TarasG
Цитата(sergeeff Jr. @ Feb 26 2008, 01:24) *
Вот самая главная информация, которую стоит хорошо изучить
http://www.atmel.com/dyn/resources/prod_do...nts/doc2486.pdf
Там же и написано, что
Port B is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit).

Это я читал. Смущает только то, что если подать на Reset лог. 0, то устройство сбросится.
arttab
Цитата
Смущает только то, что если подать на Reset лог. 0, то устройство сбросится.


эээ... а если подать на питание 0, то вообще работать не будет

попробуйте лучше формулировать свои мысли
IgorKossak
Только функциональность вывода reset определяется фьюзом. Остальные выводы, в том числе и выводы программирования, этого не требуют.
Если Вы запрограммировали фьюз вывода reset на работу в качестве обычного порта ввода\вывода, то как reset он уже работать не будет, т. е. при подаче лог. 0 устройство не сбросит.

2 arttab повежливее, пожалуйста, с новичками.
Сергей Борщ
Цитата(IgorKossak @ Feb 26 2008, 08:19) *
Если Вы запрограммировали фьюз вывода reset на работу в качестве обычного порта ввода\вывода, то как reset он уже работать не будет, т. е. при подаче лог. 0 устройство не сбросит.
ААААА!!!!!
Только надо обязательно к этому добавить, что после программирования этого фуза процессор перестанет программироваться через SCLK, MOSI, MISO, распрограммировать его можно будет только параллельным высоковольтным программатором вроде STK500, иначе следующий вопрос будет "А чем теперь оживить кристалл?".
aleksey_g
Цитата(Сергей Борщ @ Feb 26 2008, 10:33) *
ААААА!!!!!
Только надо обязательно к этому добавить, что после программирования этого фуза процессор перестанет программироваться через SCLK, MOSI, MISO, распрограммировать его можно будет только параллельным высоковольтным программатором вроде STK500, иначе следующий вопрос будет "А чем теперь оживить кристалл?".


И еще добавить, что это не полностью относится к ATTINY2313 (ну, особенная она такая). Ее придеися использовать либо с вшитой программой либо в морг.
Параллельным высоковольтным программатором она не шьется.
Если я не прав, поправьте.
TarasG
2 IgorKossak и Сергей Борщ спасибо за исчерпывающий ответ. Значит если я программирую простым последовательным программатором, то из числа "свободных ног" следует исключить только Reset (для mega8 это PC6).
singlskv
Цитата(aleksey_g @ Feb 26 2008, 12:17) *
Параллельным высоковольтным программатором она не шьется.
Если я не прав, поправьте.
Поправляю, даташит doc2543 ревизии I стр. 167
ae_
Цитата(singlskv @ Feb 26 2008, 19:26) *
Поправляю, даташит doc2543 ревизии I стр. 167

Тот же документ, стр.223: "Parallel Programming does not work"
sergeeff Jr.
TarasG, вы хотите занять все пины мк, кроме RESET и на будущее исключить возможность добавления чего либо?
Вам уже намекнули, что использование RESET и неких других ножек (XTAL1 и XTAL2 например) может плохо кончится. То есть случайно поменяли FUSE и начинаются проблемы (вплодь до замены мк).

И вообще поделились бы мыслями о том, что вообще должно в итоге получится... smile.gif Вам что-нибудь да подскажут.
singlskv
Цитата(ae_ @ Feb 26 2008, 15:43) *
Тот же документ, стр.223: "Parallel Programming does not work"
Нда, интересное кино получается, много раз шил их на паралельном
программаторе Sterh ST-011, причем в параллельном режиме.

Сейчас специально откопал у себя tiny2313 и прошил фузы
RSTDISBL = ON
SPIEN = OFF

никаких проблем с чтением/стиранием/записью НЕТ !!!
Dj.Shadow
Выводы SCLK, MOSI, MISO в ATmega8 можно спокойно использовать как порты ввода-вывода. За исключением случая когда эти выводы подключены к выходам других элементов. Если же предполагается их подключать к выходам других элементов, то необходимо между выводами процессора и другого элемента включать резистор (5к например). При подключении выводов SCLK, MOSI, MISO ко входам резисторы не нужны.
TarasG
Цитата(sergeeff Jr. @ Feb 26 2008, 15:56) *
TarasG, вы хотите занять все пины мк, кроме RESET и на будущее исключить возможность добавления чего либо?
Вам уже намекнули, что использование RESET и неких других ножек (XTAL1 и XTAL2 например) может плохо кончится. То есть случайно поменяли FUSE и начинаются проблемы (вплодь до замены мк).

И вообще поделились бы мыслями о том, что вообще должно в итоге получится... smile.gif Вам что-нибудь да подскажут.

Так это что, ноги XTAL нельзя использовать как простые порты ввода-вывода "без последствий"? А если я использую внутренний RC-генератор?
Что касается занимания всех ног - нет. Я просто оцениваю возможности как раз "на будущее", не знаю подобных тонкостей, т.к. занимаюсь МК всего пару недель smile.gif
Относительно того, что это должно получиться. Это будет блок управления аудиоусилителем. Причём регулирование громкости будет осуществляться от валкодера (планируется использование скролла из мыши), а непосредственно изменение громкости - делитель из постоянных резисторов и релле (см. Радиохобби №2/2002 стр. 63-64). Кроме того: селектор входов, вкл/выкл (standby) и кроме того всё это дублируется с ДУ (благо, на пульте от CD-плеера есть все эти кнопки, не используемые в самом CD). На данный момент готов регулятор громкости от валкодера и ДУ.

Забыл сказать. Ещё готова индикация уровня громкости (два 7-сегментных индикатора и регистр сдвига), а также в EEPROM должны сохраняться последние параметры (это всё готово).
sergeeff Jr.
Эти ноги можно использовать, но надо постоянно помнить о том, что если соответствующие Fuses будут выставлены на высокочастотный внешний источник, то будет трудно оживить мк (например придется подать частоту с внешнего генератора, отцепив при этом все, что сидит на ногах).
defunct
Цитата(aleksey_g @ Feb 26 2008, 11:17) *
И еще добавить, что это не полностью относится к ATTINY2313 (ну, особенная она такая). Ее придеися использовать либо с вшитой программой либо в морг.
Параллельным высоковольтным программатором она не шьется.
Если я не прав, поправьте.

Поправляю.
Шьется она высоковольтным программатором прекрасно.
Делал простенький девайс для разлочивания - возврата всех фузов в заводское состояния для AVRок, и t2313 впрочем как и все другие МК с RSTDISBL / DWEN фузами перешивались прекрасно.
STK500 тоже без проблем шьет t2313 в HVPP режиме.
Vlad219i
Цитата(defunct @ Feb 27 2008, 15:12) *
Делал простенький девайс для разлочивания - возврата всех фузов в заводское состояния для AVRок


Ээээ... Можно взглянуть ? Во избежание изобретения велосипеда, тскть. :-)
defunct
Цитата(Vlad219i @ Feb 27 2008, 14:31) *
Ээээ... Можно взглянуть ? Во избежание изобретения велосипеда, тскть. :-)

Я его не оформлял как проект.
Попробую порыться в архивах на выходных и выложить куда-нибудь.
kv_addr
Цитата(defunct @ Feb 27 2008, 16:12) *
Поправляю.
Шьется она высоковольтным программатором прекрасно.
Делал простенький девайс для разлочивания - возврата всех фузов в заводское состояния для AVRок, и t2313 впрочем как и все другие МК с RSTDISBL / DWEN фузами перешивались прекрасно.
STK500 тоже без проблем шьет t2313 в HVPP режиме.

Чем можно объяснить несоответствие реального положения вещей с пунктом Errata:

2. Parallel Programming does not work
Parallel Programming is not functioning correctly. Because of this, reprogramming
of the device is impossible if one of the following modes are selected:
– In-System Programming disabled (SPIEN unprogrammed)
– Reset Disabled (RSTDISBL programmed)
Problem Fix/Workaround
Serial Programming is still working correctly. By avoiding the two modes above, the
device can be reprogrammed serially.

1. Этот пункт устарел, поскольку относился к ранним ревизиям чипа, почему в этом случае нет соответствующей информации?

2. Паралельное программирование корректно не выполняется только при определенных условиях? Каких?

3. Некорректность программирования чего может касаться: флеша, фьюзов, еепром?

В любом случае желательно в этом вопросе иметь определенность. По крайней мере, если есть гарантия нормального параллельного перепрограммирования фьюзов, уже есть гарантированый способ обхода некорректной ситуации.
aleksey_g
Я пробовал это, но не проверял на 2313:
http://elm-chan.org/works/avrx/report_e.html
У Т15 сбросил фузы в девственоое состояние на раз.
А с 2313, выходит, Атмел ВРЕТ!

P. S.
Еще надыбал:
http://pol-sem.narod.ru/paraprog/paraprog.htm
singlskv
Цитата(kv_addr @ Feb 27 2008, 16:33) *
Чем можно объяснить несоответствие реального положения вещей с пунктом Errata:
1. Этот пункт устарел, поскольку относился к ранним ревизиям чипа, почему в этом случае нет соответствующей информации?
Я шил на ранних ревизиях, в проект была заложена tiny2313 но их еще небыло,
поэтому отлаживал на 90S2313 и как только появились тини, перешел на них.
Цитата
3. Некорректность программирования чего может касаться: флеша, фьюзов, еепром?
У меня шьется все.
Цитата(aleksey_g @ Feb 27 2008, 16:45) *
А с 2313, выходит, Атмел ВРЕТ!
Не врет, а заблуждается !
defunct
Цитата(kv_addr @ Feb 27 2008, 15:33) *
Чем можно объяснить несоответствие реального положения вещей с пунктом Errata:

К фузам этот пункт не относится.
singlskv
Цитата(defunct @ Feb 27 2008, 18:23) *
К фузам этот пункт не относится.
В посте №14 я уже писал, программирую
RSTDISBL = ON
SPIEN = OFF

дальше читаю и пишу флеш и еепром без проблем...
kv_addr
Цитата(defunct @ Feb 27 2008, 19:23) *
К фузам этот пункт не относится.

Хорошо, если это так, но из Errata, к сожалению, это не очевидно, написано скудно.

Но, как пишет singlskv:
Цитата
В посте №14 я уже писал, программирую
RSTDISBL = ON
SPIEN = OFF

дальше читаю и пишу флеш и еепром без проблем...

Выходит, что Errata не соответствует действительности. 07.gif
Где собака порылась?
singlskv
Цитата(kv_addr @ Feb 27 2008, 20:02) *
Хорошо, если это так, но из Errata, к сожалению, это не очевидно, написано скудно.
Но, как пишет singlskv:
Выходит, что Errata не соответствует действительности. 07.gif
Где собака порылась?
Ладно, если Вы хотите знать истину... попробую воткнуть чип прошитый на
параллельном программаторе(с соответствующими фузами, см выше) в STK500,
если он там заработает - тады ошибка атмел....
тока не обещаю что сегодня проверю, лень знаете...
kv_addr
Цитата(singlskv @ Feb 27 2008, 21:21) *
Ладно, если Вы хотите знать истину... попробую воткнуть чип прошитый на
параллельном программаторе(с соответствующими фузами, см выше) в STK500,
если он там заработает - тады ошибка атмел....
тока не обещаю что сегодня проверю, лень знаете...

Время терпит, я же не изверг. wink.gif

У самого сейчас 2313 нет, была как-то идея Reset использовать в одном проекте, но воздержался - не хотел однократку получить, выкрутился другим способом. А так, если на самом деле можно Reset задействовать не безвозвратно, неплохо было бы.
Dopler
3 года назад выставленный через ISP фуз RSTDISBL нельзя было сбросить назад даже параллельным HV программированием. Какая тогда была ревизия кристалов, уже не помню.
aleksey_g
Цитата(singlskv @ Feb 27 2008, 16:56) *
Не врет, а заблуждается !


Это нам, пользователям их продукции позволительно заблуждаться.
А они, как авторы всего этого компота заблуждаться по определению не могут.
Или говорить правду или врать или просто относиться наплевательски к пользователям ихней продукции!

У меня тоже лежит две штуки, запоротые коллегой понипрогом. Думал - выбросить. А теперь планы поменялись...
singlskv
Цитата(aleksey_g @ Feb 27 2008, 21:10) *
Это нам, пользователям их продукции позволительно заблуждаться.
А они, как авторы всего этого компота заблуждаться по определению не могут.
Я думаю что здесь Вы чуть заблуждаетесь, там то же люди этим занимаются,
и им то же свойственно ошибаться,
те кто делают софт например для AVRStudio и для STK500 это совсем не те же люди которые
разрабатывают чипы, и ошибки(недопонимание) по пути от одних к другим вполне вероятны,
если хотите в этом убедиться, сходите на www.avrfreaks.com и посмотрите обсуждение
каких-нить новых чипов, далеко не всегда, истиной в последней инстанции являются сотрудники
фирмы атмел... Они то же там чему то учаться...
defunct
Цитата(kv_addr @ Feb 27 2008, 19:02) *
Хорошо, если это так, но из Errata, к сожалению, это не очевидно, написано скудно.

C 2004-года не встретил ни одной t2313 у которой бы были проблемы со сбросом фузов HVPP программатором. Помнится пару чипов отказывались шиться, но Fuses сбрасывались как часы, а потом можно шить через ISP.

Цитата(singlskv @ Feb 27 2008, 20:41) *
те кто делают софт например для AVRStudio и для STK500 это совсем не те же люди которые
разрабатывают чипы,

Более того, вполне определенно можно сказать, это совсем не те люди.
Чипы могут разрабатывать в US, а ПО в Индии. Документацию составляют третьи. Совершенно разные команды, совершенно разные люди, совершенно разной квалификации.
colombo_2007
По поводу tiny25/45/48 кто нить в тему может что-то сказать?

bb-offtopic.gif А не проще поставить готовый темброблок? Есть даже нашего разлива управляемые кнопками и с индикацией.
alux
Возникла острая необходимость использовать вывод RESET у Tiny45 как обычный вывод.Спаял параллельный программатор Elm Chan. Все работает замечательно, по крайней мере с AT90S2313, Tiny2313. А вот с 8-ногими чипами Tiny45 через адаптер упорно выдает буквально следующее:
Put a device on the socket and type Enter...
PAR->Unknown device <FF-FF-FF>.
HVS->Unknown device <3F-FF-FF>.
HVS15->Unknown device <FF-FF-FF>.
.
Проверено на нескольких Tiny45-SO8. Контроллер с соккетом соединяется через подпаяные к выводам МК проводники 10см с разъемом на конце.
При этом чипы живые - проверял последовательным программатором.
Процедуру программирования делал так:
1) подсоединил LPT-кабель к плате программатора.
2) подключил питание +12В.
3) набрал в командной строке avrpp.exe -r + Enter
4) после приглашения (светодиод "Программирование" - потушен) подключил Tiny45 к соккету.
5) нажал Enter.

И в ответ - ff ff ff.

Программатор спаян на монтажной плате. Схему выкладываю. Ошибок в монтаже нет. Проверено - перепроверено.
Переключатель "Tiny15 <-> Others" установлен в соответствующее положение.
Версий больше нет... Может кто подскажет в чем дело?

PS. На плате VT1 вместо BC857 стоит КТ3107Е, и VT2 вместо BC847 стоит КТ3102А. Остальное все - согласно схемы.
sigmaN
А если на Tiny13A reset как обычный пин сконфигурить - проблем не будет?
alux
Цитата(sigmaN @ Jun 10 2010, 11:45) *
проблем не будет?

Нет проблем, если вы собираетесь однократно запрограммировать Тини13 одновременно установив фьюз RSTDISABLE = 0 последовательным программатором.
Вообще нет проблем, если вы собираетесь многократно прошивать Тини13 с установленным фьюзом RSTDISABLE параллельным программатором.

Только нужно сначала решить мою проблему, если вы будете повторять параллельный программатор Elm Chan.
Есть какие-либо предположения на этот счет?
sigmaN
У меня дракон smile.gif
Ну параллельным тогда и придётся если что.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.