"Изучаем микроконтроллеры". Старт с нуля.
Создана: 25 Августа 2011 Чтв 9:23:10.
Раздел: "Радио и электроника"
Сообщений в теме: 29, просмотров: 7240
-
Начало данной темы было положено в топике:
https://omsk.com/viewtopic.php?t=207103
Топик потерял актульность для ТС, в плане поиска работы, но информация выложенная там может еще много кому пригодится. Предлагаю здесь продолжить начатую тему.
В связи с чем объявляется набор профессуры и студентов.
Для начала есть смысл остановится на двух типах МК - от микрочип(PIC) и Атмел(AVR), как более понятные для начинающих. Так же остановится на двух азыках программирования - Си(как более понятный для людей имеющих опыт в программировании на ПК) и ассемблере (как язык, позволяющий лучше понять архитектуру МК).
Рассматриваться другие типы МК и языки, в данной ветке конечно могут, но поверхностно, так ветка для начинающих и много воды будет для нее вредно. -
-
Для начала хотелось бы услышать, кто как стартовал в этой области, какие пакеты для программирования использовал, какие чипы, какую литературу изучал, какие трудности испытал, какие первые важные уроки получил на старте.
Для начала расскажу о себе, впервые столкнулся с самостоятельным программированием МК(только заливка прошивки) шесть лет в проекте по включению автомата диафрагмы и сигнализации о фокусировке отечественного объектива на автофокусных фотокамерах от "Минолта". Использовался чип Аттини 12. Потом небольшой проект по созданию УСБи клавиатуры(к ПК) с энкодерами, чипы Аттини2313 и Атмега8, до этого собрал УСБ программатор для AVR.
[внешняя ссылка]
что позволило мне понять что такое фьзы, как производить заливку в МК, читать исходники(не до конца их понимая).
Следующий этап, создание вышеобозначенной ветки, где впервые написал свою маленькую программку на Си для AVR.
Из первоначального опыта усвоил следующие уроки:
1. Не желательно без необходимости "включать" светодиоды на выходе МК "единицей", говорят это плохой тон, лучше их коммутировать "нулем", естественно это относится к прямому включению светодиода через резистор на ногу МК.
2. Нельзя оставлять пустыми входы МК, в противном случае, значения на входах будут не предсказуемыми.
3. При выборе МК, обязательно учитывать поддержку этого МК в программах компиляции и эмуляции в которых работаешь.
4. Компиляторы языков не всегда взаимозаменяемые, т.е. программа написанная под один компилятор, при переходе на другой, как правило требует портирования.
Это пока все. -
-
-
Отмечу, что я против категоричности, но не против этого пункта. Неиспользуемые в процессе работы устройства входы МК можно оставлять незадействованными. Но наряду с этим требуется проверить, что эти выводы действительно в программе не используются. Вот выдержка из документации на известный многим МК серии AVR ATMega8:
Код: If some pins are unused, it is recommended to ensure that these pins have a defined level. Even though most of the digital inputs are disabled in the deep sleep modes as described above, floating inputs should be avoided to reduce current consumption in all other modes where the digital inputs are enabled (Reset, Active mode and Idle mode).
The simplest method to ensure a defined level of an unused pin, is to enable the internal pull-up. In this case, the pull-up will be disabled during reset. If low power consumption during reset is important, it is recommended to use an external pull-up or pull-down.
Connecting unused pins directly to VCC or GND is not recommended, since this may cause excessive currents if the pin is accidentally configured as an output.
Как видите, про НЕЛЬЗЯ здесь речи не идет. Есть рекомендация: не давать болтаться неиспользуемому выводу, подключив внутреннюю подтяжку. А на примере этого и много других контроллеров при подаче питания порты всегда настроены на вход с включенной подтяжкой. И если программист не дурак, то он не будет отключать выставленную по дефолту микроконтроллером подтяжку. И пусть себе болтается тогда неподключенной. -
Яростно поддерживаю. Особенно интересно читать блоги, как люди делятся полезным опытом и граблями, [внешняя ссылка] -
-
Я всегда на свободных портах выставляю ноли и бросаю на произвол судьбы.Но никогда 1. -
Ветка задумана не для того,чтоб тыкать новичков носом.Читать все умеют.Рассказать очень просто и доходчиво-вот задача ветки. -
pictele писал :
Я всегда на свободных портах выставляю ноли и бросаю на произвол судьбы.Но никогда 1.
Я свободные порты конфигурирую на вход и включаю подтяжку.
Потому что если туда случайно попадет либо земля либо питание - ничего страшного не произойдет. А вот если порт будет как выход - можно и попалить. -
там и рассказывается просто доходчиво и можно макетку заказатьpictele писал :
Ветка задумана не для того,чтоб тыкать новичков носом.Читать все умеют.Рассказать очень просто и доходчиво-вот задача ветки. -
Altair ® писал(а) :
Я свободные порты конфигурирую на вход и включаю подтяжку.
Потому что если туда случайно попадет либо земля либо питание - ничего страшного не произойдет. А вот если порт будет как выход - можно и попалить.
Наверное это все же лучше.Надо будет учесть.