Silabs_1
Сайт создан в системе uCoz
Меню сайта


Поиск по сайту
Loading


Форма входа


Помощь проекту

PayPal:

LiqPay or Credit/Debit Card:

W1 "Единый кошелек":
199990419310
WebMoney:
WME - E509190786817
WMZ - Z195499640086
WMU - U204403357554
WMR - R280087882619




Активные темы

  • Все вопросы касающиеся Neil Scope (7126)
  • инвертор на микропроцессоре с 12\220v с синусом на выходе (3)
  • Предложения по работе сайта и форума (18)
  • Изготовление ПП (7)
  • NeiLogicAnalyzer (48)
  • Двухполярный линейный БП с управлением на МК (91)
  • Заказ плат под NeilScope3 (12.2015) (60)
  • Первое знакомство с микроконтроллерами Silabs (105)
  • Куплю плату NS-3 (0)
  • Подскажите (0)



  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0



    Рекомендуемые браузеры: Mozzilla, Google Chrome






    Приветствую Вас, Пробегающий мимо · RSS 25.12.2024, 05:13

    1. Что такое микроконтроллер


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

    • процессор
    • оперативная память - ОЗУ
    • постоянная память - ПЗУ
    • порты ввода/вывода
    • последовательные интерфейсы
    • генератор тактовой частоты
    • таймеры
    • и т.д.
      От версии к версии в МК встраивают также АЦП(Аналогово-цифровой преобразователь), ЦАП, всякие последовательные интерфейсы и др., но самой главной частью любого микроконтроллера является АЛУ(арифметический логический узел), в нем и происходят все вычисления необходимые для работы  микроконтроллера - арифметические, и логические операции.
     
      Итак начнем свое знакомство с конкретным МК, а именно с C8051F320. Почему именно с этим представителем семейства МК от Silabs? А потому что данный МК обладает достаточным количеством ОЗУ и ПЗУ, имеет встроенное 10-ти разрядное АЦП, 25/21 портов ввода/вывода с допустимым напряжением на выводах до 5В и высоким втекающим током, последовательные интерфейсы SPI, УАПП и SMBus, четыре 16-разрядных таймера/счетчика, программируемый массив 16-разрядных таймеров/счетчиков(ПМС) с пятью модулями захвата/сравнения, и даже USB-контроллер, что пригодится на в дальнейшем когда мы будем постепенно переходить от простых примеров к более сложным. Еще один большой плюс выбора именно этого МК это полностью переведенная на русский язык документация, что конечно очень важно для начинающего "микроконтроллерщика". Я также надеюсь не сильно напугал Вас, возможно незнакомым Вам понятиям и терминам, ничего не обращайте пока на них внимания, постепенно Вам все станет понятно и Вы сможете так же легко оперировать всякими "страшными" терминами. Вот блок схема внутренностей C8051F320/1:


    [Image]
     


    И фото нашего подопытного:

     [Image]



      А теперь, я на простом примере попытаюсь объяснить вам работу АЛУ. У вас наверняка возник вопрос - что же это самое АЛУ делает? А делает АЛУ следующее, берет данные производит над ними арифметическую или логическую операцию и сохраняет полученный результат. Данные поступают в АЛУ из регистров общего назначения и туда же АЛУ сохраняет полученные результаты. Регистр общего назначения представляет собой ячейку памяти 8 бит то есть 1 Байт. Но откуда же АЛУ знает что ему делать? А все просто, для этого есть регистр команд в котором как раз и записано что нужно делать МК в данный момент. Данные в регистр команд попадают из ПЗУ(постоянное запоминающее устройство), в нашем МК это Flash память.
      Перейдем к конкретному примеру, подсоединим кнопку к ножке МК и пускай микроконтроллер считает сколько раз мы на нее нажали. Сейчас я не буду вдаваться в конкретную реализацию данного алгоритма в коде, а только рассмотрю работу АЛУ. Например на состояние кнопки(нажата/отжата или 0/1) мы выделили регистр(А), также выделим регистр(В) для результатов. В начале работы программы мы эти регистры обнулим, это будет обозначать что кнопка ни разу не нажималась. Теперь при нажатии кнопки в регистр А запишится значение, АЛУ приняв это значение просуммирует его со значением регистра В и запишет результат в тот же регистр В. При повторном нажатии кнопки в регистре В у же будет значение 1, а значит АЛУ приняв значение 1 из регистра А и просуммировав с регистром В запишет в регистр В уже значение равное 2. Таким образом значение регистра В и будет соответствовать количеству нажатий на кнопку. В дальнейшем мы сможем прочитать этот регистр и к примеру зажечь светодиод при количестве нажатий равном десяти.
       
      Кроме регистров общего назначения в МК присутствует ОЗУ – оперативная память микроконтроллера. ОЗУ МК нужна для того, чтобы хранить в нем данные при выполнении программы. Регистров то всего 32 и для полноценной работы этого недостаточно. В регистрах хранится обычно только те данные, которые будут использоваться непосредственно прямо сейчас, все остальное удобнее хранить в памяти.

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



    Если у Вас есть какие либо вопросы, то Вы можете их задавать на форуме.