Страница 1 из 2

Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 07:25:53
shrus43
Здравствуйте знатоки,подскажите ребят как сделать его таковым и какие посдедствия будут,мк атмега 328,нарисовал плату в попыхах орентировался по протэусу :facepalm: и заказал изготовление платы,лажанул жестко ребят

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 08:04:21
Ivanoff-iv
Делается он переключением соответствующего фьюз бита (RSTDSBL).
Последствия - прошивать можно будет только HV программатором или после сброса фьюз-доктором.

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 08:25:05
shrus43
Печаль у меня ток usbasp,чтож благодарю за ответ

Добавлено after 17 minutes 30 seconds:
Кста в какой проге этот фьюз бит переключать можно галкой,а то,в моей нету

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 09:23:17
Самсусамыч
В распространённых программах, таких как: AVR Studio; Code Vision AVR; AVRDUDE_PROG 3.3 и тд.

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 10:51:10
BOB51
Ошибка только если ВСЕ выводы МК заняты.
Иначе - режем дорожку и перебрасываем проволочкой на любой свободный вывод.
8)

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 11:35:26
shrus43
Не все заняты,но как то не кашерно получается проволочкой,сейчас подумываю о фьюз докторе,кокраз есть несколько залоченых аврок 328 под среду ардуино "грамматическая ошибка на уровне 4 класса")

Добавлено after 2 minutes 17 seconds:
Граматическая ошибка))))муахаха что за прикол

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 14:25:09
malex66
"Печаль у меня ток usbasp..."
если уверены в прошивке - то прошивайте сначала hex, затем изменяйте фьюз. и (если в прошивке нет ошибок) будет все работать.
только перепрошивка будет доступна только с применением спец. средств. как то так...

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 14:31:37
musor
если нет чегото вроде 866 прогера на 326 и даже на 8 крайне не рекомендуется такое луче перебросить не незанятй порт ка сорветовал калегаBOB51,
менше проблем с прошифкой и отладкой

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 15:39:09
NStorm
Альтернативный вариант:
Зашить бутлоадер. Если UART ноги также не задействовали как-нибудь хитро не как UART, то можно взять Optiboot. Вход в бутлоадер сделать из своей программы по MAGIC последовательности по тому же UART.
Я так на меге 8ой делал, ногу RESET не выводил. Вывел только RX, TX, GND и шил через переходник USB-UART и модифицированную avrdude, которая вместо дерганья ресета слала MAGIC последовательность. Хотя можно и бут переделать просто, чтобы или таймаут большой был или вообще не выходил просто так. В общем варианты через бут есть.

Но если "что пойдет не так", и бут слетит, то конечно без фьюз доктора и т.п. не вернуть МК к ответу уже. Но если быть внимательным, этого не должно произойти )

