МІКРОКОНТРОЛЕРИ AVR ОРГАНІЗАЦІЯ ПАМ’ЯТІ

Почитавши наш форум, стало ясно, що не всі розуміють різницю між прошивкою та вихідником, FLASH та EEPROM. Щоб цих питань більше не виникало, вирішив написати цей короткий огляд. Візьмемо, наприклад, МК ATMega16. Усередині даного контролера є 2 основні області пам'яті: ПЗУ, вона ж пам'ять програм або flash-пам'ять, і ОЗУ, вона пам'ять даних або SRAM. На додачу до цього йде пам'ять для зберігання даних (EEPROM).

Пам'ять програм

дані

Так як обсяг flash-пам'яті контролера становить 16 кбайт (16384 байта), то в нього можна впхнути 8192 16-ти бітних інструкції (8К х 16). Крім основної програми у flash-пам'яті можуть бути розміщені різні константи, значення яких використовуються при виконанні програми і які не можуть бути змінені, а також може бути секція бутлоадера (зморимо статтю про fuse-біти). Число циклів перепрограмування flash-пам'яті становить 10000. Тобто. після 10000 (або близько того) циклів можливо буде запис з помилками, або програма взагалі не запишеться. Лякатися не варто, якщо трохи порахувати, то виходить щоб дійти до цього треба шити контролер кожну хвилину протягом приблизно семи днів без відриву на сон, перекури, розпивання пива та інші радості неодруженого або сімейного (у кого як) життя.

Пам'ять даних

мікроконтролери

Як очевидно з малюнка, пам'ять даних складається з: регістрового файлу, куди входять 32 регістра загального призначення (РОН); 64-х регістрів периферії – регістри введення/виведення (I/O регістри); 1024 байт самої ОЗП. Усі операції, що відбуваються всередині МК (логічні, арифметичні тощо), а також його спілкування з периферією (АЦП, таймери/лічильники, порти введення/виводу тощо) відбувається черезрегістри. Всі регістри мають розрядність 8 біт - звідси і 8 бітні контролери. Звичайно є і 16-розрядні регістри, але вони знову ж таки складаються з 2-х восьмибітних. Регістри введення/виводу (РВВ) призначені для роботи з периферією МК та її конфігурування.

Візьмемо, наприклад, порти вводу/виводу (найпростіший приклад). Для кожного порту є 3 РВВ:

1) регістр, що визначає напрямок передачі даних через висновки порту (вхід або вихід);

2) регістр, який зчитує стан висновків порту, якщо висновки налаштовані на прийом (вхід) інформації;

3) регістр, що визначає логічний рівень на виведенні порту якщо висновок налаштований на вихід, або керувати внутрішнім резистором, що підтягує, якщо висновок налаштований на вхід.

Для того, щоб налаштувати порт під свої вимоги, а також видати в порт інформацію або прийняти її, необхідно рахувати дані з РВВ або завантажити дані. Ці дані є 8-ми розрядні числа, але особливість МК AVR у цьому, що у РВВ не можна безпосередньо завантажити дані чи вважати ці дані з РВВ. Для цього необхідно використовувати РОН, тобто. для запису РВВ ми спочатку наші дані поміщаємо в РОН, та був пересилаємо їх у РВВ. Аналогічно для читання даних із РВВ нам необхідно їх спочатку завантажити з РВВ в РОН, а потім зробити з ними всякі непотреби.

Слід зазначити, що блок РОН можна розділити на 2 групи: РОН молодшої половини регістрового файлу (R0…R15) та РОН старшої половини регістрового файлу (R16…R31). Різниця полягає в тому, що не всі команди, що належать до старшої половини регістрів, можна застосувати до молодшої половини, тобто регістри R0 ... R15 виходять трохи урізаними за набором команд.

мікроконтролери

При використанні ОЗУ під змінні та стек необхідностежити за тим, щоб одне не наїхало на інше.

EEPROM

організація

Сюди можна зберігати будь-які константи, дані, які використовуються під час роботи програми, або необхідно зберегти перед вимкненням живлення тощо. У EEPROM дані можна писати безпосередньо під час виконання програми або шляхом прошивки через прошивальник (eep-файл). Якщо читання з EEPROM в процесі роботи МК здійснюється дуже швидко, запис у нього відбувається дуже довго, кілька мілісекунд. Тут треба бути обережним, щоб при процесі запису в EEPROM не вискочило переривання, бо запишемо в результаті якусь бяку. Тож тут треба бути уважнішими. Число циклів запис/прання в EEPROM складає 100000. Автор матеріалу: skateman.

мікроконтролери
У статті йдеться про те, як відремонтувати пластмасовий китайський електрочайник.

Вплив ЕМП
організація
Про взаємозв'язок розвитку електротехніки та радіоелетроніки з екологічними проблемами.
РЕМОНТ ПЛАНШЕТУ IPAD

мікроконтролери
Рятуємо планшет IPad Air - самостійно ремонтуємо несправний динамік та роз'єми.

мікроконтролери
Пайка без електрики - конструкція простого паяльника, що працює за принципом періодичного підігріву на сухому спирті.

організація
Самостійний ремонт ноутбука ASUS X50SL - очищаємо від пилу вентилятор з радіатором процесора та ставимо нові драйвера.