![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Когда-то я пробовал вести занятия по микроконтроллерам по чужому лабнику (лабораторному практикуму) и тогда начал его переделывать, придумывать новые главы и родился свой курс, который сейчас опробуется на молодых студентах, которых мне на работе подселили.
![]() В этом топике я буду потихоньку выкладывать все новые и новые главы, начиная с самого начала, т.е. с вопросов типа: а что такое микроконтроллер и для чего все это вообще нужно, имея две цели: 1) обучить 2) отфильтровать тех кому это не нужно нафиг, но кто слышал что-то о контроллерах, но не все узнал. Что получится я не знаю, но должен заметить следующее: 1)никакая часть этой темы "с чего начать" не может быть воспроизведена нигде и ни в каком виде без моего согласия 2)пожалуйста не задавайте вопросы в этой теме, создайте топик и спросите Собственно и все ![]() СУВ, -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
1-ый урок. или что нужно знать.
Что нужно? интерес наверное и твердая уверенность что все получится. Без этого ничего не выйдет. Особенность программирования контролллеров заключается в том, что необходимо не только уметь программировать (т.е. иметь навыки програмирования, что приходит с опытом интересующегося), но и понимать хотябы основы цифровой схемотехники. В последнем сложностей не бывает, если почитать соотв. литературу. Уж поверьте цифровая схемотехника гораздо проще аналоговой. Как известно сейчас ни одно устройство, более менее современное не обходится без какого=то алгоритма функционирования. Взять стиральную машину: засыпал белья, нажал кнопку и ушел на работу. Расскажите об этом африканцу из племени тумба-юмба - обзавидуется! А Вы уже не обращаете на это никакого внимания, привыкли. А ведь машина сама набирает воду, до срабатывания соотв. датчиа уровня, начинает крутить белье и если много воды впиталось, то добирает воду. Воду пропускает через отсек с порошком. И начинает крутить вертеть столько времени, сколько необходимо для данной массы белья (некоторые машины еще и взвешивают белье), потом отжим, полоскание, второй цикл, сушка, а ведь нужно еще следить за температурой воды, за нажатыми кнопками на панели управления, выводить данные на индикаторы, следить за потреблением (вдруг барабан или нагреватель сгорели), за открытием дверцы и еще за кучей параметров и алгоритмических моментов. Конечно можно было бы вставить в машинку компьютер: ну там, проц.,маму., хард с прогой. И стоила бы тогда эта машинка за 1000$, ведь нужен и влагостойкий корпус к цифровой части и источник питания, и хард от вибраций пришлось бы защищать, короче - сложно. Проблема решается просто - контроллер + обвеска. Контроллер - устройство совместившее в себе и проц, и маму, и память, и хард, но в малых объемах. Обвеска - дополнительные устройства контроля, управления, индикации, которые позволяют согласовывать команды управления и контроля с объектами управления и контроля (крутить двигатель, закрывать-открывать клапана, включать нагреватель и пр.) Как же совмещены в контроллере столько функций? Очень просто, в нем есть все, но помалу. По сравнению с компьютером вообще ничтожно. Например, в контроллере ОЗУ может быть 128 байт, а память программ (аналог харда) может быть всего 2кБ. А что является аналогом Мамы? Чтобы ответить на этот вопрос нужно знать, что такое сама Мама. Ну, в принципе, Мама это всего лишь устройство, в которое мы все вставляем, всякие платы, память, процессор, а также клавиатуру, мышь, и всякую другую дрянь. Но, если вспомнить, процессор может только читать, писать и вычислять, причем писать и читать из адресного пространства, а оно не обязательно находится в памяти (т.е. обращаться процессор может не только к ячейкам вставленной вами DDR памяти, к примеру; а может читать состояния всяких портов, например, LPT). Вот! Т.е. получается, что Мама предоставляет процессору в качестве доступных ресурсов не только память, но и другие установленные на плате ресурсы (порт RS-232, другие платы, харды, CD-ROM и прочее) и все это становится доступным процессору только благодаря материнской плате. В контроллере же уже в самом есть Мама, правда опять урезанная. Продолжение следует… -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Теперь пришло время остановиться в попытке изучить внутренности контроллера, т.к. это лучше делать постепенно, выполняя те или иные задачи-упражнения использующие различные ресурсы контроллера.
Что необходимо для изучения. 1) Макет 2) Устройство для программирования* (программатор) 3) Компьютер 4) Среда программирования 5) Программа для программирования* * - имеется в виду физическое программирования, т.е. прошивание. Самое сложное из всего этого – Макет. На его изготовление может потребоваться достаточно много времени и кое-какие сбережения. На макете будут расположены следующие узлы и блоки: 1) Сам контроллер (выберем какой) 2) Кварцевый резонатор с конденсаторами 3) Стабилизатор питания с конденсаторами (в т.ч. электролитическими) 4) Пьезоизлучатель (пищалка) 5) Светодиодный 7-ми сегментный 3-х разрядный индикатор с транзисторной схемой переключения разрядов для динамической развертки 6) 9 клавиш с подтягивающими резисторами 7) 2 светодиода (1-питание, 2-для упражнений) 8) Преобразователь напряжений для работы с COM портом с конденсаторами и разъемом. 9) Порт внутрисхемного программирования с соотв. Микросхемой. 10) Возможно еще усилитель (собранный на его базе интегратор), для работы с шим. Второе по сложности – программатор. Т.к. контроллер который будет изучаться (я пока могу посоветовать либо 51-ый либо AVR, но скорее более распространен 51-ый, pic я преподавать не смогу) позволяет программировать его внутрисхемно, то скорее всего придется делать программатор ByteBlaster. Напомню про комплектующие к нему и схему: схема: http://www.altera.com/literature/ds/dsbytemv.pdf на ее сбор уйдет не более 300 руб (макетка стоит 220 рублей) что нужно купить:
Далее нужно отрезать кусок макетки так чтобы она помещалась в корпус ЛПТ разъема и разместить все компоненты, либо не делать этого, а просто разместить элементы на плате и сделать шлейфом отвод к LPT порту. Макетку можно вставить в промежуток между контактами разъема ЛПТ и припаять макетку к разъему так чтобы небыло КЗ. После размещения элементов соединить их согласно схеме по ссылке, маленькими проводками. В IDC разъеме предусмотреть запитывание с платы контроллера +5В (либо с USB, как кому удобнее). скачать программу: http://www.atmel.ru/Binary/At-load.zip работает только из 9x и чистого дос, т.к. использует прямой доступ к портам. Но если воспользоваться программой ниже, то можно и из NT подобных мастдаев зашивать. http://forum.vingrad.ru/index.php?act=Atta...=post&id=163806 Продолжение следует... -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Итак выбран AVR.
Для работы потребуется: 1) Среда программирования AVR Studio 4.x.x скачать можно здесь. 2) Документация на контроллер AT90mega48 можно взять здесь. Дальше будем макеты собирать на базе этого контроллера. Изучать будем AVR ASM. СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
по поводу макета:
у меня такая мысль, а давайте-ка изучим параллельно P-CAD? Весь макет сделаем в нем, а плату изготовим сами (сами распечатаем, сами потравим) а те кто не хочет травить будут использовать макетную плату купленную в магазине. P-CAD пригодится и дальше, т.к. без него (или аналогов) не изготовить не одной платы. А раз так, то нужно преобрести P-CAD, который продается на дисках посвященных "Электронике", "Схемотехнике" и т.п. СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Ну вот... будем считать что все готово. У всех все скачано. Тогда начнем с Пи-КАДА (P-CAD).
Этот софт предназначен для так называемого сквозного проектирования электронных схем, это означает что все этапы разработки схемы можно делать только в этой программе (но это не значит что так нужно делать). Что включает в себя разработка? Если просто то: 1) разработка принципиальной схемы 2) размещение элементов на будущей плате 3) разводка (соединение проводниками) Из этих трех шагов 2 последних при желании можно автоматизировать (это не значит что нужно) и в изучаемом софте эта возможность предусмотрена. Если мы посмотрим в меню «Пуск» -> «Программы» -> «P-CAD», то увидим что P-CAD состоит из многих программ. Перечислим необходимые нам: 1) Schematics (в этой программе мы будем чертить схемы из элементов соединяя их линиями-проводниками) 2) Symbol Editor (а в этой мы будем создавать те самые элементы, которые будем использовать в Schematics) 3) Library Executive (это мозг P-CAD, тут содержаться все элементы в виде подключаемых библиотек, и тут же происходит их полная настройка) 4) PCB (тут мы будем создавать нашу печатную плату путем размещения физических элементов, таких как корпуса, разъемы, дырки, и соединять их уже физическими «дорожками» на плате) 5) Pattern Editor (здесь мы создадим те самые корпуса для PCB) Начнем с примера попроще. Итак, как мы и условились в нашей будущей схеме нам не обойтись без резисторов. Попробуем его создать. Для этого открываем Symbol Editor. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
-------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Задаем параметры настройки программы:
1) идем в Options -> Configure и устанасливаем параметры как на картинке внизу. Здесь мы указали что будем пользоваться милиметрами, указали небольшой размер рабочей области, разрешили автосохранения. ![]() Присоединённый файл ( Кол-во скачиваний: 44 ) ![]() -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
2) идем в Options -> Grids...
Там мы устанавливаем шаги сетки. Вносим новый шаг: набираем, например, 2.5 и нажимаем кнопку Add (Добавить). И получаем примерно следующее: ![]() Присоединённый файл ( Кол-во скачиваний: 29 ) ![]() -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Теперь нужно удалить мешающую нам дюймовую сетку.
Выделяем ее и жмем Delete: ![]() Присоединённый файл ( Кол-во скачиваний: 27 ) ![]() -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Обратите внимание что сетка изменилась и стала более плотной.
Теперь можно посмотреть на то что мы сделали. После установок размеров и сеток возвращаемся к рабочему полю программы. Как видите сетка уже другая, и размерность именно в миллиметрах. Можно было оставить дюймы, но тогда мы отойдем от гостов, а это не есть хорошо. Попробуйте нажать клавишу "+"... а потом "-", познакомились с зумом? Нажимайте "+" пока не появится реальная сетка (а не зеленая, которая только кратна настоящей). Теперь можно рисовать, но сначала нужно установить некоторые параметры "рисования". СУВ. ![]() Присоединённый файл ( Кол-во скачиваний: 26 ) ![]() -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Прежде чем рисовать изменим толщину линии которой будем рисовать, это делается для того чтобы элементы соответствовали ГОСТу и просто для удобства. И вообще я рекомендую придерживаться ГОСТа при при разработках чего-либо. Потому что если привыкните это делать сразу в последствие многие подводные камни перестануть быть оными это раз, а во-вторых известна аллергия к ГОСТам у всех разработчиков, т.к. при неожиданном требовании сделать по ГОСТу нужно переделывать все элементы во всех используемых биюлиотеках.
Итак вызываем меню Options -> Current Line и изменяем параметры как показано на рисунке ниже. Жмем ОК и видим что в правом углу появилось наше введенное 0.300мм, что и требовалось. ![]() Присоединённый файл ( Кол-во скачиваний: 24 ) ![]() -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Вот так должны выглядеть основные элементы согласно ГОСТ (нас сейчас интересует 55-ый элемент):
![]() Присоединённый файл ( Кол-во скачиваний: 52 ) ![]() -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Итак, высота резистора 4мм, а длина 10мм.
Смотрим на нашу сетку, а она у нас 2.5мм, значит добавляем в список сетки еще один шаг: 1мм (Options->Grids...) Теперь самое главное! Сохраним этот файл как начальный для создания любого компонента. Например, под именем "templ_1.sym". Это делается для того чтобы не устанавливать параметры сетки, толщины и пр. каждый раз когда Вам нужно будет что-то новое создать, нам предстоит создать 2 десятка элементов и не очень хочется 20 раз вводить одно и то же. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Теперь можно сохранить файл под реальным именем компонента т.е. как обозначение резистора.
Обратите внимание на следующую деталь: резисторы разной мощности имеют различное обозначение, а именно: ![]() Присоединённый файл ( Кол-во скачиваний: 38 ) ![]() -------------------- тут могла быть Ваша реклама... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |