Микроконтроллеры: начало, теория — различия между версиями
Vooon (обсуждение | вклад) |
Digit (обсуждение | вклад) м |
||
Строка 30: | Строка 30: | ||
*Считайте что бесконечно. А так - около 10 тысяч циклов гарантировано (на всю жизнь хватит) | *Считайте что бесконечно. А так - около 10 тысяч циклов гарантировано (на всю жизнь хватит) | ||
5)Чего следует опасаться, чем можно испортить контроллер? | 5)Чего следует опасаться, чем можно испортить контроллер? | ||
− | *Самая частая ошибка - переполюсовка питания. Здесь надо быть максимально внимательным, перепутывание питания даже на доли секунды безвозвратно повреждает контроллер. Он может не сгореть окончательно, а начать по-всякому глючить, что тоже малоприятно. Вторая ошибка - неправильная установка битов конфигурации. Во время этой операции надо просто как следует подумать перед тем как жать кнопку. Советую так-же сохранить что там было прошито по-дефолту. Об этой ошибке я еще напишу позже. Третья ошибка хоть и не убивает контроллер, но геморроя от нее бывает больше чем от первых двух - не оставляейте ресет висеть в воздухе, подтягивайте его к +5В резистором 20 кОм и заземляйте конденсатором - иначе всякие необъяснимые глюки гарантированы. | + | *Самая частая ошибка - переполюсовка питания. Здесь надо быть максимально внимательным, перепутывание питания даже на доли секунды безвозвратно повреждает контроллер. Он может не сгореть окончательно, а начать по-всякому глючить, что тоже малоприятно. |
+ | *Вторая ошибка - неправильная установка битов конфигурации. Во время этой операции надо просто как следует подумать перед тем как жать кнопку. Советую так-же сохранить что там было прошито по-дефолту. Об этой ошибке я еще напишу позже.*Третья ошибка хоть и не убивает контроллер, но геморроя от нее бывает больше чем от первых двух - не оставляейте ресет висеть в воздухе, подтягивайте его к +5В резистором 20 кОм и заземляйте конденсатором - иначе всякие необъяснимые глюки гарантированы. | ||
Процесс работы с контроллером выглядит так: | Процесс работы с контроллером выглядит так: |
Версия 06:04, 19 июля 2007
Микроконтроллер.
Контроллер - основная деталь любого небольшого робота, именно благодаря ему можно гибко запрограммировать поведение машины, настраивать робота на выполнение разных задач, не меняя его электронной начинки. Грубо говоря - это маленький компьютер.
Внутри контроллера обычно находится:
- Ядро процессора
- Энергонезависимая память программы (Flash)
- Оперативная память
- Энергонезависимая память данных (EEPROM)
- Таймер
- Набор портов ввода-вывода
Так-же там можно обнаружить:
- Аппаратные интерфейсы (RS-232, I2C, SPI и другие)
- АЦП
- Внешние линии прерываний
- Аналоговый компаратор
И еще много всякой полезной переферии
Меня часто спрашивают что выбрать, PIC или AVR? - это, как говорится, вопрос религии. Я остановился на AVR и дальше буду писать в основном о них. Но PIC не хуже и не лучше, они просто другие.
Применительно к роботам часто задают следующие вопросы, постараюсь на них ответить: 1)Нужно ли собирать или покупать "кроваточный" параллельный программатор?
- Нет, эта штука постепенно отходит в прошлое, сейчас почти все МК поддерживают внутрисхемное программирование. Тоесть шлейф-программатор подключается непосредственно к плате, на которой контроллеру предстоит работать и прошивается он не отключаясь от устройства.
2)На что способен AVR?
- Скажу сразу - никакой обработки видео он не потянет, а вот управлять роботом опираясь на сигналы датчиков сможет довольно неплохо. При грамотном подходе можно даже составлять карту местности и ориентироваться по ней.
3)Можно ли подключать двигатели прямо к выводам МК?
- Нет. Ни двигатели, ни какие бы то ни было силовые нагрузки подключать нельзя. Контроллер - это цифровая микросхема и не может выдавать большие токи в нагрузку. Для подключения моторов следует использовать драйверы двигателей (например Драйвер двигателя 2), интерфейсные микросхемы (например ULN2003) транзисторы.
4)Сколько раз можно перепрограммировать контроллер?
- Считайте что бесконечно. А так - около 10 тысяч циклов гарантировано (на всю жизнь хватит)
5)Чего следует опасаться, чем можно испортить контроллер?
- Самая частая ошибка - переполюсовка питания. Здесь надо быть максимально внимательным, перепутывание питания даже на доли секунды безвозвратно повреждает контроллер. Он может не сгореть окончательно, а начать по-всякому глючить, что тоже малоприятно.
- Вторая ошибка - неправильная установка битов конфигурации. Во время этой операции надо просто как следует подумать перед тем как жать кнопку. Советую так-же сохранить что там было прошито по-дефолту. Об этой ошибке я еще напишу позже.*Третья ошибка хоть и не убивает контроллер, но геморроя от нее бывает больше чем от первых двух - не оставляейте ресет висеть в воздухе, подтягивайте его к +5В резистором 20 кОм и заземляйте конденсатором - иначе всякие необъяснимые глюки гарантированы.
Процесс работы с контроллером выглядит так: Программа пишется на ПК, компилируется и прошивается в контроллер.
Казалось-бы все просто, но есть одна проблема: на ПК всегда можно запустить отладчик и посмотреть что происходит в программе. Но у системы на МК чаще всего нету ни клавиатуры ни дисплея - в лучшем случае есть пара светодиодов, которыми можно поморгать.