Микроконтроллеры |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Микроконтроллеры |
9.9.2009, 17:52
Сообщение
#1
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Ну что, начнем. Заранее заявляю, что я сам тоже новичок в этом деле, так, что если что не так с удовольствием приму и критику и замечания и дополнения.
Что такое микроконтроллер (МК)? Это микросхема которая сама по себе АБСОЛЮТНО ничего не умеет делать в отличии от даже самой примитивной логики. Для того, чтобы заставить МК выполнять какую-нибуть работу надо прошить (загрузить) в него программу. МК выпускаются многими фирмами - 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 надо опять же смотреть в соотв. даташитах. ----------------- Я честно говоря, не знаю, надо ли продолжать или нет, т.к. в сети есть куча информации по различным МК, так, что если есть желание, то изучить их работу в желаемом для себя объеме нетрудно. Если есть интерес к обсуждению этого вопроса именно здесь а не на спец. форумах, то в след. раз поговорим о самих программах и программаторах. |
|
|
9.11.2009, 9:36
Сообщение
#21
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Ну как, кто-нибуть купил/получил PicKit? Что-то все молчат... (IMG:style_emoticons/default/dry.gif)
|
|
|
10.11.2009, 21:44
Сообщение
#22
|
|
Левша Группа: Почетные ветераны Сообщений: 1801 Регистрация: 19.2.2009 Из: Санкт-Петербург, Центр Вне форума Авто: VW CC 1.8MT Репутация: 24 |
Мутно там как-то...
Позвонил, сказали вышлют счет. Глухо... |
|
|
30.1.2010, 18:15
Сообщение
#23
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 7 Регистрация: 30.1.2010 Вне форума Репутация: 0 |
Привет! Я собрал осцилограф на 4 канала на 16меге и хочу с исходником разобратся досканально чтобы расширить число каналов расширить до 6 и добавить один канал с возможнотью синхронизации от него
|
|
|
30.1.2010, 18:29
Сообщение
#24
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
С mega-ми никогда дела не имел, так, что - извини не в курсе. Одно время заинтересовался осциллографами, даже собрал ADC21 - http://forum.roboclub.ru/IPBoard/index.php?showtopic=131 - , но понял, что в домашних условиях приличный прибор создать не смогу, тем более, что нашел вот это
http://www.seeedstudio.com/depot/dso-nano-...3230abfca7e5075 Уже выписал, со дня на день жду посылку. А что за осциллограф у тебя, я вроде все, что есть в сети по этой теме изучил... |
|
|
30.1.2010, 18:37
Сообщение
#25
|
|
Музыкальный JDM маньяк Группа: Главные администраторы Сообщений: 4432 Регистрация: 10.7.2009 Из: Москва Вне форума Репутация: 190 |
Похоже на бот.
Vituha - вам сутки на подтверждение, что вы не бот. Или в бан. |
|
|
30.1.2010, 18:43
Сообщение
#26
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 7 Регистрация: 30.1.2010 Вне форума Репутация: 0 |
|
|
|
30.1.2010, 18:52
Сообщение
#27
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 7 Регистрация: 30.1.2010 Вне форума Репутация: 0 |
С mega-ми никогда дела не имел, так, что - извини не в курсе. Одно время заинтересовался осциллографами, даже собрал ADC21 - http://forum.roboclub.ru/IPBoard/index.php?showtopic=131 - , но понял, что в домашних условиях приличный прибор создать не смогу, тем более, что нашел вот это http://www.seeedstudio.com/depot/dso-nano-...3230abfca7e5075 Уже выписал, со дня на день жду посылку. А что за осциллограф у тебя, я вроде все, что есть в сети по этой теме изучил... Я нашол 4 канальник на какомто форуме с исходниками для ремонта машин, мне очень помогает |
|
|
30.1.2010, 20:14
Сообщение
#28
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 1802 Регистрация: 21.2.2009 Из: Екатеринбург Вне форума Авто: Lancer IX 1.6MT (105HP) Репутация: 108 |
2 Vituha а выложи схемы осцила с прошивками и исходниками. Поковыряем...
Я немножко с AVR-ами знаком. |
|
|
30.1.2010, 22:38
Сообщение
#29
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 7 Регистрация: 30.1.2010 Вне форума Репутация: 0 |
|
|
|
30.1.2010, 23:20
Сообщение
#30
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 7 Регистрация: 30.1.2010 Вне форума Репутация: 0 |
С mega-ми никогда дела не имел, так, что - извини не в курсе. Одно время заинтересовался осциллографами, даже собрал ADC21 - http://forum.roboclub.ru/IPBoard/index.php?showtopic=131 - , но понял, что в домашних условиях приличный прибор создать не смогу, тем более, что нашел вот это http://www.seeedstudio.com/depot/dso-nano-...3230abfca7e5075 Уже выписал, со дня на день жду посылку. А что за осциллограф у тебя, я вроде все, что есть в сети по этой теме изучил... Я adc21 делал он неплохо работает, скажи а будет продолжение статей по мк? |
|
|
30.1.2010, 23:44
Сообщение
#31
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Цитата Я adc21 делал он неплохо работает Случайно не по моей разводке? (IMG:style_emoticons/default/biggrin.gif) (IMG:style_emoticons/default/wink.gif) Продолжения как такового - скорее всего нет, но вот в разных темах так или иначе кое-какие конкретные вопросы иногда обсуждаются. Здесь же была цель просто ознакомиться с МК, и то лишь потому, что есть некоторые конструкции на них - чтоб было понятнее. А так, кому надо - есть специализированные сайты, там и информации побольше и спецы поопытнее. |
|
|
31.1.2010, 1:07
Сообщение
#32
|
|
Don Amadeus Группа: Главные администраторы Сообщений: 29935 Регистрация: 19.2.2009 Из: Russia, Sevastopol Вне форума Авто: Lancer IX-1.6 MT Turbo, Honda Accord IX-2.4 AT Executive. Репутация: 465 |
Похоже на бот. Vituha - вам сутки на подтверждение, что вы не бот. Или в бан. Не, видно, что не бот, все оки, Егорыч (IMG:style_emoticons/default/wink.gif) |
|
|
31.1.2010, 12:59
Сообщение
#33
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Кстати насчет синхронизации. Как правило осциллографы на контроллерах работают след. образом:
Предположим в качестве дисплея использован графический LCD с разрешением 128х64 точек (в подавляющем большинстве случаев так и есть). Встроенный АЦП МК оцифровывает входной сигнал или сигналы после чего происходит преобразование в горизонтальную координату точки на экране. Но все это дело сразу на экран не выводится а сохраняется в буфере, организованном во внутреннем RAM контроллера. Для одного луча таких отсчетов (объем буфера) 128, для двух 256 и т.д. После заполнения буфера МК переводится в режим вывода накопленных координат на дисплей, после чего процесс повторяется. Сам вывод организован в виде цикла, состоящего из 256 шагов, где Х координатой является номер шага, Y координата - значение ячейки буфера с номером X. Т.е. в то время, когда производится само измерение нет вывода на экран и наоборот. Буфер же начинает заполнятся не в произвольное время а только тогда, когда сигнал проходит через 0. Этот момент элементарно отследить программно. Так вот если отсчет ведется с нулевого уровня сигнала, то и буфер заполняется с координатой Y=0, и вывод соответственно с точки с координатами 0,0. Иными словами, получается автоматическая синхронизация... И еще, увеличение числа каналов приведет к сужению полосы частот. |
|
|
1.2.2010, 10:12
Сообщение
#34
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 7 Регистрация: 30.1.2010 Вне форума Репутация: 0 |
Кстати насчет синхронизации. Как правило осциллографы на контроллерах работают след. образом: Предположим в качестве дисплея использован графический LCD с разрешением 128х64 точек (в подавляющем большинстве случаев так и есть). Встроенный АЦП МК оцифровывает входной сигнал или сигналы после чего происходит преобразование в горизонтальную координату точки на экране. Но все это дело сразу на экран не выводится а сохраняется в буфере, организованном во внутреннем RAM контроллера. Для одного луча таких отсчетов (объем буфера) 128, для двух 256 и т.д. После заполнения буфера МК переводится в режим вывода накопленных координат на дисплей, после чего процесс повторяется. Сам вывод организован в виде цикла, состоящего из 256 шагов, где Х координатой является номер шага, Y координата - значение ячейки буфера с номером X. Т.е. в то время, когда производится само измерение нет вывода на экран и наоборот. Буфер же начинает заполнятся не в произвольное время а только тогда, когда сигнал проходит через 0. Этот момент элементарно отследить программно. Так вот если отсчет ведется с нулевого уровня сигнала, то и буфер заполняется с координатой Y=0, и вывод соответственно с точки с координатами 0,0. Иными словами, получается автоматическая синхронизация... И еще, увеличение числа каналов приведет к сужению полосы частот. Спасибо доступно описано, а то что сужение частот то не беда 10кгц достаточно |
|
|
1.2.2010, 10:29
Сообщение
#35
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Опечатка просочилась... не 256 а 128 шагов, т.е. кол-во шагов равно горизонтальному разрешению примененного экрана, вернее ширине области вывода осциллограммы. Я встречал устройства, где правая или левая части были использованы для вывода информации (длит. развертки, чувствительность и т.д.)
|
|
|
1.2.2010, 10:56
Сообщение
#36
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Кстати вот здесь есть описание 6-канального осциллографа
http://www.ne.jp/asahi/shared/o-family/Ele.../AVRLogAna.html Правда на японском, но можно перевесту Гуглем. И исходники выложены, причем на более понятном Бейсике, так, что если надо что-то поменять - разобраться будет не трудно. |
|
|
1.2.2010, 11:41
Сообщение
#37
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 1802 Регистрация: 21.2.2009 Из: Екатеринбург Вне форума Авто: Lancer IX 1.6MT (105HP) Репутация: 108 |
Это похоже не осцил, а логический анализатор. Если я правильно понял только картинки, без анализа текста...
|
|
|
1.2.2010, 12:48
Сообщение
#38
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Да, точно - анализатор.
На этом же сайте есть пара осциллографов одно- и двух-лучевые. Я все порывался собрать один из них, но теперь успокоился - жду заказанного DSO Nano... |
|
|
5.2.2010, 19:35
Сообщение
#39
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 7 Регистрация: 30.1.2010 Вне форума Репутация: 0 |
Я набросал проектик в c+ 2009 давайте вместе добьем его до логического завершения скажите кто знаком с c+?
|
|
|
15.9.2010, 13:41
Сообщение
#40
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
Такой глобальный вопрос по поводу программы. Вот по поводу нажатий кнопок и загораний светодиодов. В моём текущем понятии, программа должна выполниться один раз и всё. Здесь же я так понял, программа как бы зацикленна бесконечно? Т. е. этот глобальный бесконечный цикл никак не объявляется, а он просто есть? И ещё, ведь событие происходит не тогда, когда кнопка нажата, а тогда, когда по тактовому генератору программа дошла до проверки кнопки и вот тогда если она нажата то выполнить то-то? Так?
|
|
|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Текстовая версия | © 2006-2024 Форум Технических Маньяков. |
|