AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
22.10.2018, 18:14
|
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: Не тот импульс.
Что-то посмотрел я сегодня исходники программатора и не нашел там выведение выводов в 3-е состояние в конце подпрограммы программирования целевого микроконтроллера. Кончается все какой-то непонятной подпрограммой Endpoint_ClearIN(); - и не понятно, что там делается внутри. Я не нашел в исходниках ее реализацию. Может быть она из какой-то библиотеки - не знаю.
|
|
|
|
22.10.2018, 23:39
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,973
Сказал спасибо: 2,554
Сказали Спасибо 11,851 раз(а) в 5,939 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от Signalshik2
|
посмотрел я сегодня исходники программатора и не нашел там выведение выводов в 3-е состояние в конце подпрограммы программирования целевого микроконтроллера
|
При отсутствии активности SPI нет никакой разницы между "Z" и "OD". Можно сильно не переживать по этому поводу.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
24.10.2018, 00:39
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от Signalshik2
|
не нашел там выведение выводов в 3-е состояние
|
А должен был найти? В каком месте даташитов говорится что АВР, такие "старые", как тини13 или АТ90УСБ, могут при нормальной работе установить честное 3е состояние? Зачем при софтовых реализациях и2ц, например, это состояние имитируют через управление направлением работы порта?
В общем я бы настоятельно рекомендовал добавить в схему программатора буфер, например 74HC244, пропустив через него к таргету сигналы моси, мисо, цлк, ресет (учитывая направление потока данных конечно). А сигнал разрешения его работы (OE) соединить с сигналом программирования RESET от программатора. Когда программирование не идёт, программатор держит ресет в 1, работа буфера запрещена, его выводы (соединённые и с таргетом, и с контроллером программатора) в 3ем состоянии. Как только начинается программирование, программатор дёргает ресет в 0, разрешая работу буера, и удерживает его так, пока не завершится программирование, после чего ресет уходит в 1, буфер снова перестаёт работать.
Сообщение от akegor
|
При отсутствии активности SPI нет никакой разницы между "Z" и "OD". Можно сильно не переживать по этому поводу.
|
Всё совсем не так однозначно. Далеко не факт, что в прошивке программатора CLK и MOSI переводятся в режим чтения после завершения программирования, и оставшись выходами с установленным значением (0 или 1 не суть) они будут как минимум мешать таргету работать с спи, когда он запустится после программирования. Допустим моси программатора остался в 1. Таргет прошит и начинает обмен по спи. Пытается выставить на линии моси 0. А программатор тянет линию в 1. УПС, как говорится. Выход программатора оказывается закорочен на землю. Если есть в кабеле по этой линии есть "противозвонный" резистор - то он начинает работать как ограничивающий. Ну а если резистора нету, вывод моси программатора оказывается закорочен на землю на прямую (условно, расписывать конструкцию порта лениво), и сдохнет. Не мгновенно, но достаточно быстро. При наличии ограничивающего резистора ничего не сдохнет достаточно долгое время, но и работать спи нормально не будет. А поставить резистор большого номинала, что бы он ограничивал ток до величин, не влияющих на работу спи таргета, нельзя - при программировании фронты будут слишком пологими, и прошивка будет неудачной.
|
|
|
|
24.10.2018, 06:28
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,973
Сказал спасибо: 2,554
Сказали Спасибо 11,851 раз(а) в 5,939 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от Someone
|
Далеко не факт
|
Факты в студию. Нету? Моя многолетняя практика работы с этим программатором говорит, что фактов, подтверждающих Вашу теорию, просто нет и никогда не было. Будут ли? Гарантировать отсутствие в будущем не могу (хз, что там могут наворотить в обновленной прошивке), однако знаю, что софтом у производителя занимаются не идиоты и не кадры из песочницы.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
24.10.2018, 10:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,953
Сказал спасибо: 2,994
Сказали Спасибо 3,174 раз(а) в 2,154 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от Someone
|
В каком месте даташитов говорится что АВР, такие "старые", как тини13 или АТ90УСБ, могут при нормальной работе установить честное 3е состояние?
|
Имеем 2 бита (DDRxy и PORTxy), кодирующие [почти] все потребные сочетания - вход (экв. Z), вход с подтяжкой к 1, выход в 0, выход в 1. Предлагаете добавить ещё один бит?
Сообщение от Someone
|
Далеко не факт, что в прошивке программатора CLK и MOSI переводятся в режим чтения после завершения программирования, и оставшись выходами с установленным значением (0 или 1 не суть) они будут как минимум мешать таргету работать с спи, когда он запустится после программирования.
|
Плюсую akegor. Даже я не позволял себе таких казусов, когда творчески перерабатывал AVR910. Можно ожидать и от программатора ТС'а корректного поведения, пока это не доказано документально. Скорее у него - резисторы не там включены или не тот номинал.
__________________
Экзорцист 40-го уровня.
|
|
|
|
24.10.2018, 16:07
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от akegor
|
Факты в студию.
|
Факты? Ну вот буквально неделю назад столкнулся. Есть схема (аттач). J1 - разъём программирования. На контакт моси выводится шим (бо OC2A), который через развязку (ADUM5401) управляет XTR116 (формирователь сигнала 4-20 мА). Номинал резистора R37, который притягивает моси к земле 10к. Есть программатор Олимкс АВР-ИСП-МК2. Внутри - простейшая реализация. Противозвонные резисторы (последовательно в линиях ресет, моси, мисо, цлк) 100 Ом. Перемычки в положениях 5В и OFF (т.е. питание на таргет программатором не подаётся, о чём свидетельствует отсутствие свечения соответствующего светодиода). Раньше я работал со "своим" программатором, ранее я его тут упоминал (развязка, преобразователь уровня, выходной буфер). Но в тот раз он дома остался. Ну а на работе - олимекс. И вот прошив новую прошивку и проверяя работу девайса, увидел, что ранее работавший нормально токовый выход выдаёт неверные значения, на 4 мА больше, чем должен. Сначала искал как изменения в программе могли повлиять. Потом прошил старую версию, которая за три дня до того работала. Результат тот же. Полез в железо - всё в порядке на вид. Заменил интерфейсную плату на другую - результат тот же. Уже взялся за осциллограф, но подумал - а как без программатора, отключил шнурок от таргета... И всё заработало. Вернул плату - работает. Подключил шнурок, прошил новую прошивку. Снова завышение показаний. Убрал программатор - всё нормально, показания верные. Так же с подключенным программатором устройство потребляет на 20 мА больше по лини 12В. И какой вывод можно сделать, исходя из этих данных?
|
|
|
|
24.10.2018, 16:18
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от akegor
|
однако знаю, что софтом у производителя занимаются не идиоты и не кадры из песочницы.
|
А причём тут производитель? Вроде программатор на основе библиотеки ЛУФА (клон авр-исп-мк2) разработал, если память не подводит, австралиец-радиолюбитель, и он, кстати говоря, в схеме использовал преобразователь уровней, который в упрощённой схеме выкинут.
|
|
|
|
24.10.2018, 23:46
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Не тот импульс.
ЗЫ:
Сообщение от akegor
|
не идиоты и не кадры из песочницы.
|
А если вспомнить дракона? Вполне себе от производителя, вот только к кому отнести разработчика преобразователя питания, который дох от малейшего чиха? Идиот или из песочницы? А студия 5? откуда вылезли в Атмел её разработчики?
|
|
|
|
25.10.2018, 00:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,982
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от Someone
|
какой вывод можно сделать, исходя из этих данных?
|
все свое носи с собой!
|
|
|
|
25.10.2018, 10:46
|
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: Не тот импульс.
Сообщение от Someone
|
А должен был найти?
|
- ну вы же сами говорили, что там в конце программирования - программатор AT90162USB переводит все свои выходы SPI-Программатор в 3-е состояние. Вот я и решил посмотреть, но не нашел. Кстати, забыл сказать в прошлый раз: там в конце - после программирования. в конечных командах еще какие-то задержки есть. Т.е. перед какой-то функцией(возможно перед этой самой Endpoint_ClearIN() стоит задержка и после нее тоже какая-то задержка. Ну в общем включать напрямую от AT90USB162(программатор) к ATTiny13 я решил не делать.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:14.
|
|