Микроконтроллеры: начало, теория — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
 
 
(не показано 7 промежуточных версий 2 участников)
Строка 1: Строка 1:
<center><h1>Микроконтроллер.</h1></center><br>
+
[[Категория:Микроконтроллеры]]
  
Контроллер - основная деталь любого небольшого робота, именно благодаря ему можно гибко запрограммировать поведение машины, настраивать робота на выполнение разных задач, не меняя его электронной начинки. Грубо говоря - это маленький компьютер.<br>
+
'''Микроконтроллер''' (МК) - основная деталь любого небольшого [[робот]]а, именно благодаря ему можно гибко запрограммировать поведение машины, настраивать робота на выполнение разных задач, не меняя его электронной начинки. Грубо говоря - это маленький [[компьютер]].
  
Внутри контроллера обычно находится:<br>
+
Внутри МК обычно находится:
*Ядро процессора
+
*[[Ядро]] процессора
*Энергонезависимая память программы (Flash)
+
*[[Энергонезависимая память]] программы (Flash)
*Оперативная память
+
*[[Оперативная память]]
 
*Энергонезависимая память данных (EEPROM)
 
*Энергонезависимая память данных (EEPROM)
*Таймер
+
*[[Таймер]]
*Набор портов ввода-вывода
+
*Набор [[Порты Ввода-Вывода|портов ввода-вывода]]
  
 
Так-же там можно обнаружить:
 
Так-же там можно обнаружить:
*Аппаратные интерфейсы (RS-232, I2C, SPI и другие)
+
*Аппаратные интерфейсы ([[RS-232]], [[I2C]], [[SPI]] и другие)
*АЦП
+
*[[АЦП]]
*Внешние линии прерываний
+
*Внешние линии [[прерывания|прерываний]]
*Аналоговый компаратор
+
*[[Аналоговый компаратор]]
 
И еще много всякой полезной переферии
 
И еще много всякой полезной переферии
  
Меня часто спрашивают что выбрать, PIC или AVR? - это, как говорится, вопрос религии. Я остановился на AVR и дальше буду писать в основном о них. Но PIC не хуже и не лучше, они просто другие.
+
Меня часто спрашивают что выбрать, [[PIC]] или [[AVR]]? - это, как говорится, вопрос религии. Я остановился на AVR и дальше буду писать в основном о них. Но PIC не хуже и не лучше, они просто другие.
  
 
Применительно к роботам часто задают следующие вопросы, постараюсь на них ответить:
 
Применительно к роботам часто задают следующие вопросы, постараюсь на них ответить:
1)Нужно ли собирать или покупать "кроваточный" параллельный программатор?
+
# Нужно ли собирать или покупать "кроваточный" параллельный программатор? - Нет, эта штука постепенно отходит в прошлое, сейчас почти все МК поддерживают внутрисхемное программирование. Тоесть шлейф-программатор подключается непосредственно к плате, на которой контроллеру предстоит работать и прошивается он не отключаясь от устройства.
*Нет, эта штука постепенно отходит в прошлое, сейчас почти все МК поддерживают внутрисхемное программирование. Тоесть шлейф-программатор подключается непосредственно к плате, на которой контроллеру предстоит работать и прошивается он не отключаясь от устройства.
+
# На что способен AVR? - Скажу сразу - никакой обработки видео он не потянет, а вот управлять роботом опираясь на сигналы датчиков сможет довольно неплохо. При грамотном подходе можно даже составлять карту местности и ориентироваться по ней.
2)На что способен AVR?
+
# Можно ли подключать двигатели прямо к выводам МК? - Нет. Ни двигатели, ни какие бы то ни было силовые нагрузки подключать нельзя. МК - это цифровая микросхема и не может выдавать большие токи в нагрузку. Для подключения моторов следует использовать [[:Категория:Драйверы двигателей|драйверы двигателей]] (например [[Драйвер двигателя L293B|L293B]]), интерфейсные микросхемы (например [[ULN2003]]), транзисторы.
*Скажу сразу - никакой обработки видео он не потянет, а вот управлять роботом опираясь на сигналы датчиков сможет довольно неплохо. При грамотном подходе можно даже составлять карту местности и ориентироваться по ней.
+
# Сколько раз можно перепрограммировать МК? - Считайте что бесконечно. А так - около 10 тысяч циклов гарантировано.
3)Можно ли подключать двигатели прямо к выводам МК?
+
# Чего следует опасаться, чем можно испортить МК? - '''Самая частая ошибка''' - переполюсовка питания. Здесь надо быть максимально внимательным, перепутывание питания даже на доли секунды безвозвратно повреждает МК. Он может не сгореть окончательно, а начать по-всякому глючить, что тоже малоприятно. '''Вторая ошибка''' - неправильная установка битов конфигурации. Во время этой операции надо просто как следует подумать перед тем как жать кнопку. Советую так-же сохранить что там было прошито по-дефолту. Об этой ошибке я еще напишу позже. '''Третья ошибка''' хоть и не убивает МК, но геморроя от нее бывает больше чем от первых двух - не оставляейте ресет висеть в воздухе, подтягивайте его к +5В резистором 20 кОм и заземляйте конденсатором - иначе всякие необъяснимые глюки гарантированы.
*Нет. Ни двигатели, ни какие бы то ни было силовые нагрузки подключать нельзя. Контроллер - это цифровая микросхема и не может выдавать большие токи в нагрузку. Для подключения моторов следует использовать драйверы двигателей (например [[Драйвер двигателя 2]]), интерфейсные микросхемы (например ULN2003) транзисторы.
 
