О микроконтроллерах

    Около 55% проданных в мире процессоров приходится на 8ми битные микроконтроллеры. Более 4 млрд. 8ми битных микроконтроллеров продано в 2006. Они установлены в микроволновках, стиральных машинах, музыкальных центрах… При этом они являются однокристальными компьютерами, со своим процессором, памятью, портами ввода-вывода. В статье я постараюсь кратко объяснить что это за звери и как их приручают.

    Тема обширная и скорее подходит для многотомной книги, если разбирать всё, поэтому в статье будут намеренные упрощения и опускание всяческих тонкостей. Прошу строго не судить, в этой теме я сам далеко не профессионал, да и это моя первая статья на хабре. Если запостил не в тот блог прошу переместить в нужный.

    Микроконтроллер – это однокристальная ЭВМ. В 1971 придумали разместить всю обвязку процессора (ОЗУ, контроллеры портов, ПЗУ и т.д.) на одном чипе. В 1980 intel уже выпускает первый микроконтроллер. На сегодняшний момент на чипе микроконтроллера содержится процессор, flash память для программ, объемом 1К – 256K; 32 B — 8KB SRAM (ОЗУ); 64 B – 4KB EEPROM. Тактовая частота 1 – 16 Мгц. Конечно же цифры только примерные, всё зависит от производителя и модели. Таким образом микроконтроллер имеет гарвардскую архитектуру, т.е. раздельные памяти данных и программ.

    Естественно без холивара не обошлось и тут. На рынке примерно по 30% занимают контроллеры разных производителей и архитектур. Старое семейство MCS-51 (8051), семейство PIC от фирмы microchip и семейство AVR от фирмы Atmel. Всяческие специализированные микроконтроллеры мы не рассматриваем. (Есть кстати даже наш, отечественный микроконтроллер КР1878ВЕ1 (An15E03) от фирмы Ангстрем, только для него пишут и на нем разрабатывают устройства военные и законченные гики, т.к. нет ни развитой поддержки, ни инструментария). На тех форумах, что я обитаю, подавляющим большинством используются микроконтроллеры фирмы atmel, поэтому дальнейшее повествование будет в основном о них. Глобально они от PIC и других не отличаются, различия лишь в параметрах (скорость, количество команд, памяти, наличие перефирии…).

    Причины использования микроконтроллеров.

    Несмотря на то, что микроконтроллер устройство довольно сложное, их использование значительно упрощает разработку электронных устройств. Аппаратные схемотехнические решения переносятся в плоскость программного кода. Реле в шкафу автоматики заменяется строкой на Си. Этим и достигается огромная гибкость, ведь большинство микроконтроллеров можно перепрошивать не вынимая из платы. Часы будильник с функцией включения нагрузки (например чайника) в заданное время может быть аппаратно абсолютно таким же, как например блок управления микроволновкой, только программы будут различаться. Именно из-за этого, когда производитель не может себе позволить разработать специализированную микросхему он задает всю логику работы виде программы и зашивает ее в микроконтроллер.

    На чем программируется микроконтроллер?

    Исторически основной язык – ассемблер. В частности КР1878ВЕ1 программируется только на ассемблере. Для других микроконтроллеров существую компиляторы для языка Си. Для atmelовских микроконтроллеров существует опенсорсный компилятор WinAVR (порт gcc). Также есть компилятор для бейсика Bascom AVR, и даже для языка Forth. Изначально архитектура микроконтроллеров AVR была оптимизирована для того, что бы программы написанные на Си выполнялись быстрее.

    Рассмотрим на примере.
    Давайте возьмем микроконтроллер ATMEGA8 и на его примере рассмотрим что он может.
    За 28 руб. (опт) / 41 руб. (розн) мы получаем чип, который содержит в себе:
    • 8 ми битный RISC процессор, 130 команд, большая часть из которых выполняется за 1 такт, 32 регистра общего назначения. Производительность до 16 MIPS при 16 Мгц.
    • 8К flash памяти для программ, 512 байт EEPROM памяти, 1K SRAM
    • Два 8ми битных и один 16 битный таймер (позволяют формировать импульсы заданной длительности/ подсчитывать импульсы автономно, не отвлекая CPU)
    • 3 канала ШИМ
    • 8ми канальный АЦП
    • Аппаратный модуль Two Wire Interface (клон I2C)
    • Модуль USART
    • Аналоговый компаратор.
    • 23 линии ввода/вывода
    Подробно всё описано в даташите к этому микроконтроллеру: www.atmel.com/dyn/resources/prod_documents/doc2486.pdf (308 стр, англ.). Среди выпускаемых фирмой Atmel это не самый слабый и не самый крутой микроконтроллер.
    Так как количество ножек у микросхемы ограничено, то практически все имеют по 2 функции, переключаемые программно.
    Линии ввода-вывода объединены группами по 8 в порты, именуемые PORTA, PORTB и т.д. Управление портами и встроенной периферией производится путем записи и чтения данных из специальных регистров. Так например что бы выставить высокий логический уровень (+5 В) на третьей линии порта A нужно выставить третий бит в регистре PORTA вот так:
    PORTA |= (1<<3);
    А для того что бы например измерить уровень сигнала на 1 выводе АЦП нужно:

    ADCSRA |= (1<<6); //устанавливаем бит ADSC который запускает процесс измерения
    //процесс преобразования занимает около 13 тактов
    Result = ADCW; //забираем результат из соответствующего регистра.


    Работа с остальными модулями микроконтроллера (USART, TWI, таймеры) примерно такая же – выставить нужные биты, что бы их настроить, и забрать/записать данные в специальные регистры.

    У микроконтроллера развитая система прерываний. Что бы не нагружать процессор постоянной проверкой состояния (завершилось ли преобразование АЦП, достиг ли счётчик таймера требуемого значения, поступил ли сигнал на порт) включаются прерывания на соответствующие события и пишутся обработчики прерывания.
    Программа микроконтроллера представляет собой бесконечный цикл. Вот например программа которая будет мигать светодиодом, подключенным в 3 ноге порта A:

    #include <delay.h>
    void main (void)
    {
    while(1)
    {
    PORTA |= (1<<3); //основная программа
    delay_ms(100);
    PORTA &= ~(1<<3);
    delay_ms(100);
    };
    };


    Таким образом видно, что ничего сложного в микроконтроллерах нет, и практически каждый при желании может делать необходимые для себя гаджеты, как например часы-полка, опубликованные на хабрахабре недавно. Также я недавно видел как на базе платформы Arduino (тот же микроконтроллер только распаянный на плате и кучей клемм для подключения внешней нагрузки) сделали дверной звонок, работающий с твиттером (http://rooreynolds.com/2008/05/14/hacking-the-doorbell/) Благодаря тому, что силами энтузиастов созданы библиотеки для работы с распространенными узлами (LCD экраны, термометры…) срок и сложность разработки сильно сокращаются. В следующей статье я покажу как за 1,5 дня сделать электронные часы на микроконтроллере.

    Средняя зарплата в IT

    120 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 9 370 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 101

      +8
      Так же можно сказать, что та же Atmel выпускает микроконтроллеры с интерфейсами USB, IDE, реализует встроенные интерфейсы для MMC, SD карт, декодеры MP3 и т.п., что позволяет запросто создать свой mp3 плеер. У той же Atmel есть микроконтроллер с 8! ножками серии AVR, что позволяет делать простенькие но маленькие устройства.

      В инете для AVR существует реализация TCP/IP стека, что позволяет делать устройства взаимодействующие с сетью.

      Микроконтроллеры — хорошая штука. Они затягивают. Там нет ничего сложного, но результат может быть очень полезным или забавным.
        +2
        О да!
        У микроконтроллеров огромный потенциал!
        Технологии позволяют, а пользователь «требует» использования микроконтроллеров в кластерной системе.
        Так что устройсва, которые будут работать как мозг человека (на каждый интерфейс ввода данных — один «контроллер») совсем не за горами!
        +4
        Вот и узнал, как же работают эти микроволновки и стиральные машины. Кстати, а можно ли писать код для каких-нибудь микроконтроллеров на java?
        • НЛО прилетело и опубликовало эту надпись здесь
            0
            Ассемблера гораздо меньше чем Си )
              0
              Смотря под что, под С51 имхо асма больше :)
                +1
                о, привет!
                ты не мог не объявиться в этой теме!
                (я grubbka из жж)

                2all: кому по душе кондёры и резисторы — почитайте его жж )
                (и камюнити тоже)
                  0
                  упс, судя по вкладу и карме, этого товарища знают хорошо
                  (растворяюсь)
          • НЛО прилетело и опубликовало эту надпись здесь
            • НЛО прилетело и опубликовало эту надпись здесь
              +2
              Вопрос не в том, можно ли, а в том, есть ли смысл. То, что это однокристальная ЭВМ не говорит о том, что это полноценный компьютер. Туда и ось в принципе не нужна, т.к. он затачивается под выполнение конкретной задачи в конкретном устройстве. Именно поэтому такое распространение получили именно 8 битные МК — для задач управления их возможностей более чем достаточно. А теперь представьте зачем в этой области нужна переносимость. С кофеварки на чайник код переносить?
              • НЛО прилетело и опубликовало эту надпись здесь
                  +1
                  в далёких начальных 90-ых, я работал «на втором конце провода» за персональкой, а моими коллегами были классные мужики, уоторые похое на зубок знали команды C51, и правил свои программы прям в образе ПЗУ. Так вот, они предпочитали С и PL-1 (или там PL-M? не помню). Просто потому, что удобнее. Компилятор делал гораздо больше работы сам, чем если писать на ASM.

                  Java — это следующий шаг удобства для разработчика. Насколько оно оправдано в 8-ми битных железках, я не знаю. Но насколько я помню, разрабатывали Java, именно как инструмент для встраиваемых систем.
                    0
                    компьютер — это сеть
                    а кофеварки, холодильники и телевизоры, по-хорошему, тоже должны быть в сети.
                    ява, помимо гораздо меньшего времени на разработку и большей надежности, даст возможность пересылать исполняемые коды по сети, производить динамическое нахождение устройств, прозрачное обновление кода и еще много-много чего вкусного. именно для этого она и создавалась
                      0
                      >прозрачное обновление кода и еще много-много чего вкусного
                      Вы хотите, чтобы на ваш холодильник прозрачно трояны зашивали? ;)

                      А теперь кроме шуток. Как вы думаете, почему в МК не используют, например, C++, а только С? Для чего вообще вводились концепции ООП? Чтобы облегчить работу программистам при написании больших программ. Насколько большая программа может влезть в 8 Кб памяти данных?

                      Мне, например, очень Ruby нравиться. Но это всего лишь инструмент. А каждый инструмент заточен под свои задачи. Вы же не будете забивать гвозди перфоратором.

                      Java — это хорошая вещь, когда у тебя есть архитектура (ты поставил на плату процессор, флэшь, раму — от них и танцуешь). Здесь же с каждым новым устройством ты к ножкам подключаешь что то новое, каждое новое устройство — это новая архитектура. И понятие портируемость здесь не совсем уместно.

                      А теперь о главном. Многие люди, искушённые в программировании, с временем начинают интересоваться железом (в частности МК). И на первых порах создается иллюзия, что раз на МК можно писать хоть на С, хоть на бейсике, то он мало чем отличается от x86 со всеми его ОСями и виртуальными машинами. На самом же деле чтобы заниматься контроллерами нужно в первую очередь быть хорошим схемотехником, а уже потом неплохим программистом. Это уровень железа, это потенциалы на ножках, здесь впервые телом начинаешь ощущать физический смысл размерности переменной. (да, и еще здесь нет 10к слоев ядер ОСЕй, библиотек и виртуальных машин. Какой потенциал подал на ножку — такой и будет.) Поэтому, если хочешь решать конкретные задачи управления для абсолютного большинства невычислительных устройств — учимся отвыкать от прелестей ООП.
                        0
                        дело в том, что техника не стоит на месте. даже на кустарном уровне люди постепенно уходят от «подачи потенциала на ножку», тем более когда речь идет о массовых фабричных изделиях.
                        контороллеры общаются по стандартным интерфейсам, типа USB/Ethernet и т.д.
                        именно в этом случае начинает замечательно работать Ява. и 8кб памяти ей совсем не мешает. спецификация Java Card существует уже лет 8
                    0
                    Существуют встраиваемые компьютеры с Java-машиной. А еще есть Java для контроллеров.
                      0
                      +3
                      Я впринципе могу рассказать как делал считыватель RFID-карт (что используются в большинстве офисов) на АтМеге 8 -)
                        +3
                        тогда ждем статью
                          +1
                          ок, мне и самому интересно будет статью писать )
                            0
                            Почитал про микроконтроллеры — зацепило. Когда-то писал на Ассемблере простые утилитки. С контроллерами вроде тоже все ненамного сложнее.
                              0
                              Намного проще. Там даже мудрить то нечего. ЯДро и простейшая периферия.
                          0
                          с dll от производителя считывателя?
                            +1
                            Есть карточка, есть формат хранимых данных. Нужно создать устройство, способное принять этот код, обработать его и передать дальше на центральный контроллер.
                              0
                              это было бы интересно почитать)
                            0
                            я тоже делал ;) на PIC-е
                            кстати, если кому надо, мой имеет открытый SDK — spnx.ru/reader_eh.php
                            +1
                            Опишите еще взаимодействие с USB, правда тут насколько я понимаю нужен еще готовый USB-контроллер?
                              0
                              бывает что USB интерфейс встроен в чип как одна из функций.
                              а бывает что ставят отдельный переферийный процессор, который дает USB, а с этим переферийным процессором интерфейс очень простой — обычный последовательный (как COM-порт). на таких же переферийных процессорах делают шнурки для сотовых
                                0
                                Необязательно, господа из Objective Development, создали програмную реализацию USB для avr микроконтроллеров. Впринципе работает вполне сносно, на сайте есть достаточно примеров и готовых устройств.
                                +1
                                Вот, кстати, очень интересная тема. Думаю, что когда закончу учиться на программиста — пойду становиться промэлектронщиком. Уж очень роботизация меня заводит. Я так понимаю, что разработка печатных плат не сложнее программирования, по крайней мере принципы те же. Только работается с параметрами электричества, а не напряжения.
                                К чему это я все. Во-первых, пожалуйста, поправьте меня, если я не прав, а во-вторых, может кто-нибудь посоветует качественную литературу по этому поводу? Буду безумно благодарен.
                                  +1
                                  1) прежде всего нужно разработать схему. в большинстве случаев разработка печатной платы довольно проста, ставишь элементы (резисторы, конденсаторы) в нужные места, а программа автоматически их соединяет проводниками (автотрассировщики), в частности материнские платы разведены автоматически и только потом подправлены вручную где надо). Одно и двухсторонние небольшие платы можно самим нарисовать в программах, их разработка не требует расчетов, скорее это такая головоломка.
                                  2) судя по всему те расчеты о которых вы говорите это относится к разработке электронной схемы. в большинстве простых устройств расчеты не выходят за закон ома. Более серъезную информацию п расчетам можно найти в учебнике электротехники. Также рекомендую почитать Хоровиц, Хилл, «искусство схемотехники».
                                  3)меня самого увлекает разработка, но спешу остудить пыл, разработка промышленной электроники преследуют кипы ГОСТов, тонны требований надежности, цены, технологичности, электромагнитной совместимости, долговечности.
                                    0
                                    О роботах:
                                    habrahabr.ru/blogs/selfmade_robot/

                                    А вообще будь! Электронщиков реально не хватает. Я когда закончил универ так меня были готовы с руками оторвать и взять на моих условиях.

                                    Проектирование схем цифровой низкочастотной электроники это не сложно. Вот ВЧ или точная аналоговая тут уже больше тонкостей.
                                      +1
                                      Моя специальность, вернее направление по которому можно было пойти, но я не нашла куда. Возможно в Челябинске гораздо больше производства чем в Днепре. Даже взгрустнулось.
                                        0
                                        Я думаю не все так плохо как кажется на певрый взгляд.

                                        Да крупные градообразующие предприятия почти мертвы, это факт. Но есть куча частников.

                                        Производители пластиковых окон — у них у всех одни и те же автоматиизрованные линии

                                        Резка лазером — эти станки по сути дела мощные роботы, покупают их БУ (новые дорогие очень) поэтому они часто ломаются — нужны ремонтники шарящие во всей этой автоматике.

                                        и таких примеров очень много.
                                          0
                                          Спасибо
                                    0
                                    Да контроллеры это вещь!
                                    Если не ошибаюсь есть еще DSP контроллеры, которые очень широко применяются в серьезных девайсах. типа авиа приборы и тому подобное!
                                    +1
                                    Давно хотел про это человеческим языком почитать, побольше примерчиков бы :)
                                      +1
                                      примерчики будут в последующих статьях, следите за обновлениями)
                                      0
                                      «На тех форумах, что я обитаю»
                                      а можно пару линков на хорошие форумы по теме?
                                      Спасибо!
                                      0
                                      очень интересно было читать!
                                      скажите, а насколько серьезные знания в электронике должны быть, чтобы этим заниматься?
                                      программировать умею, а вот паять не особо…
                                        0
                                        «а насколько серьезные знания в электронике должны быть, чтобы этим заниматься?»
                                        Закон Ома, понимание что такое цифровая и аналоговая электроника, общее представление о схемотехнике. Это в случае если схемы готовые брать). Изготовление печатных плат можно зашарить уже в процессе.
                                        Так что если есть желание и время, начать не проблема!)
                                          0
                                          Интересно, может пора уже написать статью по сборке простейшего робота?
                                            0
                                              +1
                                              Ох как приятно, что мой алгоритм случайного блуждания по цепи Маркова используют следующие поколения.
                                              Вот эти таблицы случайного блуждания в данных целях были предложены именно мной. Ну это я выпендриваюсь просто.
                                                0
                                                Вот еще, как мне кажется прородитель этого дела
                                                projects.roboclub.ru/index.shtml? attempt
                                                0
                                                  0
                                                  А где тут статья как с нуля собрать робота? =)
                                                    0
                                                    Весь блог этому и посвящен.

                                                    Вначале шасси, потом контроллер.
                                                    Я не стал превращать конкретный топик в свалку материалов по построению робота, выложил лишь готовый результат с описанием и поделился местом где взять подробности.

                                                    Схема, плата, прошивка. Технология изготовления плат.

                                                    Или под нулем вы понимаете отливку деталей из пластмассы и пайку микросхем на дискретных компонентах? ;)
                                                      0
                                                      Нет, у вас, как мне кажется, идет описание того, что делаете вы (пусть и с выкладыванием схем). А для новичка нужны указания что должен сделать он чтобы у него получилось.
                                                        0
                                                        Да, так и есть. Ничего не утаиваю, но и как закручивать отверткой болты в клеммнике разьяснять не собираюсь. =)
                                                  0
                                                  Начинал с чтения ресурса avr123.nm.ru. Там достаточно специфический стиль изложения, но зато много полезной информации о том как начать с нуля.
                                              0
                                              Спасибо, добавил в закладки, как раз в этом году в университете будут микроконтроллеры. Как вижу, тема интересная, буду постигать.
                                                +1
                                                Скорей всего будете ассемблер изучать. Либо MSC 51 (что вероятней) либо AVR. Если АВР то easyelectronics.ru содержит учебный курс по этому контроллеру :)
                                                  0
                                                  AVR будет точно, узнавал уже:) За линк спасибо, будем пользоваться!
                                                0
                                                интересно бы узнать, какой есть софт для эмуляции контроллеров? отладку на контроллере не сделаешь, а постоянно перезаписывать микросхему замучаешься
                                                  0
                                                  для атмеловских МК компания выпускает бесплатную программу AVR Studio. там можно хоть пошагово прогонять программу, на ходу меняя значения регистров. А так я большую часть отлаживаю в PROTEUS
                                                    +1
                                                    Для AVR я использую программу VMLAB. Из основных преимуществ: пошаговый отладчик, осциллограф выводов контроллера (рисует графики изменения состояния выводов по ходу выполнения программы), интегрирована с компилятором ассемблера, бесплатная. Мне пока не удалось полноценно интегрироваться с компилятором Си (чтобы подсвечивал при выполнении строку кода), но поскольку я больше на асме пишу, это не особо напрягает.
                                                      0
                                                      с осцилографом это очень интересно
                                                      0
                                                      C протеусом и прочими виртуальными отладчиками только осторожней :) Не доверяйте им на 100% Часто схема отлично работающая в отладчике не работает на практике и наоборот.
                                                        0
                                                        +1. уже зарекся верить протеусу в системах, сложнее моргания светодиодами на ножках, а уж если речь идет об аналоговой измерительной технике — совсем верить нельзя. Никому верить нельзя :-)
                                                        0
                                                        Многие контроллеры поддерживают отладку через JTAG т.е. подключаешься этим JTAG адаптером к контроллеру и пошагово все отлаживаешь прям в чреве реального устройства. Также появился новый интерфейс — DebugWire это вообще однопроводное решение.
                                                        0
                                                        На хабре микроконтроллерный бум =)
                                                          +2
                                                          Когда надоедает чистое программирование и хочется что-то сделать руками — МК для программиста самое то, ИМХО. Во-первых увлекательно, когда «оно» мигает или ползает, а во-вторых и для чего-то полезно может быть.

                                                          Я вот на AVR 8битных сейчас делаю «умный дом» в простейшей версии, возможностей этих маленьких чипов вполне хватает, а по сравнению с компами меньше объем программы — больше надежность.
                                                            0
                                                            А самое главное не надо стрелять из пушки по воробьям
                                                              0
                                                              «Умный дом»… Давно этой идеей брежу… Пока вот решил остановиться на X10 ( ru.wikipedia.org/wiki/X10_(стандарт) ). Просто, но эффективно…
                                                                0
                                                                Когда-нибудь этот парсер починят? Или можно его хоть как-то для своих сообщений отключить? :(
                                                              0
                                                              Просто, вопреки народной мудрости, заразен на только дурной пример.
                                                                0
                                                                И это здорово! А то я сюда все реже и реже захожу :)
                                                                0
                                                                Отличная статья! Я именно сейчас понял, что хочу попробовать это :) Сам учусь в техническом ВУЗе, с физикой связан. Ассемблер для x86 знаю хорошо. Все эти порты, напряжения понимаю. В общем база некоторая есть.

                                                                Можно ли Вас попросить в следующей статье упомянуть, что нужно для того, чтобы собрать это всё? Ну кроме самого констроллера и компилятора. Там проводки, паяльник, что ещё?:)

                                                                Буду ну ОЧЕНЬ признатаелен.
                                                                  0
                                                                  По минимуму:
                                                                  паяльник (лучше не более 40-а ватт),
                                                                  флюс (канифоль),
                                                                  припой (ПОС-61),
                                                                  мультитестер,
                                                                  программатор,
                                                                  микроконтроллер, ATMega8/ATMega16 в DIP корпусе (лучше взять сразу пару),
                                                                  макетную плату,
                                                                  панельку
                                                                  россыпь резисторов разного номинала, светодиодов (для нача хватит),
                                                                  монтажный провод (например можно добыть из LPT удлиннителя)
                                                                    0
                                                                    А программатор в данном случае зачем? Простите за глупый вопрос :) Мультитестер я так понимаю для «прослушки» цепи? И что за панелька?
                                                                      0
                                                                      Программатор нужен чтобы залить программу в МК :)
                                                                        0
                                                                        Программатор, чтобы зашить программу в МК.

                                                                        Панелька это разъем для МК, подобие сокета на материнской плате.
                                                                        Рекомендую такую для меги 16/32: TRL-40.

                                                                        Мультитестер вещь просто незаменимая. Да для проверки нужен.
                                                                      0
                                                                      о том как паять, как делать платы — есть на портале licrym.org Статью по пайке я хочу перенести сюда.

                                                                      что бы начать нужно:
                                                                      паяльник на 25 ватт (можно 40), макетная плата (продается в радиомагазинах, такая плата из дырочек с шагом 2,54 мм, выводы соединяют куском провода.), нож и пинцет. Ну и сам микроконтроллер еще. В следующей статье я в заголовке дам ссылки на необходимые для создания технологии (пайка и лазерно-утюжная технология изготовления плат).

                                                                      Прошу на сайте licrym.org читать статьи и писать мне, чего нехватает и что нужно раскрыть поподробнее — я по мере возможности буду исправлять и дорабатывать.
                                                                        0
                                                                        Хорошая идея упомянуть в статье и дать ссылки. Буду ждать! Сайт конечно почитаю.

                                                                        У вас какой паяльник(фирма-производитель, модель)?
                                                                          0
                                                                          пока псковский на 25 вт. и китайский какой то CT-BRAND на 35 ватт. мои паяльники как раз на фотках в статье)
                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                        0
                                                                        Нет. Вам потребуется установить avr-gcc, binutils-avr, avr-libc
                                                                        Но с отладкой сложнее чем под win.
                                                                        В качестве IDE можно использовать eclips с avr eclipse plugin'ом
                                                                          0
                                                                          Забыл еще сказать про avrdude.

                                                                          А вообще гугл выдает довольно много ссылок по запросу «avr mac».
                                                                          Впринципе вс теже пакеты что и для линукса.
                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                            0
                                                                            если знаете английский язык то почитайте материалы на arduino.cc программная часть вместе с прошивальщиком бегает под маком, а разводка плат доступна бесплатно.

                                                                            для заливки прошивки в микросхему опенсорсниками используется программа avrdude, скорее всего есть порт под мак. Компилировать программу можно AVR-GCC.
                                                                            0
                                                                            Блин, увлечься чтоли… =)
                                                                              0
                                                                              Лапки зачесались… хочется сделать что-то такое, чтоб бегало, ездило или хотя бы время показывало
                                                                              … и прогноз погоды. :)
                                                                                0
                                                                                Ну так сделай! =))) одного хотения мало, надо еще действие.
                                                                                  0
                                                                                  Да… надо ещё и разные электрические науки поизучать, а то я закон Ома не помню
                                                                                  … не говоря уж про остальное...))
                                                                                0
                                                                                >В 1980 intel уже выпускает первый микроконтроллер
                                                                                Неправда, в 1976. www.cpushack.net/IntelMicrocontrollers.html#48

                                                                                >Около 55% проданных в мире процессоров приходится на 8ми битные микроконтроллеры.
                                                                                Меньше. Уже меньше 40% и в перспективе будет уменьшаться. www.edn.com/article/CA502421.html

                                                                                >Таким образом микроконтроллер имеет гарвардскую архитектуру, т.е. раздельные памяти данных и программ.
                                                                                Вы это о чем? Вы о каком м-ре говорите? Почитайте про модифицированную гарвардскую архитектуру, про фон-нейманскую…

                                                                                >Естественно без холивара не обошлось и тут.
                                                                                При чем здесь это?! «конкуренция» == «священная война» ?!

                                                                                >Исторически основной язык – ассемблер.
                                                                                Основной язык — это Си. Если мы конечно говорим о сегодняшнем дне и если под словом «основной» имелось ввиду наиболее часто используемый… И ассемблер — это не язык, а инструмент перевода мнемоники языка ассемблерА в машинный код. И говорят «язык ассемблерА». И, как правило, на практике язык ассемблера необходим для низкоуровневой оптимизации, а также для проектирования компиляторов ЯВУ.

                                                                                >Глобально они от PIC и других не отличаются, различия лишь в параметрах (скорость, количество команд, памяти, наличие перефирии…).
                                                                                OMG! Понятие «архитектура» вам ведомо?

                                                                                У меня вопрос: вы кроме AVR что использовали на практике?

                                                                                2 all: В общем, не советую использовать данную заметку как начальную точку погружения в часть мира разработки цифровой электроники ( в мир микроконтроллеров )…

                                                                                  0
                                                                                  А что советуете? К тому же меня меньше всего волнуют даты, если честно :)
                                                                                    0
                                                                                    вот мне не нравится такой подход — «автор ты мудак, у тебя всё неправильно. люди не слушайте его.» и заканчивается это именно точкой, а не фразой «в действительности это так-то и так-то, и чтобы что-то сделать нужно сделать вот так и вот так»…
                                                                                    ну что за идиотские выкрики «автор мудак» ???
                                                                                      0
                                                                                      Автор не «мудак». Автор просто начинающий в это области ( как и я сам, кстати ).
                                                                                      Я решил предупредить читающих, что данная информация не должна быть авторитетной для еще более начинающих, т.к. в ней много ошибок. Кстати, если вы прочтете мой пост внимательно, то увидите, что я написал по пунктам что не так и «в действительности это так-то и так-то».
                                                                                      Да, и мне не нравится подход — «комментирующий, ты — мудак, т.к. ты позволили себе критику»…
                                                                                        0
                                                                                        на самом деле ошибки не такие уж и критичные что бы материал выкидывать на свалку. Предложите на смену нечто другое)

                                                                                        суть не в этом, суть в том, что «Студент — это не гусь, которого нужно нафаршировать, а факел, который нужно зажечь». //И.Е.Тамм. Поэтому неважно, какой указан год, или как точнее сказать, если материал заинтересовал читателя и он пошел почитать «что нибудь еще» по теме значит он выполнил свою функцию. Статья — запал, а не справочник.
                                                                                    0
                                                                                    всегда это было интересно. с детства проводки и моторчики. но… руки… ну не заработал у меня в свое время детекторный приемник.
                                                                                    потому — программист: D
                                                                                      0
                                                                                      А еще есть страшные звери именем ПЛИС, в которых можно самому сделать свой собственный процессор. А на одном физическом кристалле таких процессоров может быть несколько :-)
                                                                                        0
                                                                                        Есть.
                                                                                        Но мне не верится, что найдется человек не осиливший АВР, осилит ПЛИС.
                                                                                          0
                                                                                          Извените. s/осилит/осиливший/
                                                                                            0
                                                                                            Хм… Это сложный вопрос. Я вот верю, что можно всерьез заниматься ПЛИС и не уметь программировать микроконтроллеры — там языки слишком разные :-)

                                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                        Самое читаемое