реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Помогите- пару глобальных вопросов!, ATmega48 и др. mc
djmixi(Димка)
сообщение Feb 14 2007, 08:36
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 75
Регистрация: 13-02-07
Пользователь №: 25 307



Господа, помогите разобраться со следующими вопросами:
1 Правильность выбора RC цепочки сброса (у меня 20 Мгц на mega48 стоит 2к к + и 10n к -, на сколько это верно).

2 В доке на Megu48 указан внешний кондер для использования внутреннего опорного напряжения или при использовании AVCC в качестве опорного ("...with external capacitor at AREF pin") какой он должен стоять я предполагаю что в районе 100n?

3 Не могу понять (опыта мало в этом Sleepe!) как он работает... я настраиваю MCU биты в ADCNOISEREDUCTION разрешаю переход в слип, далее после настройке АЦП пишу SLEEP, но он засыпает и не просыпается... что я делаю не так... по идеи он должен просыпаться после завершения преобразования....
Go to the top of the page
 
+Quote Post
kada
сообщение Feb 14 2007, 11:17
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 23-05-05
Из: Ташкент
Пользователь №: 5 324



Все по порядку.

Цитата(djmixi(Димка) @ Feb 14 2007, 10:36) *
Господа, помогите разобраться со следующими вопросами:
1 Правильность выбора RC цепочки сброса (у меня 20 Мгц на mega48 стоит 2к к + и 10n к -, на сколько это верно).

Смотрим DS страница 47:
Код
9.4 External Reset
An External Reset is generated by a low level on the RESET pin. Reset pulses longer than the
minimum pulse width (see ”System and Reset Characteristics” on page 306) will generate a
reset, even if the clock is not running. Shorter pulses are not guaranteed to generate a reset.
When the applied signal reaches the Reset Threshold Voltage – VRST – on its positive edge, the
delay counter starts the MCU after the Time-out period – tTOUT – has expired. The External Reset
can be disabled by the RSTDISBL fuse, see Table 26-6 on page 286.

Смотрим таблицу на стр. 306 (прикрепил). Исходя из tRST и VRST подбираем номиналы RC-цепи.

Цитата(djmixi(Димка) @ Feb 14 2007, 10:36) *
2 В доке на Megu48 указан внешний кондер для использования внутреннего опорного напряжения или при использовании AVCC в качестве опорного ("...with external capacitor at AREF pin") какой он должен стоять я предполагаю что в районе 100n?

Верно в большинстве случаев. Но еще нужно знать об уровне пульсаций AVCC.

Цитата(djmixi(Димка) @ Feb 14 2007, 10:36) *
3 Не могу понять (опыта мало в этом Sleepe!) как он работает... я настраиваю MCU биты в ADCNOISEREDUCTION разрешаю переход в слип, далее после настройке АЦП пишу SLEEP, но он засыпает и не просыпается... что я делаю не так... по идеи он должен просыпаться после завершения преобразования....

Стр. 249. Обратите внимание на пункт C. Все должно работать. Прерывание ADC Conversion Complete разрешили?
Код
22.6 ADC Noise Canceler
The ADC features a noise canceler that enables conversion during sleep mode to reduce noise
induced from the CPU core and other I/O peripherals. The noise canceler can be used with ADC
Noise Reduction and Idle mode. To make use of this feature, the following procedure should be
used:
a. Make sure that the ADC is enabled and is not busy converting. Single Conversion
mode must be selected and the ADC conversion complete interrupt must be enabled.
b. Enter ADC Noise Reduction mode (or Idle mode). The ADC will start a conversion
once the CPU has been halted.
c. If no other interrupts occur before the ADC conversion completes, the ADC interrupt
will wake up the CPU and execute the ADC Conversion Complete interrupt routine. If
another interrupt wakes up the CPU before the ADC conversion is complete, that
interrupt will be executed, and an ADC Conversion Complete interrupt request will be
generated when the ADC conversion completes. The CPU will remain in active mode
until a new sleep command is executed.
Note that the ADC will not be automatically turned off when entering other sleep modes than Idle
mode and ADC Noise Reduction mode. The user is advised to write zero to ADEN before entering
such sleep modes to avoid excessive power consumption.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 14 2007, 11:31
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
1 Правильность выбора RC цепочки сброса (у меня 20 Мгц на mega48 стоит 2к к + и 10n к -, на сколько это верно).

У мега48, да и у всех остальнвх ресет внутренний, а 2к+10н - это RC фильтр чтоб помехи на висящую ногу не попадали... а внешний ресет делают, обычно, генератором ресета, а не RC.

Цитата
2 В доке на Megu48 указан внешний кондер для использования внутреннего опорного напряжения или при использовании AVCC в качестве опорного ("...with external capacitor at AREF pin") какой он должен стоять я предполагаю что в районе 100n?

здесь кондер тоже используется для фильтрации напряжения опоры, выбор его определяется помеховой обстановкой на плате..

