|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
9.9.2009, 17:52
Сообщение
#101
|
|
|
Технический Маньяк-Гуру ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администратор Сообщений: 7052 Регистрация: 3.6.2009 Из: Армения На форуме Авто: ASX 2.0 Репутация: 265
|
Ну что, начнем. Заранее заявляю, что я сам тоже новичок в этом деле, так, что если что не так с удовольствием приму и критику и замечания и дополнения.
Что такое микроконтроллер (МК)? Это микросхема которая сама по себе АБСОЛЮТНО ничего не умеет делать в отличии от даже самой примитивной логики. Для того, чтобы заставить МК выполнять какую-нибуть работу надо прошить (загрузить) в него программу. МК выпускаются многими фирмами - Mikrochip, Atmel, Motorolla, etc. Здесь будут рассматриваться только МК фирмы Mikrochip, так называемые pic-контроллеры. Их легко различить по маркировке от других, название начинается с префикса PIC или (в современных сигнальных процессорах) dsPIC, например, PIC18F2520, PIC16F877 и т.д. Наиболее употребимые в любительской практике - 8-разрядные контроллеры среднего и высшего семейств, PIC16 и PIC18. Буква "F" в маркировке МК означает, что он может многократно перезаписываться, т.е. если по каким-либо причинам надо поменять программу (прошивку), то это легко можно осуществить при помощи программатора (об этом попозже). Есть МК и с буквой "С" - это однократно программируемые. Питание МК - +5В, хотя многие из них могут работать и при пониженном напряжении, от +2,5В. Потребляемый ими ток насколько мал, что о нем и говорить неудобно (IMG:style_emoticons/default/dry.gif) Так что-же все таки представляет собй МК? Это микросхема с определенным количеством выводов (8, 14, 16, 18, 20, 28, 40 и т.д), как минимум двое из которых предназначены для подачи питания, а почти все остальные представляют собой линии ввода-вывода. Почти - потому-что есть МК, которые обязательно должны тактироваться внешним кварцем (еще 2 вывода) и/или имеют отдельный вывод сброса. А есть и такие, что могут работать как от внешнего так и от внутреннего генераторов, в этом случае освободившиеся выводы тоже можно использовать для дела. Конкретно количество выводов данных можно посмотреть в даташите на конкретный МК. Т.к. МК 8-и битные, то и выводы организованы в шины той-же разрядности, или, как их называют - порты. В зависимости от кол-ва ножек могут быть порты A, B, C, D, E, которые на изображении МК обозначаются след. образом: буква R, затем наименование порта, затем номер разряда порта, напр. RA0, RC2, RB7... В МК совсем необязательно наличие всех разрядов какого-либо порта, например, могут быть RC3...RC7, a RC0, RC1 и RC2 - отсутствовать. В принципе, это не имеет значения, т.к. любой порт можно запрограммировать на выполнение практически любой задачи (исключая некоторые специфические, такие, как обмен данными по USB или Ethernet), так, что без разницы - подключен, например, светодиод, сигнализирующий о превышении температуры к порту RB5 или RE0. Исключение составляют выводы порта А, которые можно сконфигурировать так, чтоб они работали в аналоговом режиме (все остальные только цифровые). Естественно, порт А также может работать в цифровом режиме, что он и делает по умолчанию. Аналоговый режим используется для задействования встроенных АЦП - аналого-цифровых преобразователей, с их помощью измеряются аналоговые сигналы, например, напряжение, показания термодатчиков и т.д. С распространением различных протоколов на определенные выводы могут также возлагаться дополнительные функции. Это не значит, что с другими выводами нельзя добиться результата, просто, если на вывод подключена какая-либо доп. функция, то результат достигается более легкими программными способами. Для примера приведу обозначения выводов МК PIC16F876 1 MCLR/VPP/RE3 2 RA0/AN0 3 RA1/AN1 4 RA2/AN2/VREF-/CVREF 5 RA3/AN3/VREF+ 6 RA4/T0CKI/C1OUT 7 RA5/AN5/SS/HLVDIN/C2OUT 8 VSS 9 OSC1/CLK1 10 OSC2/CLK0 11 RC0/T1OSO/T13CKI 12 RC1/T1OSI/CCP2 13 RC2/CCP1 14 RC3/SCK/SCL 15 RC4/SDI/SDA 16 RC5/SDO 17 RC6/TX/CK 18 RC7/RX/DT 19 VSS 20 VDD 21 RB0/INT 22 RB1 23 RB2 26 RB3/PGM 25 RB4 26 RB5 27 RB6/PGC 28 RB7/PGD Смотрим, что мы тут имеем. МК имеет 2 вывода для соединения с общим проводом (8 и 19 - Vss), вывод питания - 20 - Vdd, отдельные выводы для подачи тактовых импульсов или подключения кварца - 9 - OSC1/CLK1 и 10 - OSC2/CLK0. Вывод сброса по желанию можно переконфигурировать для обработки данных - 1 - MCLR/VPP/RE3, т.е. он превращается в RE3. Все остальные - данные. Дальше, некоторые выводы не имеют никаких специальных функций, например, RB1...RB7. Здесь PGM, PGC, PGD, а также Vpp на выводе 1 - сигналы с программатора, после прошивки МК они (имеются в виду сигналы а не выводы) не используются. Порты А, как видно, могут переконфигурироваться и работать как AN0...AN5 - аналоговые входы. Некоторые сигналы (вернее протоколы) могут нам никогда и не понадобиться, так, что не стоит сейчас акцентировать на них внимание, просто опять же для примера упомянем 17 - RC6/TX/CK 18 - RC7/RX/DT, т.е. если надо, чтоб МК взаимодействовал с компьютером по последовательному интерфейсу (СОМ порт), то для этой цели лучше выбрать выводы 17 и 18, т.к. на них посажены также режимы RX и TX. ----------------- Естественно, т.к. МК работают под управлением программы, то в них должна быть предусмотрена память для этих самых программ. В зависимости от МК объем памяти может колебаться от сотен байт до десятков килобайт. Память, как уже отмечалось, обычно многократно перезаписываемая. Помимо программной МК может также иметь RAM память (ОЗУ) - для временного хранения данных/переменных во время работы программы, а также EEPROM - постоянная память для хранения данных при выключенном питании контроллера. Скажем, если на контроллере построен борткомпьютер, то, например, пройденный путь или израсходованный бензин надо писать именно в EEPROM, иначе данные потеряются после выключения зажигания. Данные же о мгновенном расходе пишутся в RAM. Конкретно объем программной памяти и наличие/отсутствие и объем RAM и EEPROM надо опять же смотреть в соотв. даташитах. ----------------- Я честно говоря, не знаю, надо ли продолжать или нет, т.к. в сети есть куча информации по различным МК, так, что если есть желание, то изучить их работу в желаемом для себя объеме нетрудно. Если есть интерес к обсуждению этого вопроса именно здесь а не на спец. форумах, то в след. раз поговорим о самих программах и программаторах. |
|
|
SSh Микроконтроллеры 9.9.2009, 17:52
BoomeR Здравствуйте! Прочитав вашу статью про МК, поя... 11.2.2011, 17:13
Titus BoomeR, велкам на форум, заполняй профиль плз 11.2.2011, 18:08
SSh В компилляторах микро... нет команд подсчитывающих... 11.2.2011, 18:53
BoomeR Я по задумке хотел бы сделать типо бортового компь... 11.2.2011, 18:59
SSh Нет, пик не зависнет по большому счету, просто вып... 11.2.2011, 20:14
BoomeR Ну да, это я и имел в виду... а можно по подробнее... 11.2.2011, 21:21
SSh PulseIn Demo
Код'(*
' * Project name... 11.2.2011, 22:13
BoomeR SSh спасибо большое. Жаль что с английским не друж... 11.2.2011, 23:01
BoomeR Если конечно что то не реальное говорю, вы меня по... 11.2.2011, 23:22
SSh Нет, не так. МК будет ждать импульсы до победного ... 11.2.2011, 23:31
BoomeR Что то я совсем ни чего не понял все таки мне нав... 11.2.2011, 23:41
SSh Там все просто
while - ждать выполнения какого-либ... 11.2.2011, 23:55
BoomeR SSh насчет программы немного начинаю понимать, буд... 12.2.2011, 0:51
SSh Так я же не говорю "бери и используй". К... 12.2.2011, 1:13
BoomeR SSh, куда ставить я еще не придумал а насчет того... 12.2.2011, 12:13
SSh Можно... Но в PicBasic-е все проще намного 12.2.2011, 12:16
BoomeR SSh спасибо! Теперь у меня есть надежды, что х... 12.2.2011, 12:53
SSh Как тебе удобнее, конечно, так и делай В любом сл... 12.2.2011, 13:19
NeWT Странная проблемка вылезла PIC12F675. Подключения... 27.2.2011, 21:23
SSh Похожий случай был у Димы с AVR-ом.
МК потребляют... 27.2.2011, 21:48
NeWT Но что с этим делать!? Я не хочу, чтобы он про... 27.2.2011, 22:09
SSh Попробуй подать сигнал на вход, по которому идет п... 27.2.2011, 22:19
NeWT Да у меня там итак сначала 14В потом где-то 3кОм и... 27.2.2011, 22:28
SSh Нет, программно ничего не сделаешь... А вот насчет... 27.2.2011, 22:32
NeWT Эммм... Я просто сделал, как ты учил, параметричес... 27.2.2011, 22:55
SSh Неправильно Это будет параметрическим стабилизато... 27.2.2011, 23:08
NeWT Вот блин Доделаю ))) 27.2.2011, 23:13
ЯВА Пробую писать в микрос. Вроде получается НО. Решил... 10.3.2011, 21:14
SSh Если компилирует нормально - значит с точки зрения... 11.3.2011, 7:25
ЯВА Да нет . Когда заменяю структуру на ряд переменных... 11.3.2011, 20:08
BoomeR SSh здравствуйте! Хотел вас спросить, вы выкла... 28.4.2011, 21:13
SSh Есть на PicBasic в теме про индикатор расхода топл... 28.4.2011, 21:35
BoomeR Спасибо. Щя попробуем я из хелпа брал готовую п... 28.4.2011, 21:45
Titus BoomeR, хе, Шуя
У вас 30 апреля будет гонка ... 28.4.2011, 21:58
BoomeR Titus, про гонку не слышал, если узнаю где состоит... 28.4.2011, 22:17
Titus А вот:
http://www.freedrive.ru/ru/news/17-news/45.... 28.4.2011, 22:19
BoomeR Что то я совсем ни че не понимаю. от Невеля до шуи... 28.4.2011, 22:36
SSh Ради интереса тоже взял из help-а - все скомпиллир... 29.4.2011, 6:21
SSh Вдогонку...
Не вытерперл, подправил порты (вместо ... 29.4.2011, 6:33
BoomeR SSh, спасибо большое, все получилось! Я делал ... 1.5.2011, 11:07
SSh Сравнивать можно с любым, или с RAW -кодом (см. да... 1.5.2011, 11:50
Uncle_Dizel как на PicBasicPro можно реализовать RGB свет? 23.8.2011, 22:52
SSh 3 программных ШИМ-а 24.8.2011, 16:07
Uncle_Dizel x var word
TRISIO = %110001
main:
For X = 0 to 2... 25.8.2011, 15:58
SSh Есть пики со встроенными (аппаратными) PWM. Напр. ... 25.8.2011, 16:22
BoomeR Здравствуйте, подскажите можно ли так делать PORTА... 5.9.2011, 20:40
SSh Можно, если тип переменной выбран правильно (bit) 5.9.2011, 20:50
BoomeR SSh, Вы ни когда не делали что-то, типо бегущей с... 6.9.2011, 17:26
SSh Нет, не делал... А на чем реализуется эта строка (... 6.9.2011, 17:38
BoomeR Светодиоды пиранья, 5х15. на транзисторах. 6.9.2011, 17:45
SSh А дальше? Драйвера, сдвиговые регистры и т.д. Вооб... 6.9.2011, 18:43
BoomeR Мне хочется как можно проще, ПИК транзисторы и све... 6.9.2011, 19:40
SSh Так, навскидку, в любом случае придется применить ... 6.9.2011, 20:27
BoomeR SSh, спасибо, буду пытаться... 6.9.2011, 20:46
Uncle_Dizel еще раз про RGB я прото читал эт статью http://www... 3.10.2011, 21:08
SSh Один из вариантов - переключать выходные уровни по... 3.10.2011, 21:22
BoomeR SSh, вы ни когда не писали или не встречались с пр... 3.1.2012, 21:20
SSh iButton работает по протоколу OneWare, MikroBasic ... 3.1.2012, 21:38
BoomeR А готовую прогу не знаете где глянуть? Я не пойму ... 3.1.2012, 21:47
SSh Посмотри еще здесь
http://www.mikroe.com/forum/sea... 3.1.2012, 21:42
SSh Готовая прога, правда на Паскале, но легко адаптир... 5.1.2012, 22:36
Artem NN Сергей (Ssh) привет!
Я нашел схемку LC-1
h... 14.2.2012, 9:47
dmitrij_b AVR-ки (в том числе меги) шьются хоть даже пятью п... 14.2.2012, 10:40
SSh Если надо прошить всего раз, то как уже Дима сказа... 14.2.2012, 11:40
NeWT Собираюсь на МК сделать это - http://forum.amadeus... 12.4.2013, 14:02
aLife всем привет
начал тему в другой ветке
http://for... 29.11.2013, 21:50
SSh Так, на первый взгляд...
1. Переменная btn не може... 30.11.2013, 7:15
aLife Цитата(SSh @ 30.11.2013, 10:15) Так, на п... 30.11.2013, 9:24
SSh 1. Конечно можно
2. Честно говоря не знаю, позволя... 30.11.2013, 14:25
aLife Цитата(SSh @ 30.11.2013, 17:25) 1. Конечн... 3.12.2013, 9:39
SSh Если выберу время проверю на макетнице, но быстро ... 3.12.2013, 10:56
aLife Цитата(SSh @ 3.12.2013, 13:56) Если выбер... 4.12.2013, 10:24
SSh На MikroBasic ничего подходящего (готового) нет по... 4.12.2013, 14:23
aLife Цитата(SSh @ 4.12.2013, 17:23) На MikroBa... 4.12.2013, 21:58
SSh Аппаратно - шунтированием кнопок небольшими емкост... 4.12.2013, 22:15
aLife Цитата(SSh @ 5.12.2013, 1:15) Аппаратно -... 4.12.2013, 22:27
SSh А, ну если для аналогового входа, то тогда дребезг... 4.12.2013, 22:42
aLife Цитата(SSh @ 5.12.2013, 1:42) А, ну если ... 4.12.2013, 23:10
SSh А еще глянь на PicBAsic Pro. Все выложенные здесь ... 5.12.2013, 6:17
SSh Кстати, если собираешься продолжать изучение или и... 5.12.2013, 6:55
aLife Цитата(SSh @ 5.12.2013, 10:55) Кстати, ес... 16.12.2013, 10:43
SSh Конечно, замыкание проводков приводит к гораздо бо... 16.12.2013, 11:47
aLife Цитата(SSh @ 16.12.2013, 15:47) Конечно, ... 16.12.2013, 13:51
Rcus А не проще использовать проверку установившегося с... 16.12.2013, 12:22
SSh В условиях помех в автомобиле состояние может нико... 16.12.2013, 12:30
SSh Считываются 13 значений (насколько я помню, именно... 16.12.2013, 15:38
aLife Цитата(SSh @ 16.12.2013, 19:38) Считывают... 16.12.2013, 16:43
Rcus Цитата(SSh @ 16.12.2013, 18:38) Далее, сч... 16.12.2013, 18:46
SSh Будет зависеть от дребезга, плюс у тебя ведь кнопк... 16.12.2013, 17:09
aLife Цитата(SSh @ 16.12.2013, 21:09) Будет зав... 17.12.2013, 10:19
aLife to SSh
Привет, если не сложно - подскажи, пожалуй... 19.1.2014, 15:47
SSh Можно по UART-линии, используя соотв. библиотеку:
... 19.1.2014, 16:09
aLife Цитата(SSh @ 19.1.2014, 20:09) Можно по U... 19.1.2014, 17:42
SSh Еще как вариант - организовать массив из 12 элемен... 19.1.2014, 18:11
aLife доброго дня!
а как на микробэйсике отправить к... 7.3.2014, 15:36
SSh Такая команда есть в PicBasic, но пробуждение не п... 7.3.2014, 15:53![]() ![]() ![]() |
|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
| Текстовая версия | © 2006-2026 Форум Технических Маньяков. |
|
|