Attiny13 прошивается, но не работает

Обсуждаем контроллеры компании Atmel.
eduard_7
Родился
Сообщения: 7
Зарегистрирован: Вс авг 11, 2024 13:07:59

Attiny13 прошивается, но не работает

Сообщение eduard_7 »

Пожалуйста посоветуйте что можно сделать.
Компиляция произведена в Atmel Studio. Симуляция проходит корректно в Proteus. Прошивка HEX файлов в МК также проходит успешно. Однако контроллер не работает.
Пробовал прошивать через:
USBASP китайскиы- успешно
Arduino UNO - успешно

Программами:
AVRDUDE Prog - успешно
SinaProg 2.1 - успешно

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

Заранее спасибо
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Attiny13 прошивается, но не работает

Сообщение Starichok51 »

eduard_7 писал(а):посоветуйте что можно сделать.
показать свой исходный текст.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
eduard_7
Родился
Сообщения: 7
Зарегистрирован: Вс авг 11, 2024 13:07:59

Re: Attiny13 прошивается, но не работает

Сообщение eduard_7 »

eduard_7 писал(а):посоветуйте что можно сделать.
показать свой исходный текст.


Какой файл прицепить? Программа написана на C в Atmel Studio.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Attiny13 прошивается, но не работает

Сообщение Martian »

Полагаю, что все файлы, если, конечно, Вы не написали всё в одном.
metan
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Ср янв 06, 2010 10:01:46

Re: Attiny13 прошивается, но не работает

Сообщение metan »

Насколько я понимаю, маловероятно, что исходник что-то даст. Пассажир же уверяет, что симуляция норм.
Нужна еще схема всего устройства и желательно его фото, и разумеется описание, что и как должно работать, и как именно не работает. Ждать ответа при исходных данных, которые дадены, нелепо. Причин может быть огромное количество.
Еще можно посоветовать проверить хотя бы сам чип, залив в него простейший блинк, чтобы удостовериться хотя бы в исправности используемых линий портов.
Аватара пользователя
Mursik
Мудрый кот
Сообщения: 1762
Зарегистрирован: Вт мар 28, 2023 21:17:15
Откуда: Universe

Re: Attiny13 прошивается, но не работает

Сообщение Mursik »

ИМХО, опять фузы не туда..
I have a dream...¯\_(ツ)_/¯
eduard_7
Родился
Сообщения: 7
Зарегистрирован: Вс авг 11, 2024 13:07:59

Re: Attiny13 прошивается, но не работает

Сообщение eduard_7 »

Прицепил файлы.
Мигалка (blink) на чипе работает. Как и симулятор в протеусе по прикрепленной схеме с HEX из папки Debug
Вложения
Attiny13_polyv_sxema_test.pdf
(13.89 КБ) 128 скачиваний
Attiny13_POLIV.rar
(223.21 КБ) 110 скачиваний
codenamehawk
Вымогатель припоя
Сообщения: 527
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Attiny13 прошивается, но не работает

Сообщение codenamehawk »

eduard_7 писал(а):Симуляция проходит корректно в Proteus.


Я не вижу нормальной работы.

Опишите, что происходит после asm("sleep");// уход в сон

Добавлено after 1 hour 14 minutes 50 seconds:

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

// основной отсчет времени
ISR (WDT_vect) {
   if(period_time_out) period_time_out--;
   if(work_time_out) work_time_out--;
   WDTCR |= (1<<WDTIE); // разрешаем прерывания по ватчдогу. Иначе будет резет.
}

Если попали в прерывание, то оно уже разрешено (в прерывании, обычно, запрещены прерывания, ну оно(прерывание) будет разрешено после выхода из прерывания), так что WDTCR |= (1<<WDTIE); не имеет смысла.
Тут возможно надо сбросить флаг, типа мы обработали прерывание WDT и не надо проц. сбрасывать.
OKF
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Attiny13 прошивается, но не работает

Сообщение OKF »

Я не вижу нормальной работы.

Опишите, что происходит после asm("sleep");// уход в сон

