|
Помогите- пару глобальных вопросов!, ATmega48 и др. mc |
|
|
|
Feb 14 2007, 11:17
|

Частый гость
 
Группа: Свой
Сообщений: 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.
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 14 2007, 11:31
|
Профессионал
    
Группа: Свой
Сообщений: 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, но он засыпает и не просыпается... что я делаю не так... по идеи он должен просыпаться после завершения преобразования.... тут надо бы привести ваш стартап код.
--------------------
|
|
|
|
|
Feb 14 2007, 11:50
|

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

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

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

|
Цитата(GDI @ Feb 14 2007, 16:12)  ... вообще то я обычно ставлю цепь 10к + 100нан и никаких проблем с ресетом не имею. А как быть если батарейное питание и надо экономить? Внутреннего Pull-up Resistor'а не достаточно?
|
|
|
|
|
Feb 15 2007, 12:19
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Цитата А как быть если батарейное питание и надо экономить? Внутреннего Pull-up Resistor'а не достаточно? Достаточно Цитата RC используеют не как фильтр как я понимаю а как именно ресет... а пост времени R(2000)*C(10EXP-9)=20 мкс больше 2,5 мкс или я не так считаю? Да тут я с расчетами ошибся, но эта цепь ИМЕННО фильтр...можно просто вывод ресет к питанию подключить через резистор. Такая цепь сброса только с конденсатором 4-10мкФ была в х51 с 1 и 2 пунктами я согласен... я так и делал в свое время.
--------------------
|
|
|
|
|
Feb 15 2007, 12:27
|
Местный
  
Группа: Участник
Сообщений: 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 мс.
|
|
|
|
|
Feb 15 2007, 14:52
|
Гуру
     
Группа: Свой
Сообщений: 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(задержка на отпускание) периодов является отпущенной. Такую программу я применил когда-то давно при разработке телефонного аппарата (точнее почти тел. аппарата). Более простые алгоритмы приводили к проблемам, а соответственно раздражали. Конечно надо учитывать, что в тел. аппарате клавиши очень серьёзно задействованы. В простом приборе можно и упростить. Правда единожды написанное - остаётся с тобой навсегда.
|
|
|
|
|
Feb 15 2007, 15:12
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(SasaVitebsk @ Feb 15 2007, 14:52)  Я реализую гашение дребезга более сложным способом. 1) Вводится понятие задержек на нажатие и на отпускание. 2) Опрос (пусть будет 20мс) Клавиша считается нажатой если более 4 (задержка на нажатие) периодов опроса является нажатой. После того, как она нажата требуется не менее 3(задержка на отпускание) периодов является отпущенной. Такую программу я применил когда-то давно при разработке телефонного аппарата (точнее почти тел. аппарата). Более простые алгоритмы приводили к проблемам, а соответственно раздражали. Конечно надо учитывать, что в тел. аппарате клавиши очень серьёзно задействованы. В простом приборе можно и упростить. Правда единожды написанное - остаётся с тобой навсегда.  А зачем делать задержку на отпускание? Могу добавить, что у меня имеется дополнительная функция автоповтора. Т.е. фиксируется нажатие кнопки и включается счетчик задержки, если через заданное время кнопка не отпущена, то включается счетчик автоповтора. В этом случае коды будут выдаваться через заданный интервал до тех пор, пока кнопка нажата.
|
|
|
|
|
Feb 16 2007, 08:57
|
Участник

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

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