Читаємо даташит на прикладі atmega8

Може бути хто не в курсі, даташит - це технічний опис на будь-яку радіодетальку. Де його знайти? Ну, звичайно ж, в інтернеті! Але так майже вся радіоелектронна продукція випускається "за бугром", то і опис на них, відповідно, "забугорское", а точніше, на англійській мові. Ті, хто добре дружить з розмовною англійською, не факт, що зможе прочитати технічні терміни в даташітах.

Давайте спробуємо пролити світло істини на основні характеристики МК ATmegа8. Для цього качаємо даташит. У нашій статті ми будемо розглядати тільки основні відомості нашого підопічного.

Ось що ми бачимо на першій сторінці даташіта:

Читаємо даташит на прикладі atmega8

Читаємо даташит на прикладі atmega8

Запам'ятовуємо правило: в фірмовому описі немає жодного зайвого слова! (Іноді інформації не вистачає, але це вже інший випадок)

Features. Перекладається як "функції". У середовищі електронників просто "фічі".

- High Performance, Low Power AVR® 8-Bit Microcontroller

Високопродуктивний, що споживає мало енергії, 8-бітний мікроконтролер.

- Advanced RISC Architecture

Розширена RISC архітектура.

RISC і CISC - технології побудови процесорних систем. Але нам це не важливо, принаймні, поки що.

- 130 Powerful Instructions - Most Single Clock Cycle Execution

130 команд, більшість з них виконуються за один цикл.

А ось це вже цікавіше! По-перше, така велика кількість команд (наприклад, у мікроконтролерів PIC всього 35 команд) вже має на увазі орієнтацію цього МК під мови високого рівня. По-друге, дізнаємося, що одна команда виконується за один такт генератора. Тобто при тактовій частоті 1 МГц одна команда буде виконуватися 1 мікросекунду (1 мкс, одну мільйонну частину секунди - 10 ^ -6). А при 10 МГц - в десять разів швидше, тобто 0,1 мкс.

- 32 x 8 General Purpose Working Registers

32 восьмибітних регістра загального користування.

Про регістри поговоримо пізніше, просто запам'ятаємо, що велика кількість регістрів - вельми непогано, адже регістр - це осередок пам'яті в самому МК. А чим більше такої пам'яті - тим «спритніше» працює МК!

Об'єднавши ці дані з кількістю підтримуваних мікро контролером команд, в черговий раз переконуємося в початкової орієнтації даного МК під високорівневі мови на кшталт Сі, Паскаля та інших.

- Fully Static Operation

Повністю статична структура.

Згадуємо про типах пам'яті: динамічної та статичної. Цей пункт запевняє нас, що МК збереже свою працездатність при тактовій частоті нижче сотень герц і навіть при відсутності тактової частоти на його спеціальних висновках.

(Також не зайвим буде нагадати про те, що споживана потужність більшості типів МК безпосередньо залежить від тактової частоти: чим вище тактова частота, тим більше він споживає)

- Up to 16 MIPS Throughput at 16 MHz

До 16 мільйонів виконуваних команд при тактовій частоті 16 МГц.

За одну секунду при тактовій частоті 16 МГц може бути виконано до 16 000 000 команд! Отже, одна однобайтового команда може бути виконана за 0,07 мкс. Вельми непогано для маленької мікросхеми.

З урахуванням попереднього пункту розуміємо, як працює на частотах від 0 Гц до 16 МГц.

- On-chip 2-cycle Multiplier

В даному МК є вбудований помножувач, який примножує числа за два такту.

Ну це добре. Навіть дуже. Але ми поки не буде вгризатися в ці нюанси ...

- High Endurance Non-volatile Memory segments

Надійна незалежна пам'ять, побудована у вигляді декількох сегментів.

Згадуємо типи пам'яті: EEPROM і FLASH.

- 8KBytes of In-System Self-programmable Flash program memory

- 8 Кбайт вбудованої в МК пам'яті. Пам'ять виконана за технологією Flash. У самому МК є вбудований програматор.

Цей обсяг досить гарний! Для навчання (та й не тільки) - з запасом. А наявність вбудованого програматора цієї пам'яті, дозволяє завантажувати дані в пам'ять, використовуючи простий зовнішній програматор (в найпростішому випадку це п'ять дротів, якими мікроконтролер підключають кLPT порту комп'ютера).

У МК є 256 байт енергонезалежної пам'яті EEPROM.

Отже, можна зберегти ще додаткову інформацію, яку можна змінювати програмою МК, без зовнішнього програматора.

- 1024 Bytes Internal SRAM

У МК є 1024 байт оперативної пам'яті (ОЗУ / RAM).

Також вельми приємний обсяг

- Write / Erase cyles: 10,000 Flash / 100,000 EEPROM

Пам'ять Flash витримує 10 000 циклів запису / стирання, а пам'ять EEPROM - до 100 000

Простіше кажучи, програму в МК можна змінювати до 10 000 разів, а свої дані в 10 разів більше.

- Data retention: 20 years at 85 ° C / 100 years at 25 ° C

