Микроконтроллеры AVR. GPIO. Порты ввода-вывода.

Долгое время мы оставляли без внимания микроконтроллеры AVR, и вот пришла пора исправить это недоразумение! Как и для других контроллеров, будем постепенно рассматривать различную периферию AVR’ок, сначала теорию, всякие регистры, ну и под конец небольшие примерчики.

В качестве IDE  я использую AVR Studio 5, шестую версию AVR Studio даже не пробовал, не так часто последнее время мне попадаются задачи для AVR ) А вообще неплохо иметь еще и установленную AVR Studio 4, потому что порой случается так, что запрограммировать контроллер из AVR Studio 5 не представляется возможным. Вот совсем недавно я хотел прошить ATMega2560 при помощи программатора STK500 и это оказалось неосуществимо через 5 студию ) Хорошо осталась со старых времен AVR Studio 4, и проблема решилась в течение пары минут.

Читать далее

Принцип работы биполярного транзистора.

Недавно мы рассмотрели устройство биполярного транзистора, принцип его работы (ссылка), но это все-таки была теория. Пришло время практики 😉 Сегодня придумаем небольшой пример, демонстрирующий как именно происходит усиление сигнала в биполярном транзисторе.

Рассмотрим схемку…

Усилитель на транзисторе, включенном по схеме с общим эмиттером.

Принцип работы биполярного транзистора

Читать далее

Подключение SD карты к микроконтроллеру.

Всем доброго дня! Сегодня мы поговорим о подключении карты памяти SD к микроконтроллеру STM32.

Казалось бы, памяти полно у контроллеров STM32F10x, зачем там еще дополнительная, но это впечатление обманчиво ) Вот, например, надо нам на дисплей вывести пару-тройку разных изображений — формат 320*240 — то есть 76800 пикселей, каждому из которых соответствует целых 2 байта. Вот и получаем около 150 кБ на одну картинку. А это немало по меркам микроконтроллера, и не факт, что две разные картинки удастся запихать в его Flash память. Или надо нам хранить большие объемы информации, данные с какого-нибудь датчика, к примеру. Да еще так, чтобы эти данные были доступны и после отключения питания. Вот тут то нам и пригодится внешняя память. И отличным решением будет SD карта памяти или MMC. К слову в этой статье мы будем проводить опыты над картой micro SD.

Для начала пара слов о самой карте памяти, точнее о ее распиновке. Выглядит все это дело следующим образом:
Карта памяти micro SD

Читать далее

STM32 и дисплей. Загрузка изображения.

Совсем недавно мы познакомились с работой FSMC в STM32, подключили дисплей и раскрасили его разными цветами (вот). И пока еще не забыли все, что обсуждали в прошлой статье, давайте выведем на дисплей, что-нибудь поинтереснее, а именно какую-нибудь картинку.

Что же нам для этого понадобится?

Ну во-первых сама картинка. Находим какое-нибудь изображение размером 320*240. Я секунд за 20 нагуглил подходящую картинку — кадр из фильма Железный Человек, реклама которого, кстати, последние пару недель находится абсолютно везде что в интернете, что на улице )

Итак, мы подготовили то, что надо загрузить в память дисплея, но все-таки jpeg файл вряд ли получится засунуть туда. Необходимо как-то преобразовать готовую картинку в массив чисел, соответствующих каждому отдельному пикселю. Но для начала конвертируем наш файл в формат bmp, это нам понадобится для дальнейших махинаций 😉 Для того, чтобы получить необходимые данные из bmp файла воспользуемся отличнейшей утилитой от Segger под названием Segger Bitmap Converter. Дружно скачиваем ее, устанавливаем и запускаем.

Читать далее