Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Добрый вечер!!!
Помогите с такой задачей. Есть МК атмега8. Нужно сделать так, чтобы при отключении питания МК сохранял некие переменные в EEPROM. Есть мысль подтянуть ногу к питанию через резистивный делитель и задействовать в цифровом режиме. Там есть определённый барьер (вроде около 1.5В) ниже которого лежит низкий уровень, а выше, соответственно высокий. Задумка такая, что при падения напряжения питания с 5В, скажем, до 3 напряжение на делители уменьшится и пин распознает низкий уровень, по появлении которого МК и будет записывать данные в EEPROM. Есть только сомнения, в плане того, что при падении напряжения питания может упасть и "восприимчивость" порта к порогу, который может тоже снижаться до тех пор, пока МК не отрубится. Подскажите пожалуйста, как лучше реализовать такую задачу?
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SmarTrunk »

Была ветка, на эту тему. Вкратце, нужно отдельное питание МК с электролитическим конденсатором по питанию, емкостью несколько сотен микрофарад - рассчитывается для количества байтов, которые надо сохранить. Пропадание питания смотреть или цифровой ножкой, но подключенной через делитель к другой части схемы, в которой напряжение проседает быстрее, или аналоговым компаратором подключенным вторым входом к внутреннему ИОН. Так вполне реально сохранять несколько байтов. Обязательно предпринять обычные жесткие меры для сохранности ЕЕПРОМ, например включить БОД.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

А может диод после делителя поставить, чтоб напряжение просело побольше?
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SmarTrunk »

Нет.

viewtopic.php?f=20&t=62877

Вот, кстати, ветка с обсуждением, хотя там были споры, т.к. каждый привык делать по-своему.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeyslav »

Питание на контроллер подать через диод и обязательно конденсатор в питании. Свободный вывод порта повесить через резистор на незащищенную цепь питания - до диода, при его пропадании срабатывает прерывание по уровню на порту, в прерывании экстренно отключаешь все нагрузки контроллера(светодиоды например) - иначе через них преждевременно разрядится конденсатор. Это буквально 10-20 тактов, затем можно сохранять в ЕЕПРОМ и уходить в бесконечный цикл.

А по сбросу контроллера, прежде чем разрешить прерывания - перевести вывод в режим входа и дождаться там "1", чтобы предотвратить ситуацию когда в процессе выключения контроллер случайно сбросится и на остатках конденсатора попытается сохранить в EEPROM еще раз, естественно испортив значение в ячейке.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Попробовал смодулировать в протеусе. Получилось весьма не плохо, при подении напряжения до 4В даже простой делитель на резисторах дал не плохой эффект. Напряжение питания у меня 5В, ёмкость 1000мкФ, потребляемый ток около 250мА, записать нужно всего 5 переменных в int. Вроде должно и так получится. Сделал ещё после записи вывод сообщения на дисплей. Потом на железяке попробую как себя покажет. Если ещё успею прочитать сообщение с дисплея, то значит работать будет как часы... :)
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeyslav »

250мА - это ток идущий через шины контроллера? Всю силовую часть надо оставить до диода либо при просадке напряжения и срабатывании защиты - отключить нагрузку немедленно и только после этого приступать к записи, это будет залогом нормальной работы.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Всего 250мА. Попробую пока по- простому, если не прокатит, то буду пробовать всё отключать.... Спасибо за помощь!! :)
z00lu
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Вт мар 12, 2013 05:25:54

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение z00lu »

Есть желание перенести проект с ардуины на МК.
Буду использовать atmaga64.
Какая нужна к нему обвязка?
Питаться будет от usb на компьютере или телефоне/ планшете
Nemon
Родился
Сообщения: 16
Зарегистрирован: Вс май 15, 2011 10:56:57

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Nemon »

Всем привет, подскажите пожалуйста как можно соединить между собой 2е Atmega16? Если можно, то рисунком какие ножки соединять между собой
P.S.: у одной Атмега16 нехватает мне ножек, поэтому хочу взять 2е чтобы они могли обмениваться информацией
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Аlex »

А по какому интерфейсу хотите сделать обмен ?
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

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.
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SmarTrunk »

Я больше люблю SPI. Быстрый, простой, аппаратный. Но для односторонней передачи нужны три линии, для двусторонней - четыре.
Для большей экономии ножек могут быть лучше I2C или UART. Еще они лучше, если устройства на разных платах, т.е. расстояние между МК больше 10-15 сантиметров.

А я не против использования нескольких МК! Это более гибкое решение, чем сдвиговые регистры, но решение за разработчиком.
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение menzoda »

Почему три линии? Достаточно SI/SO и SCK, то есть две. Для двухстороннего соответственно три: SI, SO, SCK.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

У многих микросхем с SPI загрузка данных или выполнение команды происходит по переднему фронту и без линии CS они просто не будут работать. В той же меге в режиме слейва низкий уровень SS включает логику SPI, а высокий уровень делает ей сброс. В конкретном случае конечно можно и обойтись без нее.
Nemon
Родился
Сообщения: 16
Зарегистрирован: Вс май 15, 2011 10:56:57

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Nemon »

Спасибо за помощь, пожалуй выберу UART
DDark
Открыл глаза
Сообщения: 73
Зарегистрирован: Вт июн 22, 2010 20:15:17

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DDark »

в чем может быть следующий прикол: посадил пару кнопкок на 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();
}

Аватара пользователя
GRAF
Мудрый кот
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение GRAF »

DDark, а SREG|=(1<<SREG_I) кто будет писать? Где настройка самого порта D (что-то вроде PORTD|=0x0C) или у вас подтяжка внешняя?
Обе кнопки с PD2 и PD3 на землю идут?

Схему в студию и полный код. Чудес не бывает.
Аватара пользователя
НАПАЛМ
Это не хвост, это антенна
Сообщения: 1314
Зарегистрирован: Пт ноя 27, 2009 19:47:13
Откуда: Казань

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение НАПАЛМ »

Здравствуйте. Начинаю по-тихоньку изучать микроконтроллеры. Выбор пал на AVR'ы и язык С. Нужно выбрать среду разработки и программатор под неё. AVR Studio 6 подойдет для начинающего? Если нет, то какой посоветуете? Так же вопрос о программаторе, как покупном, так и самодельном (рассматриваю оба варианта). Заранее благодарю за конструктивные ответы.
DDark
Открыл глаза
Сообщения: 73
Зарегистрирован: Вт июн 22, 2010 20:15:17

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DDark »

GRAF писал(а):DDark, а SREG|=(1<<SREG_I) кто будет писать? Где настройка самого порта D (что-то вроде PORTD|=0x0C) или у вас подтяжка внешняя?
Обе кнопки с PD2 и PD3 на землю идут?

Схему в студию и полный код. Чудес не бывает.


глобальные прерывания разрешены, PORTD = 0x0C
обе кнопки на землю
в принципе проблема решена - если цеплять не на землю ножку INT1, а просто касаться рукой или подавать, например, напряжение питания - идет срабатывание прерывания) а вот на землю сажать - не идет, хотя прерывание по падающему фронту + подтяжка... странно короче, интересная тема
Ответить

Вернуться в «Разные вопросы по МК»