Запуск на нижчій потужності не працює


9

У мене є власна плата Arduino ATMega328, яка зазвичай працює на частоті 5 В @ 8 МГц (використовуючи профіль Arduino Pro 3.3V 8 МГц і завантажувач). Основна причина, що я використовую цю настройку, полягає в тому, що я можу перевести плату в режим сну, коли відключено основне живлення, і воно починає вичерпуватися від батареї (3В від монети). Джерела 5В та 3В діодними АБО є разом, а вхід 5В прив’язаний до INT0. У коді, коли він виявляє, що INT0 знизився, він ініціалізує режим сну, і все вимикається за винятком таймера сторожового часу, який зберігає цикл 1 Гц, щоб зберегти внутрішній підрахунок і перевірити його, чип повинен бути пробуджений. Це прекрасно спрацьовує, коли спочатку подається напруга 5В, потім вставляється акумулятор, потім5В відключено. Він лягає спати, і коли повертається 5В, він прокидається, і я бачу, що він не втратив рахунок.

Однак проблема виникає, коли 3V застосовується спочатку . Я, чесно кажучи, не впевнений, чи це навіть завантаження. Але що потрібно зробити - це завантажитися, перевірте, чи низький INT0 (Digital 2), і, якщо так, перейдіть спати. Переглядаючи поточний розіграш, я бачу, що він спрацьовує до декількох ма на пару секунд, потім знижується до приблизно 0,3 мА (все ще вище, ніж повинен бути у режимі сну). Але коли я повторно застосовую 5V, нічого . Зниження потужності відновлюється, але воно не відповідає (над серійним FTDI).

Може, чогось мені не вистачає, що його не можна завантажувати на 3V ... теоретично він повинен працювати просто чудово.

Оновлення: Я впустив світлодіод на D13 і спробував ескіз блимати. Відмінно працює, коли починається від 3V або 5V. Однак, коли я запускаю прошивку і запускаю її від 3В, світлодіод просто починає миготіти. Я поняття не маю, що це викликає, оскільки я ніколи навіть не встановлював D13 як щось у своєму коді. Але мені здається, що це щось стосується завантажувача ...


1
Для чого встановлено BOD, і який нинішній розіграш при запуску?
Ігнасіо Васкес-Абрамс

Встановлено на 2,7 В. Поточний розрив, коли на 3В, становить близько 4 мА протягом перших кількох секунд, потім падає, і світлодіод зникає.
Адам Хейле

Ви пробували без завантажувача, тобто через ISP?
Ігнасіо Васкес-Абрамс

Ні, я ще цього не пробував. Що дивно, це чудово, що тільки виконуючи ескіз блимання
Адам Хейле

2
Чи можете ви додати схему, щоб "точно" показати, як підключено електропроводку, включаючи будь-який датчик або навантаження на акумулятор. Яку клітинку монети ви використовуєте, це літій-іонний (перезаряджається) або лужний?
Рон Дж.

Відповіді:


6

Отже ... виявилося, що все було в коді. Виявляється, я ініціював переривання на INT0, коли він був низьким, на самому початку мого коду. Проблема полягала в тому, що коли він запускався на 3В резервного живлення, INT0 завжди був низьким, оскільки INT0 прив’язаний до лінії 5В (це знає, як лягти спати). Оскільки INT0 був низьким, а переривання викликало низький рівень, він спричиняв постійне переривання, ніколи не даючи решті програми жодного разу запускатися. Переключено на включення переривання лише після того, як я перейшов у режим повного пробудження, і він працює нормально.


4

Що саме відбувається і чому не може бути визначено, виходячи з кількості наданої інформації. Однак я бачу принаймні одну потенційну проблему, яка хоча б частково пояснить описані симптоми.

Ви сказали, що використовуєте діоди для вибору напруги, а один блок живлення - 3В акумулятор. Якщо ви використовуєте стандартні діоди, що падають ~ 0,6 В, то напруга живлення в MCU становить лише ~ 2,4 В. Якщо ви використовуєте діоди Шоткі зі зниженням напруги між 0,15-0,45, напруга живлення потенційно може бути низьким, як 2,5 В. У вас напруга BOD встановлена ​​на 2,7 вольт, тому теоретично MCU ніколи не завантажуватиметься з акумулятором.

Щодо того, чому ви можете запустити його на 5В, опустити до 3В і повернути його знову - я не впевнений. Ви можете відключити БПК у коді ... можливо ... Не впевнений, чому він працює, але це, ймовірно, не гарантовано.

Я встановлюю схему діодного вимикача з 5 В і 3.3 В, щоб побачити, як це виглядає на моєму осцилограмі, коли перемикаються напруги. При перемиканні 3,3 В до 5 В напруга спочатку коливається зовсім небагато. Це може спричинити деякі проблеми, коли MCU намагається вийти зі сну. Поставивши кришку між VCC та GND, дуже добре згладили сигнал. При переході від 5V до 3.3V насправді не було коливань, а чиста крапля.

З цієї інформації складається враження, що вам слід знизити поріг БПК або вимкнути БПК і поставити кришку роз'єднання між VCC та GND. Ви, мабуть, також повинні переконатися, що у вас є розсувний резистор на INT0, і прочитати розділи даних MCU, що пояснюють різні режими сну, всі міркування щодо сну і неспання - це дуже пов'язано. Ура


2

Я думаю, що проблема полягає у вашому завантажувачі, але не в тому, як ви думаєте.

Коли Arduino запускається, завантажувач, який отримує прибуток від кількох завдань, таких як пошук послідовного хоста або завантаження даних програми з флеш, забирає набагато більше енергії, ніж сплячий Arduino.

Я думаю, що причина, по якій ваш Arduino не запуститься, полягає в тому, що завантажувач вимагає точного тактового джерела, але застосувавши до нього 3В, це зіпсує цей годинник, і, можливо, він вийде з ладу або чекатиме 3,3 В для застосування стабільного джерела.

Дивлячись на таблицю:

авторські права ATMEL

Ми бачимо, що поточний розрив під час пробудження (запуск завантажувача), ймовірно, буде близько 2 мА, а сплячий струм - приблизно 0,8 мікроампер . Це, безумовно, може призвести до затемнення при запуску без належного струму.

Можливо, вам слід увімкнути його тільки з напругою 5 В, або, можливо, вам потрібен акумулятор більш високого струму, більша напруга.


Чи не означало б це, що і Блинк не працюватиме? Крім того, я бігаю більше ніж декілька Arduino з монетних комірок без проблем. Вони можуть забезпечити багато струму протягом короткого часу.
Кібергібони

-5

Спробуйте перезавантажити ардуїно, перейшовши до Інструменти> Записати завантажувач


1
Чи можете ви, будь ласка, додати докладнішу інформацію про те, як це зробити далі? Це не дуже конкретно: що ви можете підключити до Arduino? Чи є якісь ризики? Дякую!
Анонімний пінгвін

я б відключив все від мережі, щоб бути безпечним, але не повинно бути ніяких ризиків
DeveloperACE

Ось як записати завантажувач: arduino.stackexchange.com/a/474/37 . Ваша відповідь не пояснює все, як це зробити.
Хлопець із Шапкою
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.