Записи с меткой ‘теория’

Часы с интерфейсом I2C на микроконтроллере

June 27, 2010

Моделей микросхем RTC, о которых мы уже неоднократно упоминали, су­ществует множество. Все они внутри устроены примерно одинаково и имеют вЬтроенный счет времени и календарь, а также функции будильника и/или таймера. Заметим, что все RTC имеют то или иное количество ячеек памяти SRAM (в нее, например, традиционно записываются установки BIOS в ком­пьютере). Подавляющее большинство RTC имеют возможность автономной работы от батарейки в течение длительного времени, без потери однажды установленного времени. Такие часы используют обычно кварц на 32 768 Гц, иногда даже встроенный в микросхему. Кроме этого, значительная часть мо­делей имеет дополнительный выход (иногда и не один), на котором форми­руется некая частота, задаваемая программно. Этот выход можно использо­вать для управления прерыванием микроконтроллера, и таким образом организовать счет времени и его индикацию.

» Читать запись: Часы с интерфейсом I2C на микроконтроллере

Чтение данных из памяти микроконтроллера через UART

June 27, 2010

Теперь займемся процедурами чтения содержимого внешней памяти и осу­ществления установок разрешения-запрещения записи. Естественно, это при­дется делать через компьютер (а куда еще считывать?), и мы используем уже инициализированный нами UART. Нам потребуется реализовать четыре про­цедуры:

» Читать запись: Чтение данных из памяти микроконтроллера через UART

Последовательный интерфейс I2C

June 27, 2010

Собственно термин I2C принадлежит фирме Phillips, которая придумала этот интерфейс, а в описаниях AVR «местный» вариант I2C называют TWI (от two-wire, «двухпроводной»). Мы не будем вдаваться в тонкости различий этих протоколов, потому что для нас они, по большому счету, не важны — главное, что они полностью совместимы, и все внешние устройства, имею­щие интерфейс I2C, будут работать с AVR. Потому во избежание путаницы мы всегда будем использовать более распространенный термин I2C, тем бо­лее что встроенный вариант интерфейса TWI мы не будем применять, огра­ничившись его программной имитацией.

» Читать запись: Последовательный интерфейс I2C

Часы со счетом времени на МК – Часть 1

June 27, 2010

Часы мы будем делать на основе светодиодных индикаторов: поскольку схе­ма все равно будет потреблять довольно много, то так или иначе потребуется сетевой источник питания, и слепые ЖК-индикаторы ставить нет особого смысла. Также договоримся, что секунды мы не показываем (в настольных часах этого никто и не делает, заменяя их отсчет миганием разделительной точки или двоеточия).

» Читать запись: Часы со счетом времени на МК – Часть 1

Применение прерываний при программировании на AVR

June 27, 2010

Для того чтобы сделать все то же самое, но «по-настоящему», придется вос­пользоваться таймером, а значит — прерываниями. А значит — текст про­граммы придется оформить несколько по-иному. Если помните, я говорил, что при возникновении прерывания процессор обращается по некоторому фиксированному адресу. Для каждой модели МК количество и типы преры­ваний различаются, поэтому эти адреса фиксированы для каждой модели процессора.

» Читать запись: Применение прерываний при программировании на AVR

Самая простая программа для МК

June 27, 2010

Давайте напишем сначала самую простую программу, которая будет вклю­чать светодиод сразу при включении питания и больше ничего не делать. Для примера возьмем контроллер ATtiny2313, схема подключения которого вме­сте с программирующим разъемом показана на рис. 19.2.

» Читать запись: Самая простая программа для МК

О конфигурационных битах в МК

June 27, 2010

