Мелкие вопросы по МК и ПЛИС.
Re: Мелкие вопросы по МК и ПЛИС.
Добрый вечер!!!
Помогите с такой задачей. Есть МК атмега8. Нужно сделать так, чтобы при отключении питания МК сохранял некие переменные в EEPROM. Есть мысль подтянуть ногу к питанию через резистивный делитель и задействовать в цифровом режиме. Там есть определённый барьер (вроде около 1.5В) ниже которого лежит низкий уровень, а выше, соответственно высокий. Задумка такая, что при падения напряжения питания с 5В, скажем, до 3 напряжение на делители уменьшится и пин распознает низкий уровень, по появлении которого МК и будет записывать данные в EEPROM. Есть только сомнения, в плане того, что при падении напряжения питания может упасть и "восприимчивость" порта к порогу, который может тоже снижаться до тех пор, пока МК не отрубится. Подскажите пожалуйста, как лучше реализовать такую задачу?
Помогите с такой задачей. Есть МК атмега8. Нужно сделать так, чтобы при отключении питания МК сохранял некие переменные в EEPROM. Есть мысль подтянуть ногу к питанию через резистивный делитель и задействовать в цифровом режиме. Там есть определённый барьер (вроде около 1.5В) ниже которого лежит низкий уровень, а выше, соответственно высокий. Задумка такая, что при падения напряжения питания с 5В, скажем, до 3 напряжение на делители уменьшится и пин распознает низкий уровень, по появлении которого МК и будет записывать данные в EEPROM. Есть только сомнения, в плане того, что при падении напряжения питания может упасть и "восприимчивость" порта к порогу, который может тоже снижаться до тех пор, пока МК не отрубится. Подскажите пожалуйста, как лучше реализовать такую задачу?
Re: Мелкие вопросы по МК и ПЛИС.
Была ветка, на эту тему. Вкратце, нужно отдельное питание МК с электролитическим конденсатором по питанию, емкостью несколько сотен микрофарад - рассчитывается для количества байтов, которые надо сохранить. Пропадание питания смотреть или цифровой ножкой, но подключенной через делитель к другой части схемы, в которой напряжение проседает быстрее, или аналоговым компаратором подключенным вторым входом к внутреннему ИОН. Так вполне реально сохранять несколько байтов. Обязательно предпринять обычные жесткие меры для сохранности ЕЕПРОМ, например включить БОД.
Re: Мелкие вопросы по МК и ПЛИС.
А может диод после делителя поставить, чтоб напряжение просело побольше?
Re: Мелкие вопросы по МК и ПЛИС.
Нет.
viewtopic.php?f=20&t=62877
Вот, кстати, ветка с обсуждением, хотя там были споры, т.к. каждый привык делать по-своему.
viewtopic.php?f=20&t=62877
Вот, кстати, ветка с обсуждением, хотя там были споры, т.к. каждый привык делать по-своему.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Питание на контроллер подать через диод и обязательно конденсатор в питании. Свободный вывод порта повесить через резистор на незащищенную цепь питания - до диода, при его пропадании срабатывает прерывание по уровню на порту, в прерывании экстренно отключаешь все нагрузки контроллера(светодиоды например) - иначе через них преждевременно разрядится конденсатор. Это буквально 10-20 тактов, затем можно сохранять в ЕЕПРОМ и уходить в бесконечный цикл.
А по сбросу контроллера, прежде чем разрешить прерывания - перевести вывод в режим входа и дождаться там "1", чтобы предотвратить ситуацию когда в процессе выключения контроллер случайно сбросится и на остатках конденсатора попытается сохранить в EEPROM еще раз, естественно испортив значение в ячейке.
А по сбросу контроллера, прежде чем разрешить прерывания - перевести вывод в режим входа и дождаться там "1", чтобы предотвратить ситуацию когда в процессе выключения контроллер случайно сбросится и на остатках конденсатора попытается сохранить в EEPROM еще раз, естественно испортив значение в ячейке.
Re: Мелкие вопросы по МК и ПЛИС.
Попробовал смодулировать в протеусе. Получилось весьма не плохо, при подении напряжения до 4В даже простой делитель на резисторах дал не плохой эффект. Напряжение питания у меня 5В, ёмкость 1000мкФ, потребляемый ток около 250мА, записать нужно всего 5 переменных в int. Вроде должно и так получится. Сделал ещё после записи вывод сообщения на дисплей. Потом на железяке попробую как себя покажет. Если ещё успею прочитать сообщение с дисплея, то значит работать будет как часы... 
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
250мА - это ток идущий через шины контроллера? Всю силовую часть надо оставить до диода либо при просадке напряжения и срабатывании защиты - отключить нагрузку немедленно и только после этого приступать к записи, это будет залогом нормальной работы.
Re: Мелкие вопросы по МК и ПЛИС.
Всего 250мА. Попробую пока по- простому, если не прокатит, то буду пробовать всё отключать.... Спасибо за помощь!! 
Re: Мелкие вопросы по МК и ПЛИС.
Есть желание перенести проект с ардуины на МК.
Буду использовать atmaga64.
Какая нужна к нему обвязка?
Питаться будет от usb на компьютере или телефоне/ планшете
Буду использовать atmaga64.
Какая нужна к нему обвязка?
Питаться будет от usb на компьютере или телефоне/ планшете
Re: Мелкие вопросы по МК и ПЛИС.
Всем привет, подскажите пожалуйста как можно соединить между собой 2е Atmega16? Если можно, то рисунком какие ножки соединять между собой
P.S.: у одной Атмега16 нехватает мне ножек, поэтому хочу взять 2е чтобы они могли обмениваться информацией
P.S.: у одной Атмега16 нехватает мне ножек, поэтому хочу взять 2е чтобы они могли обмениваться информацией
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
А по какому интерфейсу хотите сделать обмен ?
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Мелкие вопросы по МК и ПЛИС.
z00lu писал(а):Буду использовать atmaga64.
Какая нужна к нему обвязка?
А это зависит от того, что будет подключено к контроллеру. Сам по себе контроллер работает если на него просто подать питание. Для надежности нужен резистор 5-10к с ресета на + и керамика 0.1мкФ по питанию. Если используется внешний кварц, то соответственно кварц+конденсаторы, все это есть в даташите. Остальное зависит от вашей конкретной схемы.
Nemon писал(а):Всем привет, подскажите пожалуйста как можно соединить между собой 2е Atmega16?
UART (2 ноги: RXD-TXD крест-накрест), SPI (4 ноги:MOSI c MISO крест накрест, CLK, SS напрямую), I2C/TWI (2 ноги - SCL,SDA - напрямую)
Nemon писал(а):P.S.: у одной Атмега16 нехватает мне ножек, поэтому хочу взять 2е чтобы они могли обмениваться информацией
А вот тут уже напрашивается использование расширителей вывода вместо лишнего контроллера. Для этого проще всего использовать регистры например 74hc595 (для вывода) и 597 (для ввода) или пару HC164/165.
Re: Мелкие вопросы по МК и ПЛИС.
Я больше люблю SPI. Быстрый, простой, аппаратный. Но для односторонней передачи нужны три линии, для двусторонней - четыре.
Для большей экономии ножек могут быть лучше I2C или UART. Еще они лучше, если устройства на разных платах, т.е. расстояние между МК больше 10-15 сантиметров.
А я не против использования нескольких МК! Это более гибкое решение, чем сдвиговые регистры, но решение за разработчиком.
Для большей экономии ножек могут быть лучше I2C или UART. Еще они лучше, если устройства на разных платах, т.е. расстояние между МК больше 10-15 сантиметров.
А я не против использования нескольких МК! Это более гибкое решение, чем сдвиговые регистры, но решение за разработчиком.
Re: Мелкие вопросы по МК и ПЛИС.
Почему три линии? Достаточно SI/SO и SCK, то есть две. Для двухстороннего соответственно три: SI, SO, SCK.
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Мелкие вопросы по МК и ПЛИС.
У многих микросхем с SPI загрузка данных или выполнение команды происходит по переднему фронту и без линии CS они просто не будут работать. В той же меге в режиме слейва низкий уровень SS включает логику SPI, а высокий уровень делает ей сброс. В конкретном случае конечно можно и обойтись без нее.
Re: Мелкие вопросы по МК и ПЛИС.
Спасибо за помощь, пожалуй выберу UART
Re: Мелкие вопросы по МК и ПЛИС.
в чем может быть следующий прикол: посадил пару кнопкок на INT1 и INT0 меги16... в протеусе все идеально, а на реальном железе работает только кнопка от INT0. контакт между кнопкой и ногой INT1 есть 146%))) а прерывание не срабатывает... в чем может быть косяк?
Код: Выделить всё
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Falling Edge
// INT1: On
// INT1 Mode: Falling Edge
// INT2: Off
GICR|=0xC0;
MCUCR=0x0A;
MCUCSR=0x00;
GIFR=0xC0;
// Обработка внешнего прерывания по INT0
interrupt [EXT_INT0] void ext_int0_isr(void)
{
point_no++;
if (point_no >= menu[menu_no].count) point_no = 0;
LCD_OK();
}
// Обработка внешнего прерывания по INT1
interrupt [EXT_INT1] void ext_int1_isr(void)
{
menu_no++;
point_no = 0;
if (menu_no >= 4) menu_no = 0;
LCD_OK();
}
Re: Мелкие вопросы по МК и ПЛИС.
DDark, а SREG|=(1<<SREG_I) кто будет писать? Где настройка самого порта D (что-то вроде PORTD|=0x0C) или у вас подтяжка внешняя?
Обе кнопки с PD2 и PD3 на землю идут?
Схему в студию и полный код. Чудес не бывает.
Обе кнопки с PD2 и PD3 на землю идут?
Схему в студию и полный код. Чудес не бывает.
- НАПАЛМ
- Это не хвост, это антенна
- Сообщения: 1314
- Зарегистрирован: Пт ноя 27, 2009 19:47:13
- Откуда: Казань
Re: Мелкие вопросы по МК и ПЛИС.
Здравствуйте. Начинаю по-тихоньку изучать микроконтроллеры. Выбор пал на AVR'ы и язык С. Нужно выбрать среду разработки и программатор под неё. AVR Studio 6 подойдет для начинающего? Если нет, то какой посоветуете? Так же вопрос о программаторе, как покупном, так и самодельном (рассматриваю оба варианта). Заранее благодарю за конструктивные ответы.
Re: Мелкие вопросы по МК и ПЛИС.
GRAF писал(а):DDark, а SREG|=(1<<SREG_I) кто будет писать? Где настройка самого порта D (что-то вроде PORTD|=0x0C) или у вас подтяжка внешняя?
Обе кнопки с PD2 и PD3 на землю идут?
Схему в студию и полный код. Чудес не бывает.
глобальные прерывания разрешены, PORTD = 0x0C
обе кнопки на землю
в принципе проблема решена - если цеплять не на землю ножку INT1, а просто касаться рукой или подавать, например, напряжение питания - идет срабатывание прерывания) а вот на землю сажать - не идет, хотя прерывание по падающему фронту + подтяжка... странно короче, интересная тема