Збереження даних в пам'яті МК - до 20 років при температурі зберігання 85 ° C, і 100 років - при температурі 20 ° C.

Якщо ваші внуки і правнуки включать вашу «мигалку» або музичну шкатулку, то вони зможуть насолодитися їх роботою))

- Optional Boot Code Section with Independent Lock Bits

- Programming Lock for Software Security

МК має кілька областей пам'яті (уточнюємо яких), які можна захистити від прочитання установкою спеціальних біт захисту.

Ну, тут все зрозуміло: свою працю ви можете захистити від вичитування програми з пам'яті МК.

Далі йде опис наявної в даному мікроконтролері периферії (тобто вбудованих в нього апаратних пристроїв типу таймерів, джерел переривань і інтерфейсів зв'язку)

- Two 8-bit Timer / Counters

- One 16-bit Timer / Counter

У МК є два таймера / лічильника: 8 і 16 біт.

- 8-channel ADC in TQFP and QFN / MLF package

Eight Channels 10-bit Accuracy

- 6-channel ADC in PDIP package

Six Channels 10-bit Accuracy

У складі МК є кілька каналів АЦП: 6 - для корпусу PDIP і 8 - для корпусу QFN / MLF. Розрядність АЦП - 10 біт.

- Byte-oriented Two-wire Serial Interface

- Programmable Serial USART

В даному МК реалізований апаратний двопровідний інтерфейс зв'язку USART, байт орієнтований і програмований - є можливість налаштування параметрів інтерфейсу.

Реалізовано SPI інтерфейс зв'язку, режими Майстер / Підлеглий.

- Programmable Watchdog Timer with Separate On-chip Oscillator

Сторожовий таймер з власним автономним генератором.

- On-chip Analog Comparator

- Power-on Reset and Programmable Brown-out Detection

Реалізовано режими контролю напруги живлення і захист роботи МК при поганому харчуванні (гарантує збільшення надійності роботи всієї системи).

- Internal Calibrated RC Oscillator

Вбудований калібрований RC-генератор (можна запустити МК без зовнішніх елементів).

- External and Internal Interrupt Sources

Реалізовано кілька типів зовнішніх і внутрішніх переривань.

П'ять режимів «сну» (зменшення енергоспоживання МК за рахунок відключення деяких внутрішніх вузлів або спеціальних методів уповільнення їх роботи)

Розуміємо як можливість вибору такого режиму, при якому співвідношення «споживана енергія / можливості» будуть оптимальні для вирішення наших завдань. Дуже корисна можливість при необхідності економити енергію: харчуванні від батарей, акумуляторів та інших джерел.

- 28-pin PDIP, 32-lead TQFP, 28-pad QFN / MLF and 32-pad QFN / MLF

Вказані типи корпусів, в яких випускається даний мікроконтролер. Бачимо «28 DIP» - це добре! Не треба купувати спеціалізовані дорогі панелі і мучитися з тоненькими і часто розташованими висновками на корпусі МК.

Дуже важливий параметр! Бувають моделі мікроконтролерів, які працездатні тільки при позитивних температурах навколишнього повітря.

(Був у мене гіркий досвід, коли в пристрої був застосований саме такий «теплолюбний» мікроконтролер. А пристрій помістили на вулицю ... І щозими «вдячні» користувачі мого пристрою «хвалили» мене за «замерзання» мікроконтролера, яке виявлялося у вигляді повного його зависання)

Напруга харчування і тактова частота

Є дві модифікації даного МК: одна працездатна при широкому діапазоні живлячих напруга, друга - у вузькому.

Максимальна тактова частота:

- Atmega8L: 0 - 8 МГц при напрузі живлення 2,7 - 5,5 вольт

- Atmega8: 0 - 16 МГц при напрузі живлення 4,5 - 5,5 вольт.

І що ми бачимо? А то, що модифікація МК, працездатна в широкому діапазоні живлячої напруги, не може бути Тактируемого частотами вище 8 МГц. Отже, і її обчислювальні можливості будуть нижче.

Power Consumption at 4 Mhz, 3V, 25 ° C

- при роботі на частоті 4 МГц і напрузі живлення 3 вольта споживаний струм: 3,6 міліампер,

- в різних режимах енергозбереження споживаний струм: від 1 міліампер до 0,5 мікроампера

На наступній сторінці публікується розташування висновків даного мікроконтролера при використанні різних типів корпусів.

Читаємо даташит на прикладі atmega8

Читаємо даташит на прикладі atmega8

Раджу цей листок з даташіта роздрукувати і мати під рукою. В процесі розробки і збірки схеми дуже корисно мати ці дані перед очима.

Зверніть увагу на такий факт: мікросхема мікроконтролера може мати (і має в даній моделі) кілька висновків для підключення джерела живлення. Тобто є кілька висновків для підключення «землі» - «загального проводу», і кілька висновків для подачі позитивного напруги.

Читаємо даташит на прикладі atmega8

Виробники мікроконтролерів рекомендують підключати відповідні висновки разом, тобто мінус подавати на все висновки, помічені як Gnd (Ground - Земля), плюс - на все висновки помічені як Vcc.

При цьому через однакові висновки МК не повинні протікати струми, так як всередині корпусу МК вони з'єднані тонкими провідниками! Тобто при підключенні навантаження ці висновки не повинні розглядатися як «перемички».

Гортаємо опис далі, бачимо главу «Overview» (Огляд).

У ній є розділ «Block Diagram» (Пристрій). На малюнку показані пристрої, що входять до складу даного мікроконтролера.

Читаємо даташит на прикладі atmega8

Але найважливішим для нас в даний час є блок «OscillatorCircuits / ClockGeneration» (Схема генератора / Генератор тактової частоти).

У програмі часто виникає необхідність зробити тимчасову затримку в її виконанні - паузу. А точну паузу можна організувати тільки методом підрахунку часу. Час вважаємо виходячи з кількості тактів генератора мікроконтролера.

Та й не зайвим буде заздалегідь прорахувати: чи встигне МК виконати той чи інший фрагмент програми за відведений для цього час.

У даташіте шукаємо відповідний розділ: «System Clock and Clock Options» (Тактовий генератор і його параметри). У ній бачимо розділ «Clock Sources» (Джерела тактового сигналу), в якому є таблиця з переліком видів тактових сигналів. У цьому розділі зазначено, що даний МК має вбудований тактовий RC-генератор. У розділі «Default Clock Source» є вказівка ​​про те, що МК продається вже налаштованим для використання вбудованого RC-генератора. При цьому тактова частота МК - 1 МГц.

З розділу «CalibratedInternalRCOscillator» (Калібрований RC-генератор) дізнаємося, що вбудований RC-генератор має температурний дрейф в межах 7,3 - 8,1 МГц. Може виникнути питання: якщо частота вбудованого тактового генератора 7,3 - 8,1 МГц, то як була отримана частота 1 МГц? Справа в тому, що тактовий сигнал потрапляє в схеми мікроконтролера через програмований дільник частоти (Про це розказано в розділі «System Clock Prescaler»). В даному мікроконтролері він має кілька коефіцієнтів розподілу: 1, 2, 4 і 8. При виборі першого ми отримаємо частоту самого тактового генератора, при включенні останнього - в 8 разів менше, тобто 8/8 = 1 МГц. З урахуванням вищесказаного отримуємо, що тактова частота даного МК при включеному делителе з коефіцієнтом 8 буде в межах від 7,3 / 8 = 0,9125 МГц (9125 КГц) до 8,1 / 8 = 1,0125 МГц.

Зверніть увагу на один ну дуже важливий факт: стабільність частоти дана при температурі МК 25 градусів за шкалою Цельсія. Згадаймо, що внутрішній генератор виконаний по RC схемою. А ємність конденсатора дуже залежить від температури!

Перед тим, як подати на мікроконтролер напругу живлення, виконаємо правило, яке є обов'язковим для всіх цифрових мікросхем: в безпосередній близькості від висновків харчування мікросхеми повинен бути керамічний конденсатор ємністю 0,06 - 0,22 мкф. Зазвичай встановлюють конденсатор 0,1 мкф. Його часто називають блокувальним конденсатором.

Читаємо даташит на прикладі atmega8

У схему необхідно встановити і електролітичний конденсатор ємністю 4-10 МКФ. Він також є блокувальним фільтром, але на менш високих частотах. Такий конденсатор можна встановлювати один для декількох мікросхем. Зазвичай на 2-3 корпусу мікросхем.

Справа в тому, що мікроконтролер (як і інші цифрові мікросхеми) складається з транзисторних осередків, які в процесі роботи постійно переключаються з відкритого стану в закрите, і навпаки. При цьому змінюється споживана транзисторними комірками енергія. В лінії живлення виникають короткочасні «провали» напруги. Цих осередків в мікроконтролері сотні тисяч (думаю, що зараз вже мільйони!), Тому по годує проводах починають гуляти імпульсні перешкоди з частотами від одиниць до десятків тисяч Герц. Для запобігання поширенню цих перешкод по ланцюгах схеми, та й самої мікросхеми мікроконтролера, паралельно з його висновками харчування встановлюють такий блокувальний конденсатор. При цьому на кожну мікросхему необхідно встановлювати індивідуальний конденсатор.

Конденсатор для постійного струму є ізолятором. Але при установці конденсатора в ланцюзі з непостійним струмом він робиться опором. Чим вище частота, тим менший опір надає конденсатор. Отже, блокувальний конденсатор з малою ємністю пропускає через себе (шунтирует) високочастотні сигнали (десятки і сотні Герц), а конденсатор з більшою ємністю - низькочастотні. Про це я писав ще в статті Конденсатор в ланцюзі постійного і змінного струму

- мікроконтролер AVR ATmega-8 при поставці з заводу працює на тактовій частоті 0,91-1,1 МГц;

- напруга живлення повинно бути в межах 4,5 - 5,5 Вольт. Ми будемо використовувати мікросхеми з годує напругою 5 Вольт, тому і МК буде харчуватися цим же напругою. (Хоча працездатність збережеться при напрузі живлення 2,7 Вольт для звичайних, не низьковольтних моделей МК)