Добавлено after 35 minutes 53 seconds:
Хотя если UART не разведен на плате... и не хочется припаивать проводки - всё-равно тогда не вариант получается. Хотя я бы всё-равно посоветовал бут зашить, если RSTDSBL фьюз бит планируется включать. Подпаяться к ногам RX,TX куда проще, чем собирать фьюзбит доктора )

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Ср май 20, 2020 16:24:27
Ivanoff-iv
это точно, да и проводов: 3 для бутлоадера и около 20 для доктора...
к тому-же на ресет подаётся 12в и тому, что на его дорожке висит может и поплохеть... т.ч. "доктор" или другой HV прогер == выпаивание мк для перепрошивки :(

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Чт май 21, 2020 10:40:07
BOB51
ОШИБКА!!!
Бутлоадеры, относящиеся к АРДУИНО в обязательном порядке ИСПОЛЬЗУЮТ вывод RESET!!!
:kill: :kill: :kill:
Кристалл в пациенты для фузедохтора перейдет...
Пам-трам -папам... RIP...
:cry: :( :cry:

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Чт май 21, 2020 11:57:44
NStorm
BOB51, вы невнимательно прочитали. Прочитайте еще раз моё сообщение:
Вход в бутлоадер сделать из своей программы по MAGIC последовательности по тому же UART.

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Чт май 21, 2020 12:50:50
BOB51
Это как и в случае с самодельным бутлоадером - не для начинающего...
8)

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Чт май 21, 2020 22:03:55
NStorm
Там же ничего сложного. С тем же оптибутом есть пример прям как в него ходить с основной программы:

Код: Выделить всё

typedef void (*ptr_t)(void);
const ptr_t bootloader_start = (ptr_t)((FLASHEND - 511) >> 1);
Делов-то. И кода надо просто вызываем bootloader_start();
И уж ТС и так собрался фьюздоктора собирать, так что "Кристалл в пациенты для фузедохтора перейдет..." - не страшно. Без бутлоадера он точно туда перейдет.

Добавлено after 8 hours 46 minutes 34 seconds:
Если уж ТС захочет бутлоадер сделать, тут на пальцах на форуме объяснить и расписать всё можно. И проверить прошивку через бут до того, как фьюз трогать. Лучше, чем его не предусмотреть вообще и прошить RSTDSBL.

Добавлено after 13 minutes 45 seconds:
https://github.com/Optiboot/optiboot/bl ... ega328.hex - вот уже готовый бут для 328ой меги. Только взять да прошить. Даже фьюзы на заход в бут при сбросе можно не ставить, т.к. входить будем с основной программы.
Я даже подумал - можно же не по MAGIC с UART'а входить, а любую свободную ногу взять. И с DTR переходника USB-UART подключаться к ней и всё. По смене на ноге прыгать в бутлоадер. Элементарно. Любую ногу свободную берем. Подтягиваем к +. Ждем провала в 0, по прерыванию или еще как. DTR подключаем к ней вместо RESET. Провалились в 0 - переходник подключен. Теперь ждем возврата в 1 - значит или программатор отключен, или нас требуют прошивать. В любом случае прыгаем в бут bootloader_start() - всё. Дальше бут сам сбросит МК что при удачной, что при неудачной прошивке. И прошиваем avrdude как ардуину.

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Пт май 22, 2020 12:09:42
BOB51
Если в проекте уже ИСПОЛЬЗОВАНЫ ВСЕ ВЫВОДЫ (как намякнул топикстартер), то активация бутлоадера сопряжена с особенностями схемотехники... Не факт, что удастся корректно встроить в уже имеющееся.
С другой стороны - неуж-то все на единственном кристалле сошлось?
можно и любой другой с большим количеством выводов использовать или схемотехнику поменять - сегодня нет критичных ограничений.
Зачем такой садомазохизм с абсолютным расходом выводов-то?
:dont_know:

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Пт май 22, 2020 12:28:07
musor
вы невнимателно читали ТС заняты НЕ ВСЕ ПОРТЫ
Не все заняты,но как то не кашерно получается проволочкой,
просто в погоне за простотой разводки и иза своей неопытности он этот момент профукал при заказе плат... не знаю чем вариант трахоф с отладкой лучше 1 реза и пары пусочкоф МГТФ?
замечу что напроизводстве когда долступен паралелнвый прогер(и чипы шьются ДО ВПАЯ) и прошивка 100% вылизано это вполне допустимо
а вот любителю такой гемор зачем?
что до бутлодероф -а есть ли место? а доступны ли пины UART ? да и сам бутлодер не отестеный должно может както влиять на работу програмы

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Пт май 22, 2020 12:29:33
Ivanoff-iv
где Вы такое прочитали? я вижу [uquote="shrus43",url="/forum/viewtopic.php?p=3843844#p3843844"]Не все заняты,но как то не кашерно получается проволочкой...[/uquote]

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Пт май 22, 2020 12:30:15
NStorm
BOB51, да не писал он такого, это только вы написали. Ну внимательнее же :) ТС явно написал:
Не все заняты
У ТС вопрос возник, потому что плату переделывать не хочет и перекинуть одну линию проводком. А вы предлагаете целиком МК заменить. Плата уже заказана. Всё. Уже не переделать. Или заказывать новую или как-то выкрутиться. Вы предложили перерезать дорогу и кинуть проводок. Нормальное решение для 1 линии. Но ТС от него отказался. Я предложил альтернативу с бутлоадером. В некоторых смыслах это даже удобнее, чем прошивать через ICSP.

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Пн май 25, 2020 08:44:59
shrus43
Благодарю ребят за советы,ток не ругайтесь пожалуйсто,я обзаведусь доктором,другие варики для меня сложны и требуют много времени,я действительно не опытен,для меня это хобби,а так думаю всем будет интересно эту тему размусолить и развить,еще возник вопросик походу,если пины SPI моси мисо итд для прошивки тоже заняты програмно и в момент прошивки,когда программа сразу сходу заработает ,начнется движуха на этих пинах,не будет ли плохо МК или USBASу) ?,стоит ли что-то делать?и что?

Re: Использование пина RESET в качестве ввода вывода

Добавлено: Пн май 25, 2020 10:12:50
wws63
Собрать доктора, и забудешь все проблемы, платы продаются, сделаны качественно. Только вот Attiny2313 не всегда поддается лечению, о чем производитель сообщил в даташите. Экспериментировал с Atmega8, Atmega16, Attiny13a. Восстанавливает на ура, поэтому активно стал использовать на тиньке13 все 6 выводов.