Не буду говорить о сне, но с WDT у меня были проблемы в Протеусе. Приходилось проверять в железе.(
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Attiny13 прошивается, но не работает

Сообщение Martian »

Опишите, что происходит после asm("sleep");// уход в сон
я тоже не увидел декабриста
eduard_7
Родился
Сообщения: 7
Зарегистрирован: Вс авг 11, 2024 13:07:59

Re: Attiny13 прошивается, но не работает

Сообщение eduard_7 »

eduard_7 писал(а):Симуляция проходит корректно в Proteus.


Я не вижу нормальной работы.

Опишите, что происходит после asm("sleep");// уход в сон

Добавлено after 1 hour 14 minutes 50 seconds:

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

// основной отсчет времени
ISR (WDT_vect) {
   if(period_time_out) period_time_out--;
   if(work_time_out) work_time_out--;
   WDTCR |= (1<<WDTIE); // разрешаем прерывания по ватчдогу. Иначе будет резет.
}

Если попали в прерывание, то оно уже разрешено (в прерывании, обычно, запрещены прерывания, ну оно(прерывание) будет разрешено после выхода из прерывания), так что WDTCR |= (1<<WDTIE); не имеет смысла.
Тут возможно надо сбросить флаг, типа мы обработали прерывание WDT и не надо проц. сбрасывать.


Касательно вопроса WDTCR |= (1<<WDTIE) думаю ответ в DS (прикрепил)
Опять же, я до глубоко разбора алгоритма не дошел. Решил пока запустить чип и начать разбираться и подстраивать под свои цели. Убедившись, что протеус прекрасно отсимулировал, со спокойной совестью перешел к прошивке. При подаче питания, на пару секунд загораеся led POMPA и все. Никакой реакции на кнопку.

Мне интересно, если кто-то уже успел собрать, тоже такая реакция после прошивки?
Вложения
Watchdog timer.jpg
(214.41 КБ) 88 скачиваний
codenamehawk
Вымогатель припоя
Сообщения: 527
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Attiny13 прошивается, но не работает

Сообщение codenamehawk »

eduard_7 писал(а):Убедившись, что протеус прекрасно отсимулировал

Вы не ответили на вопрос
codenamehawk писал(а):Опишите, что происходит после asm("sleep");

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

Martian писал(а):я тоже не увидел декабриста

"Видишь суслика? - Нет - И я не вижу. А он есть."
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Attiny13 прошивается, но не работает

Сообщение Martian »

codenamehawk писал(а):В отладчике она ведет себя так, как вы задумали?
кто умеет пользоваться отладчиком, не задает таких вопросов. ИМХО, конечно.

Добавлено after 13 minutes 15 seconds:
Я бы на Reset конденсатор прилепил бы. С одним только резистором нет гарантии, что при подаче/сбое питания проинициализируется всё не кашей. Хотя, конечно, можно на BOR/POR рассчитывать...
И инициализацию порта сделал бы полностью, с указанием кнопки, а то вот это вот:
DDRB|=(1<<LED) | (1<<POMPA);
не ахти, потому что к возможному мусору в DDRB добавляет две единички.
Убрать хотя бы |

Добавлено after 4 minutes 55 seconds:
Похоже, я догадался: здесь ватчдог будит :shock:
codenamehawk
Вымогатель припоя
Сообщения: 527
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Attiny13 прошивается, но не работает

Сообщение codenamehawk »

Martian писал(а):Похоже, я догадался: здесь ватчдог будит

Похоже, что увидели суслика.
Вот только проблема, после срабатывания прерывания собаки, проц уходит в ресет и обнуляет и по новой инициализирует переменную задержки. Я вообще не увидел настройку собаки до команды sei.

eduard_7 писал(а):Касательно вопроса WDTCR |= (1<<WDTIE) думаю ответ в DS (прикрепил)

Если то, что подчеркнуто красным, то не попали.

Что поменять в железе потом, когда нормально заработает в протеусе.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Attiny13 прошивается, но не работает

Сообщение Martian »

проц уходит в ресет и обнуляет
да, я тоже так подумал, но, оказывается, можно и без сброса: https://we.easyelectronics.ru/AVR/avr-p ... -spat.html
Watchdog Interrupt — отдельный асинхронный таймер. Для упрощения я его не показывал на фрагменте схемы 6.1, хотя он там есть. Он ни от чего не зависит и тикает себе с невысокой частотой. В принципе, его можно использовать как дополнительный таймер. Например, выставить на 2 секунды, проснуться, отряхнуться, оглядеться, если ничего подозрительного не произошло, то заснуть опять.

Честно говоря, никогда не рассматривал ватчдог как будильник из сна.
codenamehawk
Вымогатель припоя
Сообщения: 527
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Attiny13 прошивается, но не работает

Сообщение codenamehawk »

Martian писал(а): но, оказывается, можно и без сброса

Так у ТС не можно, а нужно без сброса.
А настроек нет и самое интересное
eduard_7 писал(а):Убедившись, что протеус прекрасно отсимулировал, со спокойной совестью перешел к прошивке.

что ТС отсимулировал?
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Attiny13 прошивается, но не работает

Сообщение Martian »

Значит, надо поправить запуск инициализации ватчдога.
eduard_7
Родился
Сообщения: 7
Зарегистрирован: Вс авг 11, 2024 13:07:59

Re: Attiny13 прошивается, но не работает

Сообщение eduard_7 »

Я только в процессе изучения МК. Учусь на роликах в YouTube на канале уважаемого мной Андрея Фролова (Andrey Frolov). Ролик называется Автомат полива комнатных растений на Attiny13
Перед тем, как обратится на форум, естественно написал Андрею, но к сожалению ответа пока неполучил.
Надеюсь, что просмотрев ролик у форума прояснятся многие вопросы и можно будет продвинутся к пониманию проблемы.

Спасибо
codenamehawk
Вымогатель припоя
Сообщения: 527
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Attiny13 прошивается, но не работает

Сообщение codenamehawk »

Martian писал(а):Значит, надо поправить запуск инициализации ватчдога.

А если посмотреть листиг программы, то можно увидеть много интересного.

Просто ТС не достаточно внимательно скопипастил и не желает отвечать на заданные вопросы.

Добавлено after 35 minutes 24 seconds:
codenamehawk писал(а):Просто ТС не достаточно внимательно скопипастил

А может и правильно скопировал.

Только я ожидаю увидеть настройку собаки до вызова разрешения прерываний.
codenamehawk
Вымогатель припоя
Сообщения: 527
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Attiny13 прошивается, но не работает

Сообщение codenamehawk »

Есть два режима работы собаки Interrupt Mode или Interrupt and System Reset
Mode
В коде используется второй режим.
Untitled.png
(34.13 КБ) 82 скачивания

"Это полезно для обеспечения безопасности сторожевого таймера при использовании прерывания. Чтобы остаться в Интер-
rupt и System Reset Mode, WDTIE необходимо устанавливать после каждого прерывания. Однако это не должно
выполняться внутри самой процедуры обслуживания прерываний, так как это может поставить под угрозу функцию безопасности
режим сброса системы Watchdog
. Если прерывание не будет выполнено до истечения следующего тайм-аута,
Будет применен сброс системы."

Как заставить работать в режиме Interrupt Mode я знаю, а вот как в Interrupt and System Reset пока не нашел.

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

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

// //для тестов в протеусе
// void wdt_on(void){
//    WDTCR |= (1<<WDCE) | (1<<WDE);
//    WDTCR = (1<<WDTIE) | (1<<WDP2) | (1<<WDP1); // заводим вачдог на 1 секунд
// }



Я бы добавил конденсатор на 0.1 мкф параллельно кнопке, вполне возможно, что прав
Mursik писал(а):ИМХО, опять фузы не туда..

ТС считайте Fuses с проца и покажите. Возможно не правильно выставлен WDTON.
Ответить

Вернуться в «AVR»