4)Сколько раз можно перепрограммировать контроллер?
 
*Считайте что бесконечно. А так - около 10 тысяч циклов гарантировано (на всю жизнь хватит)
 
5)Чего следует опасаться, чем можно испортить контроллер?
 
*Самая частая ошибка - переполюсовка питания. Здесь надо быть максимально внимательным, перепутывание питания даже на доли секунды безвозвратно повреждает контроллер. Он может не сгореть окончательно, а начать по-всякому глючить, что тоже малоприятно. Вторая ошибка - неправильная установка битов конфигурации. Во время этой операции надо просто как следует подумать перед тем как жать кнопку. Советую так-же сохранить что там было прошито по-дефолту. Об этой ошибке я еще напишу позже. Третья ошибка хоть и не убивает контроллер, но геморроя от нее бывает больше чем от первых двух - не оставляейте ресет висеть в воздухе, подтягивайте его к +5В резистором 20 кОм и заземляйте конденсатором - иначе всякие необъяснимые глюки гарантированы.
 
  
Процесс работы с контроллером выглядит так:
+
Процесс работы с микроконтроллером выглядит так:
Программа пишется на ПК, компилируется и прошивается в контроллер.  
+
[[Программа]] пишется на ПК, [[компилятор|компилируется]] и [[Программирование МК|прошивается]] в [[контроллер]].  
  
Казалось-бы все просто, но есть одна проблема: на ПК всегда можно запустить отладчик и посмотреть что происходит в программе. Но у системы на МК чаще всего нету ни клавиатуры ни дисплея - в лучшем случае есть пара светодиодов, которыми можно поморгать.
+
Казалось-бы все просто, но есть одна проблема: на ПК всегда можно запустить [[отладчик]] и посмотреть что происходит в программе. Но у системы на МК чаще всего нету ни [[клавиатура|клавиатуры]] ни [[дисплей|дисплея]] - в лучшем случае есть пара [[светодиод]]ов, которыми можно поморгать.
 +
 
 +
{{elec-stub}}

Текущая версия на 02:04, 27 июля 2007


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

Внутри МК обычно находится:

Так-же там можно обнаружить:

И еще много всякой полезной переферии

Меня часто спрашивают что выбрать, PIC или AVR? - это, как говорится, вопрос религии. Я остановился на AVR и дальше буду писать в основном о них. Но PIC не хуже и не лучше, они просто другие.

Применительно к роботам часто задают следующие вопросы, постараюсь на них ответить:

  1. Нужно ли собирать или покупать "кроваточный" параллельный программатор? - Нет, эта штука постепенно отходит в прошлое, сейчас почти все МК поддерживают внутрисхемное программирование. Тоесть шлейф-программатор подключается непосредственно к плате, на которой контроллеру предстоит работать и прошивается он не отключаясь от устройства.
  2. На что способен AVR? - Скажу сразу - никакой обработки видео он не потянет, а вот управлять роботом опираясь на сигналы датчиков сможет довольно неплохо. При грамотном подходе можно даже составлять карту местности и ориентироваться по ней.
  3. Можно ли подключать двигатели прямо к выводам МК? - Нет. Ни двигатели, ни какие бы то ни было силовые нагрузки подключать нельзя. МК - это цифровая микросхема и не может выдавать большие токи в нагрузку. Для подключения моторов следует использовать драйверы двигателей (например L293B), интерфейсные микросхемы (например ULN2003), транзисторы.
  4. Сколько раз можно перепрограммировать МК? - Считайте что бесконечно. А так - около 10 тысяч циклов гарантировано.
  5. Чего следует опасаться, чем можно испортить МК? - Самая частая ошибка - переполюсовка питания. Здесь надо быть максимально внимательным, перепутывание питания даже на доли секунды безвозвратно повреждает МК. Он может не сгореть окончательно, а начать по-всякому глючить, что тоже малоприятно. Вторая ошибка - неправильная установка битов конфигурации. Во время этой операции надо просто как следует подумать перед тем как жать кнопку. Советую так-же сохранить что там было прошито по-дефолту. Об этой ошибке я еще напишу позже. Третья ошибка хоть и не убивает МК, но геморроя от нее бывает больше чем от первых двух - не оставляейте ресет висеть в воздухе, подтягивайте его к +5В резистором 20 кОм и заземляйте конденсатором - иначе всякие необъяснимые глюки гарантированы.

Процесс работы с микроконтроллером выглядит так: Программа пишется на ПК, компилируется и прошивается в контроллер.

Казалось-бы все просто, но есть одна проблема: на ПК всегда можно запустить отладчик и посмотреть что происходит в программе. Но у системы на МК чаще всего нету ни клавиатуры ни дисплея - в лучшем случае есть пара светодиодов, которыми можно поморгать.