Цитата
3 Не могу понять (опыта мало в этом Sleepe!) как он работает... я настраиваю MCU биты в ADCNOISEREDUCTION разрешаю переход в слип, далее после настройке АЦП пишу SLEEP, но он засыпает и не просыпается... что я делаю не так... по идеи он должен просыпаться после завершения преобразования....

тут надо бы привести ваш стартап код.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
kada
сообщение Feb 14 2007, 11:50
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 23-05-05
Из: Ташкент
Пользователь №: 5 324



Цитата(GDI @ Feb 14 2007, 13:31) *
У мега48, да и у всех остальнвх ресет внутренний, а 2к+10н - это RC фильтр чтоб помехи на висящую ногу не попадали... а внешний ресет делают, обычно, генератором ресета, а не RC.
[


RC-цепочка и есть в этом случае внешняя схема сброса. А обусловленность выбора внешней схемы сброса видимо известна только автору топика.
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 14 2007, 12:12
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
RC-цепочка и есть в этом случае внешняя схема сброса.

Если это так, то здесь и может скрываться проблема... постоянная времени этой цепи будет 2мкс при напряжении 0,5Vcc. А из даташита на мега48 длительность ресета должна составлять БОЛЬШЕ 2.5мкс причем напряжение порога задано от 0,2Vcc до 0.9Vcc, т.е. это на грани... Вывод: надо увеличить постоянную времени, вообще то я обычно ставлю цепь 10к + 100нан и никаких проблем с ресетом не имею.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Esc
сообщение Feb 14 2007, 20:05
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 7-04-06
Пользователь №: 15 906



Цитата(GDI @ Feb 14 2007, 16:12) *
... вообще то я обычно ставлю цепь 10к + 100нан и никаких проблем с ресетом не имею.

А как быть если батарейное питание и надо экономить? Внутреннего Pull-up Resistor'а не достаточно?
Go to the top of the page
 
+Quote Post
djmixi(Димка)
сообщение Feb 15 2007, 11:25
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 75
Регистрация: 13-02-07
Пользователь №: 25 307



RC используеют не как фильтр как я понимаю а как именно ресет... а пост времени R(2000)*C(10EXP-9)=20 мкс больше 2,5 мкс или я не так считаю?
И еще пару вопросов:
1. Если порты не используются вообще то как я вычитал их не нужно никуда подсоединять но их нужно настроить на вывод и подтянуть на них ПУЛАПы, кто как счиатет?

2. КНОПКИ! у меня след подход к ним рассудите его пожалуяста: кнопка одним концом висит на земле. Другой если она нажата подсоединяется к ПОРТУ МС. Порт настроен на ввод и подключен ПУЛАП, то есть пока на порте нет земли(кн не нажата) на порту за счет ПУЛАП есть1 а когда нажата то на порт приходит ЗЕМЛЯ. Дребезг отрабатываю программно (опрашиваю кнопки не чаще 1раза в 20 мс). Кто как считает поделтесь опытом - я видел схемы где исп диоды резисторы... нужно ли это? (PS-я только начинающий инженер!)
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 15 2007, 12:19
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
А как быть если батарейное питание и надо экономить? Внутреннего Pull-up Resistor'а не достаточно?

Достаточно
Цитата
RC используеют не как фильтр как я понимаю а как именно ресет... а пост времени R(2000)*C(10EXP-9)=20 мкс больше 2,5 мкс или я не так считаю?

Да тут я с расчетами ошибся, но эта цепь ИМЕННО фильтр...можно просто вывод ресет к питанию подключить через резистор. Такая цепь сброса только с конденсатором 4-10мкФ была в х51

с 1 и 2 пунктами я согласен... я так и делал в свое время.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Feb 15 2007, 12:27
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(djmixi(Димка) @ Feb 15 2007, 11:25) *
RC используеют не как фильтр как я понимаю а как именно ресет... а пост времени R(2000)*C(10EXP-9)=20 мкс больше 2,5 мкс или я не так считаю?
И еще пару вопросов:
1. Если порты не используются вообще то как я вычитал их не нужно никуда подсоединять но их нужно настроить на вывод и подтянуть на них ПУЛАПы, кто как счиатет?

2. КНОПКИ! у меня след подход к ним рассудите его пожалуяста: кнопка одним концом висит на земле. Другой если она нажата подсоединяется к ПОРТУ МС. Порт настроен на ввод и подключен ПУЛАП, то есть пока на порте нет земли(кн не нажата) на порту за счет ПУЛАП есть1 а когда нажата то на порт приходит ЗЕМЛЯ. Дребезг отрабатываю программно (опрашиваю кнопки не чаще 1раза в 20 мс). Кто как считает поделтесь опытом - я видел схемы где исп диоды резисторы... нужно ли это? (PS-я только начинающий инженер!)

1. Все правильно.
2. Я ставлю диоды в случаях, когда кнопки сделаны в виде матрицы, для защиты выходов от короткого замыкания при одновременном нажатии нескольких кнопок. Дребезг устраняю аппаратно-программно путем опроса клавиатуры с интервалом 20-30 мс.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 15 2007, 12:28
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(djmixi(Димка) @ Feb 15 2007, 10:25) *
я видел схемы где исп диоды резисторы... нужно ли это?
Обычно такое решение используют если кнопки включены в матрицу, чтобы при замыкании двух кнопок одновременно избежать замыкания сканирующих линий (настроенных на вывод) и при этом иметь возможность определять все одновременно нажатые кнопки.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Feb 15 2007, 14:52
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(_Bill @ Feb 15 2007, 13:27) *
Цитата(djmixi(Димка) @ Feb 15 2007, 11:25) *

RC используеют не как фильтр как я понимаю а как именно ресет... а пост времени R(2000)*C(10EXP-9)=20 мкс больше 2,5 мкс или я не так считаю?
И еще пару вопросов:
1. Если порты не используются вообще то как я вычитал их не нужно никуда подсоединять но их нужно настроить на вывод и подтянуть на них ПУЛАПы, кто как счиатет?

2. КНОПКИ! у меня след подход к ним рассудите его пожалуяста: кнопка одним концом висит на земле. Другой если она нажата подсоединяется к ПОРТУ МС. Порт настроен на ввод и подключен ПУЛАП, то есть пока на порте нет земли(кн не нажата) на порту за счет ПУЛАП есть1 а когда нажата то на порт приходит ЗЕМЛЯ. Дребезг отрабатываю программно (опрашиваю кнопки не чаще 1раза в 20 мс). Кто как считает поделтесь опытом - я видел схемы где исп диоды резисторы... нужно ли это? (PS-я только начинающий инженер!)

1. Все правильно.
2. Я ставлю диоды в случаях, когда кнопки сделаны в виде матрицы, для защиты выходов от короткого замыкания при одновременном нажатии нескольких кнопок. Дребезг устраняю аппаратно-программно путем опроса клавиатуры с интервалом 20-30 мс.


Я реализую гашение дребезга более сложным способом.
1) Вводится понятие задержек на нажатие и на отпускание.
2) Опрос (пусть будет 20мс)

