Микроконтроллеры AVR

radioengineer 2011 M12 28
1227
1
0
0

Решил сделать небольшой вводный пост по 8-битным микроконтроллерам (МК) AVR фирмы Atmel. Почему именно их? Да потому, что сам я начинал именно с них. Они наиболее просты для освоения новичками в...

Решил сделать небольшой вводный пост по 8-битным микроконтроллерам (МК) AVR фирмы Atmel. Почему именно их? Да потому, что сам я начинал именно с них. Они наиболее просты для освоения новичками в электронике и не требуют выдающихся знаний в области программирования. И к тому же весьма дешевы даже у нас.

Сам я начал заниматься радиолюбительством ещё в школе, а началось все с моделирования копий судов: паял надстройки, палубы из жести, ну и т.д. Возник вопрос, а как ещё можно использовать паяльник? Увидел в мастерской отца радиоэлементы, начал спрашивать, а зачем, а куда, а почему... Ну и пошло, поехало. Скажу сразу, детекторный приемник не собирал (это как «Hello World!» в программировании), не верю в миф, что радиолюбитель первым делом должен собрать его, тем более, что сейчас он абсолютно бесполезен, из-за отсутствия в средневолновом диапазоне работающих радиостанций. Однако, в институте собирал несколько детекторных приемников, но уже на СВЧ диапазон, для получения энергии эфира (как-нибудь сделаю пост, если кому будет интересно).

Ну да что-то я увлекся, вернемся к микроконтроллерам.

Года четыре назад, когда я только впервые услышал слово «микроконтроллер» мне казалось, что это что-то жутко заумное и тяжелое для понимания (до этого я занимался исключительно аналоговой электроникой и простейшей жесткой логикой). Оказалось все не так сложно и даже проще того, чем я занимался. Итак что такое «Микроконтроллер»? В простейшем понимании это мини-компьютер, у которого есть центральный процессор, оперативная память, энергонезависимая память, порты ввода/вывода и другие периферийные устройства вроде АЦП (аналого-цифровой преобразователь), компараторов, счетчиков, различных интерфейсов как для соединения с компьютером, так и с другими МК. И все это богатство в небольшом корпусе принадлежит только вам, можно с ним делать все что угодно, применение ограничено только фантазией.

Различные корпуса МК

Можно сделать систему управления домашней автоматикой (включение/выключение света когда входишь в комнату или хлопаешь в ладоши, регуляция отопления в зависимости от темепературы), «мозги» для собственного робота, модный гаджет с сенсорным экраном и собственной операционной системой, GPS приемник с выводом координат и скорости на дисплей, беспилотный летательный аппарат.

Итак что такое МК и что из него можно получить понятно, остается вопрос как это все сделать. Ответ: написать программу для МК или по другому запрограммировать его! Пусть никого не пугает неизбежность программирования, на самом деле это проще, чем кажется на первый взгляд. До того, как начал заниматься МК я писал на СИ различные программы для компьютера и всяческую математику. Познакомившись с МК я, естественно, хотел программировать их на СИ и такая возможность мне была предоставлена сообществом программистов GNU (GNU's Not Unix — GNU это не Unix), которые разработали компилятор языка СИ для МК AVR — AVR GCC.

Эмблема сообщества GNU's Not Unix

Компилятор сей кроссплатформенный, т.е. работает как в Windows, так и в GNU/Linux. Ко всему прочему он абсолютно бесплатен. Сам я пользуюсь им в GNU/Linux, но раньше работал и в Windows. Я был удивлен тем, что в любой самой сложной программе для МК требуется не более 10% возможностей языка СИ, т.е., грубо говоря, требуется знание простейших условных операторов, циклов, типов данных, функций, реже указателей, структур, массивов. Все это проходится на первом курсе института у технарей.

Эмблема компилятора AVR-GCC

Я знаю, что у нас в Казахстане не мало программистов, гораздо меньше людей разбирающихся в электронике. Что дают МК для программиста? Они дают ему понимание «железа», умение разрабатывать различные аппаратные интерфейсы и протоколы передачи данных. А что дают они электронщику? Знание программирования и расширение возможностей для новых разработок. Переход от железа к программированию и наоборот всегда дается нелегко, но открывает невиданные перспективы и знания. Мне повезло на момент знакомства с МК и другими процессорами я неплохо разбирался в программировании и отлично в электронике, поэтому освоился быстро. Конечно может быть это и парадокс, но те, кто никогда не разбирался ни в электронике, ни в программировании легко осваивают и то, и другое начав работать с МК, сам не раз наблюдал такое. Дорогу осилит идущий!

Оцените пост

0