Эта напасть свалилась на нас с появлением семейств Tiny и Mega, в «класси­ческих» AVR ничего такого не было (точнее, было, но можно было специ­ально не заботиться об установке этих битов). В англоязычной инструкции конфигурационные биты называют fuse-битами. Их появление привело к многочисленным проклятиям на голову фирмы Atmel со стороны армии лю­бителей, который стали один за другим «запарывать» кристаллы при про­граммировании. Положение усугублялось тем, что в описании этих сущно­стей используется извращенная логика— как мы знаем, любая чистая EEPROM (по принципу ее устройства) содержит единицы, и слово «запро­граммированный» по отношению к такой ячейке означает, что в нее записали логический ноль. Термины запрограммированный/незапрограммированный как раз и применяются в фирменных описаниях AVR, и оттуда перекочевали в ряд самодеятельных программаторов: готовьтесь к тому, что в некоторых программаторах отмеченный галочкой в меню программы бит означает его равенство логической единице, а в других — запрограммированное состоя­ние, то есть логический ноль. Поэтому разработчики программаторов AS из фирмы Argussoft даже специально написали в окне программирования кон­фигурационных ячеек памятку на этот счет (см. рис. 19.1).

» Читать запись: О конфигурационных битах в МК

Микроконтроллеры Atmel AVR – Часть 2

June 27, 2010

Способы тактирования

Каноническим способом тактирования МК является подключение кварцевого резонатора к соответствующим выводам (рис. 18.11, а). Емкость конденсато­ров С1 и С2 в типовом случае должна составлять 22—36 пФ (о включении кварцев см. главу 15). В большинстве моделей Tiny и Mega имеется специ­альный конфигурационный бит скрот, который позволяет регулировать по­требление. При установленном в единицу (незапрограммированном) этом бите размах колебаний уменьшается, однако при этом сужается возможный диапазон частот и общая помехоустойчивость, поэтому использовать этот режим не рекомендуется (см. далее). Может быть также использован низко­частотный кварцевый резонатор (например, «часовой» 32 768 Гц), при этом конденсаторы С1 и С2 можно не устанавливать, так как при установке скрот в значение О подключаются имеющиеся в составе МК внутренние конденса­торы 36 пФ.

» Читать запись: Микроконтроллеры Atmel AVR – Часть 2

Микроконтроллеры Atmel AVR – Часть 1

June 27, 2010

Общее количество существующих семейств микроконтроллеров оценивается приблизительно в 100 с лишним, причем ежегодно появляются все новые и новые. Каждое из этих семейств может включать десятки разных моделей. Причем львиная доля выпускаемых чипов приходится на специализирован­ные контроллеры: например, для управления USB-интерфейсом, или ЖК-дисплеями. Иногда довольно трудно классифицировать продукт: так, многие представители семейства ARM, которое широко применяется для построения мобильных устройств, с точки зрения развитой встроенной функционально­сти относятся к типичным контроллерам, но в то же время достаточно мощ­ное ядро позволяет отнести их и к классу микропроцессоров.

» Читать запись: Микроконтроллеры Atmel AVR – Часть 1

Лечение амнезии

June 27, 2010

В 1965 г. в Иллинойском университете был запущен один из самых передо­вых компьютеров по тому времени — ILLIAC-IV. Это был первый компью­тер, в котором была использована быстрая память на микросхемах — каж­дый чип (производства Fairchild Semiconductor) имел емкость 256 бит, а всего было набрано 1 Мбайт. Стоимость этой памяти составила ощутимую часть от всей стоимости устройства, обошедшегося заказчику — NASA в $31 млн. Через 10 лет один из первых персональных компьютеров Altair 8800 (1975 г.), продававшийся в виде набора «сделай сам», при стоимости порядка $500 имел всего 256 байт (именно байт, а не килобайт) памяти. В том же году для распространения языка Basic for Altair Биллом Гейтсом и Полом Алле-ном была создана фирма, получившая первоначальное название Micro-Soft. Одна из самых серьезных проблем, которую пришлось решать— нехватка памяти, потому что созданный ими интерпретатор Basic требовал аж 4 Кбайт!

» Читать запись: Лечение амнезии

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты