|
Покритикуйте алгоритм включения и выключения устройства на AVR |
|
|
|
Mar 29 2011, 09:21
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Господа, есть некое устройство на АТМега, управляющее TFT-дисплеем с тачпанелью и небольшим набором периферии. Подключено к автомобильному аккумулятору постоянно. А значит нужно предусмотреть включение и выкючение устройства. При всем изяществе конструкции, наличии тачпанели слишком жалко будет смотреться механический переключатель для коммутации. Хочется выключать устройство нажав виртуальную кнопку на тачпанели, а включать простым прикосновением к экрану. А посему возникла такая идея: Контроллер управляет дисплеем через специальную плату (если кому интересно TFT-компаньон) Эта плата умеет выходить в режим пониженного потребления и понимает в нем только две команды - выход из режима пониженного энергопотребления и опрос тачпанели. Я планирую по нажатии на виртуальную кнопку на экране переводить его в PowerDown. Затем переводть в PowerDown (именно в этот режим) и сам AVR. Как включать? Предварительно - настроить WatchDog на 1 сек и на генерацию прерывания по переполнению. В прерывании опрашивать тачпанель и если было прикосновение - можно просыпаться. Однако получается следующее - при выключении всего устройства мы его на самом деле не выключаем, а переводим в спящий режим, и при включении оказываемся на том же месте. Хотелось бы перезагрузить и контроллер. А для этого хочу попробовать следующее - если при обработке прерывания от сорожевого таймера выяснится что к тачпанели прикасались - перенастраивать таймер на сброс контроллера и более короткий период (самый короткий 16 мс). После чего ждать следующего переполнения таймера.
Пока не пробовал, идею сочинял на работе, попробую только дома.
Вопросы: 1. Довольно странный алгоритм получился - при выключении устройство на самом деле просто останавливается, а истинная его перезагрузка происходит только при включении. Хотя на самом деле ввсе выглядит благористойно (забыл сказать - в режиме PowerDown TFT компаньон не только меньше жрет, но и подсветку отключает). Может есть какие-то более адекватные истрически сложившиеся алгоритмы? 2. Есть ли какой-то иной способ программного сброса AVR? Цеплять какой-нибудь выход на RESET не предлагайте, плата сделана и детали напаяны. 3. Не происходит ли чего нехорошего с портами ввода вывода в режиме PowerDown АВР? Нужно чтобы пины оставались в том же состоянии. Спасибо.
Сообщение отредактировал zheka - Mar 29 2011, 09:22
|
|
|
|
|
 |
Ответов
|
Mar 29 2011, 17:22
|

Частый гость
 
Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618

|
Цитата(zheka @ Mar 29 2011, 11:21)  Однако получается следующее - при выключении всего устройства мы его на самом деле не выключаем, а переводим в спящий режим, и при включении оказываемся на том же месте. Хотелось бы перезагрузить и контроллер. Объясните необходимость сброса проца. По идее перезагрузка не нужна, если проц. повиснит его сбросит вачдог. Для надежности поставьте внешний супервизор по питанию. Если все же видите необходимость повысить надежность, после выхода из сна(при касании тачскрина) запустите принудительную инициализацию важных данных. Хотя самый простой метод "JMP 0"
Сообщение отредактировал Marian - Mar 29 2011, 17:24
|
|
|
|
Сообщений в этой теме
zheka Покритикуйте алгоритм включения и выключения устройства на AVR Mar 29 2011, 09:21 forever_student Цитата(zheka @ Mar 29 2011, 13:21) ...
2.... Mar 29 2011, 09:53 zheka Извните, ассемблера не знаю. Пишу на С.
Но даже гл... Mar 29 2011, 10:38 forever_student Цитата(zheka @ Mar 29 2011, 14:38) Извнит... Mar 29 2011, 10:45 ILYAUL Цитата(zheka @ Mar 29 2011, 14:38) Но даж... Mar 29 2011, 18:27  aaarrr Цитата(ILYAUL @ Mar 29 2011, 22:27) Интер... Mar 29 2011, 20:05   ILYAUL Цитата(aaarrr @ Mar 30 2011, 00:05) Помим... Mar 29 2011, 20:34    aaarrr Цитата(ILYAUL @ Mar 30 2011, 00:34) Как б... Mar 29 2011, 20:44     ILYAUL Цитата(aaarrr @ Mar 30 2011, 00:44) Скажи... Mar 30 2011, 09:57 zheka Спасибо за совет, но я все же предпочту для переза... Mar 29 2011, 10:49 _Pasha Дык все тривиально, не о чем переживать. Первый по... Mar 29 2011, 11:28 SysRq Теоретически, можно перезагрузить МК тоже. На стар... Mar 29 2011, 15:55 coolbassnik Есть идея заставить МК ресетить самого себя железн... Mar 29 2011, 17:30 _Pasha Цитата(coolbassnik @ Mar 29 2011, 20:30) ... Mar 29 2011, 17:33 IgorKossak Цитата(coolbassnik @ Mar 29 2011, 20:30) ... Mar 29 2011, 17:39 zombi Цитата(zheka @ Mar 29 2011, 13:21) Предва... Mar 29 2011, 20:24 Atridies Я не сильно знаю Атмегу, но на MSP430 я делал сбро... Mar 29 2011, 20:56 aaarrr Вот и попались. Логика USART'а сброшена не буд... Mar 30 2011, 10:45 forever_student Цитата(aaarrr @ Mar 30 2011, 14:45) ...Ло... Mar 30 2011, 11:04  aaarrr Цитата(forever_student @ Mar 30 2011, 15... Mar 30 2011, 12:32   forever_student Цитата(aaarrr @ Mar 30 2011, 16:32) ...Вы... Mar 30 2011, 13:22    aaarrr Цитата(forever_student @ Mar 30 2011, 17... Mar 30 2011, 13:33     forever_student Цитата(aaarrr @ Mar 30 2011, 17:33) Возмо... Mar 30 2011, 13:45 defunct Цитата(aaarrr @ Mar 30 2011, 12:45) Тоже ... Mar 30 2011, 13:51 ILYAUL Цитата(aaarrr @ Mar 30 2011, 14:45) Логик... Mar 31 2011, 11:38  aaarrr Цитата(ILYAUL @ Mar 31 2011, 15:38) Не по... Mar 31 2011, 11:54   ILYAUL Цитата(aaarrr @ Mar 31 2011, 15:54) Тольк... Mar 31 2011, 12:11 zheka Господа, необходимость железного сброса продиктова... Mar 30 2011, 15:04 aaarrr Ну а собственно sleep где? Mar 30 2011, 16:08 zheka КодНу а собственно sleep где?
Да уже исправил. Вс... Mar 30 2011, 16:48 zheka Так... работаю со сторожевым таймером...
Господа о... Mar 30 2011, 19:05 forever_student Цитата(zheka @ Mar 30 2011, 23:05) ...Сут... Mar 30 2011, 20:02 zheka Хм.. я обошелся вообще без флажка для WDT. В смысл... Mar 31 2011, 12:56 ILYAUL Цитата(zheka @ Mar 31 2011, 16:56) КРоме ... Mar 31 2011, 13:02  defunct Цитата(ILYAUL @ Mar 31 2011, 16:02) Это к... Mar 31 2011, 16:36   ILYAUL Цитата(defunct @ Mar 31 2011, 20:36) Наве... Mar 31 2011, 17:51 zombi Цитата(zheka @ Mar 31 2011, 16:56) КРоме ... Mar 31 2011, 22:12 zheka defunct, именно так.
Дело в том, что питание будет... Mar 31 2011, 18:04 ILYAUL Может 0,5 сек опрос Mar 31 2011, 19:30 zheka Так ведь он разрешен или я чего-то не понимаю...
В... Apr 1 2011, 06:02 zombi Цитата(zheka @ Apr 1 2011, 10:02) Так вед... Apr 1 2011, 08:18
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|