Клавиша считается нажатой если более 4 (задержка на нажатие) периодов опроса является нажатой. После того, как она нажата требуется не менее 3(задержка на отпускание) периодов является отпущенной.

Такую программу я применил когда-то давно при разработке телефонного аппарата (точнее почти тел. аппарата). Более простые алгоритмы приводили к проблемам, а соответственно раздражали. Конечно надо учитывать, что в тел. аппарате клавиши очень серьёзно задействованы. В простом приборе можно и упростить. Правда единожды написанное - остаётся с тобой навсегда. smile.gif
Go to the top of the page
 
+Quote Post
_Bill
сообщение Feb 15 2007, 15:12
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(SasaVitebsk @ Feb 15 2007, 14:52) *
Я реализую гашение дребезга более сложным способом.
1) Вводится понятие задержек на нажатие и на отпускание.
2) Опрос (пусть будет 20мс)

Клавиша считается нажатой если более 4 (задержка на нажатие) периодов опроса является нажатой. После того, как она нажата требуется не менее 3(задержка на отпускание) периодов является отпущенной.

Такую программу я применил когда-то давно при разработке телефонного аппарата (точнее почти тел. аппарата). Более простые алгоритмы приводили к проблемам, а соответственно раздражали. Конечно надо учитывать, что в тел. аппарате клавиши очень серьёзно задействованы. В простом приборе можно и упростить. Правда единожды написанное - остаётся с тобой навсегда. smile.gif

А зачем делать задержку на отпускание? Могу добавить, что у меня имеется дополнительная функция автоповтора. Т.е. фиксируется нажатие кнопки и включается счетчик задержки, если через заданное время кнопка не отпущена, то включается счетчик автоповтора. В этом случае коды будут выдаваться через заданный интервал до тех пор, пока кнопка нажата.
Go to the top of the page
 
+Quote Post
Esc
сообщение Feb 16 2007, 08:57
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 7-04-06
Пользователь №: 15 906



Цитата(djmixi(Димка) @ Feb 15 2007, 15:25) *
1. Если порты не используются вообще то как я вычитал их не нужно никуда подсоединять но их нужно настроить на вывод и подтянуть на них ПУЛАПы, кто как счиатет?

Не пойму почему их нельзя оставить в Hi-Z состоянии.
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 16 2007, 11:06
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
Не пойму почему их нельзя оставить в Hi-Z состоянии.

Помехи будет ловить, т.к. подтяжка до 100кОм бывает, по-этому лучше сделать выходом и либо 0, либо 1 вывести на него. В принципе, если устройство не очень ответственное и уровень помех невелик, то можно сделать как вход с подтяжкой, но могут быть и глюки при этом.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Feb 16 2007, 11:15
Сообщение #15


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



По поводу внешних ресетов. В АВР ресет при включеннии питания происходит от модуля POR, RC-цепочка на входе reset для гашения импульсных помех. Читать AVR042
http://atmel.com/dyn/resources/prod_documents/doc2521.pdf

Время 51, 8080 и RC-цепочек ресета закончилось уже.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01512 секунд с 7
ELECTRONIX ©2004-2016