Expert Zamkovoy Vladimir "Фабрика инновационных технологий"
Микроконтроллеры PIC - Форум
Меню сайта

Форма входа

Поиск

Друзья сайта

Статистика

Приветствую Вас, Гость · RSS 26.06.2017, 12:28

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Диттер 
Форум » Начинающему конструктору » Микроконтроллеры » Микроконтроллеры PIC (Архитектура, программирование)
Микроконтроллеры PIC
ДиттерДата: Воскресенье, 21.12.2008, 18:17 | Сообщение # 1
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
Если о микропроцессоре Вы слышите впервые, то рекомендую начать знакомство с чтения:

http://ntkexpert.at.ua/forum/24-53-1#197

На соседних ветках Вы увидели другие микроконтроллеры АVR, АРМ и MSP.
Микроконтроллеров большое разнообразие.
Конструктору схем сложно изучать особенности программирования такого разнообразия МК.
Моя идея состоит в разработке универсального языка высокого уровня с наглядным интерфейсом.
Таким наглядным интерфейсом может быть многомерное отображение алгоритма на экране монитора.
Например, 3D графике. Отладочные средства 3D позволяют визуально рассматривать все процессы одновременно на всех процессорах и устройствах МК.
Четвертое измерение - время.
Элементы языка - модули - квадраты, ромбы, треугольники, кубики, цилиндры, шары ....
отображают операторы языка, циклы, макрокоманды, подпрограммы ...

Для каждого контроллера изготовитель пишет библиотеки в стандартах графического многомерного языка.
Разработчику допускается самому писать макросы на языках С или Асемблере.
Такой язык удобен для организации параллельной работы многих процессоров.
И главное переносить программу - транслировать Hex можно на любой контроллер, АРМ, DSP ... (при наличии в архитектуре необходимых устройств, ЗУ или подпрограмм эмулирующих эти устройства)
Примерный вид интерфейса языка:

На специализированной ветке подробности о Многомерном графическом языке
Рассотрим РIC:В номенклатуреMicrochip Technology Inc. представлен
широкий спектр 8-и, 16-и и 32-битныхмикроконтроллеров и цифровых сигнальных контроллеров под маркой PIC.

Отличительной особенностью PIC-контроллеров является хорошая преемственность различных семейств.
Это и программная совместимость (единая бесплатная среда разработки MPLAB IDE, С-компиляторы от GCC),
и совместимость по выводам, по периферии, по напряжениям питания, по средствам разработки,
по библиотекам и стекам наиболее популярных коммуникационных протоколов.
Номенклатура PIC насчитывает более 500 различных контроллеров
со всевозможными вариациями периферии, памяти, количеством выводов, производительностью, диапазонами питания и температуры и т. д
Несмотря на большой список выпускаемой продукции наиболее популярных десяток контроллеров:

PIC16FXX - это 8-разрядные микроконтроллеры с RISC архитектурой, производимые фирмой Microchiр Technology.
Это семейство микроконтроллеров отличается низкой ценой, низким энергопотреблением и высокой скоростью.
Микроконтроллеры имеют встроенное флеш память для программ, ОЗУ данных и выпускаются в 18 , 28 и 40 выводных корпусах.

PIC OTP - это однократно программируемые пользователем контроллеры,
предназначенные для полностью оттестированных и законченных изделий, в которых не будет происходить дальнейших изменений кода.

Для отладки программ и макетирования выпускается вариант контроллеров с ультрафиолетовым стиранием.
Эти контроллеры допускают большое число циклов записи/стирания и имеют очень малое время стирания - обычно 1-2 минуты.
Однако, цена таких контроллеров существенно выше, чем однократно программируемых, поэтому их невыгодно устанавливать в серийную продукцию.
Кроме того, они имеют малое (1-3 месяца) время хранения информации.

[color=blue]8-битные микроконтроллеры PIC10/12/16
8-битные микроконтроллеры PIC10/12/16 представлены двумя базовыми архитектурами ядра: BASELINE и MID-RANGE.

Архитектура базового (BASELINE) семейства
Базовая архитектура (BASELINE) состоит из контроллеров семейства PIC10 и части контроллеров семейств PIC12 и PIC16.
Основываются они на 12-и разрядной архитектуре слова программ и представлены контроллерами в корпусах от 6 до 28-и выводов.
Упрощенная архитектура базового семейства предоставляет наиболее дешевое решение из предлагаемых Microchip.
Широкий диапазон напряжений питания, возможность работы при низких напряжениях преследует целью возможность применения микроконтроллеров в батарейных устройствах.

маловыводные и миниатюрные корпуса
Flash память программ
низкое портебление тока
низкая цена
легкое освоение, всего 35 команд

Архитектура среднего (MID-RANGE) семейства
Архитектура среднего семейства (Mid-Range) нашла применение в микроконтроллерах серий PIC12 и PIC16, и имеет ширину слова памяти программ 14 бит.
Эти микроконтроллеры выпускаются в корпусах от 8 до 64 выводов.
Микроконтроллеры с Flash памятью работают в диапазоне напряжений питания от 2.0 до 5.5В, имеют систему прерываний,
аппаратный стек и энергонезависимую память данных EEPROM, а также богатый набор периферии, такой как USB, SPI, I2C™, USART, LCD, компараторы, АЦП и т. п.

различные корпуса: 8 — 64 выводов
Flash память программ
малый ток потребления
богатая периферия
производительномть 5 MIPS
легкое освоение, всего 35 команд


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 18:27 | Сообщение # 2
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
8-битные микроконтроллеры PIC18
Высокопроизводительное семейство 8-битных микроконтроллеров PIC18F представлено широкой гаммой микроконтроллеров,
включающих большой набор периферийных модулей: 10бит АЦП, компараторы, ШИМ, захват/сравнение, драйвер ЖКИ;
интерфейсы связи USB, CAN, I2C, SPI, USART, Ethernet и т. д.

быстродействия до 16 MIPS
объем памяти программ до 128Кб
корпуса от 18 до 100 выводов.
эффективное кодирование на C
NanoWatt технологии
встроенный программируемый генератор
3В и 5В семейства
продвинутая архитектура (16-и разрядные слова программ)
гибкость самопрограммирования
поддержка широко распространенных протоколов связи (CAN, USB, ZigBee™, TCP/IP)
программная совместимость и совместимость по выводам и периферийным модулям внутри семейства,
а также со старшими (16-битными) семействами, предоставляют возможность расширения и увеличения функциональности при развитии разработок.

16-битные контроллеры
Компания Microchip Technology Inc. производит два семейства 16-и разрядных микроконтроллеров (MCU)
и два семейства 16-и разрядных цифровых сигнальных контроллеров (DSC),
которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия.
Общие атрибуты всех 16-и разрядных семейств — это совместимость по выводам, общая система команд и, соответственно, общие компиляторы Си и средства разработки.
Широкая линейка 16-битных контроллеров включает контроллеры от 18 до 100 выводов с объемом flash памяти от 6 Кб до 256 Кб.

16-битные микроконтроллеры PIC24F и PIC24HОсновные особенности:

выполнение команды за 2 такта генератора
гарантированное время отклика на прерывание — 5 командных тактов
доступ к памяти (в том числе инструкции чтения-модификации-записи) за 1 командный такт
аппаратный умножитель (за 1 такт)
аппаратный делитель 32/16 и 16/16 чисел (17 командных тактов)
диапазон питающих напряжений 2.0…3.6В, один источник питания.
внутрисхемное и само- программирование
встроенный генератор с PLL
расширенная периферия (до 3-х SPI, до 3-х I2C, до 4-х UART (с поддержкой IrDA, LIN), CAN (и расширенный ECAN), USB OTG)
модуль измерения времени заряда (CTMU), основное применение — управление емкостными сенсорами
ток портов ввода/вывода общего назначения — 18 мА
порты толерантны к устройствам с 5 В питанием
до девяти 16-битных таймеров общего назначения
до восьми модулей захвата
ряд энергосберегающих режимов
до двух АЦП (32 канала) с конфигурируемой разрядностью
до восьми 16-битных модулей сравнения / генерации ШИМ
расширенный набор инструкций, 16 ортогональных регистров общего назначения, векторная приоритетная система прерываний, и другие особенности (методы адресации, аппаратные циклы).
16-битные микроконтроллеры представлены в двух модификациях — PIC24F и PIC24H, которые отличаются технологией изготовления FLASH программной памяти.
Это определяет диапазон питающих напряжений — для PIC24F — 2,0…3,6 В, для PIC24H — 3,0…3,6 В.
Первое семейство (PIC24F) производится по более дешевой технологии (0,25 мкм) и работает с максимальной производительностью ядра 16MIPS@32МГц.
Второе семейство (PIC24H) производится с использованием более сложного техпроцесса изготовления, что позволяет добиться большей скорости работы (40MIPS@80МГц).

Оба семейства поддерживают внутрисхемное программирование (ICSP), а так же самопрограммирование (RTSP).

Статьи по применению и работе с PIC на русском языке.

http://www.microchip.ru/lit/articles/


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 18:29 | Сообщение # 3
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
Контроллеры цифровой обработки сигналов dsPIC30F и dsPIC33F

Компания Microchip предлагает два семейства 16-ти разрядных Flash микроконтроллеров с поддержкой команд цифровой обработки сигналов — dsPIC30F и dsPIC33F.
Быстродействие в (30 MIPS для dsPIC30F и 40 MIPS для dsPIC33F) и эффективная система команд позволяет использовать контроллеры в сложных системах реального времени.
Ключевые особенности:
расширенная система команд, включающяя специфические команды поддержки цифровой обработки сигналов (DSP).
24-разрядные инструкции выполняются за 4 периода тактовой частоты у dsPIC30F и
за 2 — у dsPIC33F, за исключением команд деления, переходов, команд пересылки данных из регистра в регистр и табличных команд.
разрядность программного счетчика (24 бита) позволяет адресовать до 4М слов программной памяти (4М*24бит).
аппаратная поддержка циклов типа DO и REPEAT, выполнение которых не требует дополнительных издержек программной памяти и времени на анализ условий окончания,
в то же время эти циклы могут быть прерваны событиями прерывания в любой момент;
16 рабочих регистров, каждый регистр массива может выступать как данные, адрес или смещение адреса
два класса команд: микроконтроллерные инструкции (MCU) и команды цифровой обработки сигналов (DSP).

Оба этих класса равноправно интегрированы в архитектуру контроллера и обрабатываются одним ядром.
различные типы адресации;
система команд оптимизирована для получения максимальной эффективности при программировании на языке высокого уровня Си.
Если о PIC24F можно говорить, как об усеченном доработанном варианте dsPIC30F (без ядра ЦОС, с трехвольтовым питанием и переработанным конвейером),
то PIC24H — это усеченный вариант dsPIC33F.

Хотя в данном сравнении нарушены причинно-следственные связи, технически оно верно.
Ядро dsPIC33F полностью аналогично ядру dsPIC30F, за исключение того что в dsPIC33F команда выполняется за два такта генератора.
Семейства полностью совместимы по набору инструкций, программной модели и способам адресации,
что позволяет использовать библиотеки и исходные коды программ, написанные для dsPIC30F.
Особо следует отметить переработанную по сравнению с dsPIC30F систему тактирования. dsPIC33F
, как и семейство PIC24H, имеют PLL с дробным коэффициентом умножения (конфигурируемым программно),
что позволяет получить сетку частот от 12,5 МГц до 80 МГц с шагом 0,25 МГц при использовании кварцевого резонатора 4 МГц.

Кроме того, контроллеры dsPIC33F и PIC24H имеют два внутренних высокостабильных RC-генератора с частотами 7,3728 МГц и 32,768 кГц.
Отдельный делитель тактовой частоты ядра (модуль DOZE) присутствует во всех новых 16-битных семействах.
Он позволяет уменьшить тактовую частоту, подаваемую на ядро независимо от тактовой частоты периферийных модулей, что необходимо для уменьшения потребления в энергоограниченных приложениях.
Большой выбор по периферии контроллеров ЦОС:
Общего назначения:

календарь и часы реального времени RTCC
аппаратный подсчет CRC
расширенная периферия (SPI, I2C, UART (с поддержкой IrDA, LIN), CAN (ECAN), USB OTG)
10-и и 12-битные АЦП
компараторы
10-и и 16-битные ЦАП
прямой доступ к памяти (DMA)
ведущий параллельный порт (PMP)
программное переназначение выводов (PPS)
многоуровневая система защиты кода (Code Guard)
Для управления двигателями и преобразователями энергии

специализированный ШИМ для управления приводом (Motor Control PWM)
интерфейс квадратурного энкодера
Для импульсных источников питания (SMPS)

Специализированный сверхбыстрый ШИМ с высоким разрешением (SMPS PWM)
Специализированные сверхбыстрые АЦП (SMPS ADC)
Для работы со звуком:

12-битный АЦП
16-битный ЦАП
специализированный ШИМ (output compare PWM)
интерфейс кодирования данных DCI (I2S, AC97)
Для управления графическими дисплеями:

ведущий параллельный порт PMP (QVGA)
модуль измерения времени заряда CTMU (сенсорные дисплеи touch-screen)


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 18:32 | Сообщение # 4
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
32-битные микроконтроллеры

Старшим семейством контроллеров от Microchip Technology является 32-разрядное семейство микроконтроллеров PIC32:

ядро MIPS32 M4K, частота тактирования 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.53 Dhrystone MIPS/МГц
порты ввода/вывода относятся к основному частотному диапазону, т.о., к примеру, можно дергать портами с тактовой частотой.
дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делитель,
т.о. частота тактирования периферии может быть снижена для снижения энергопотребления.
64- и 100-выводные корпуса, до 32 кБ SRAM и 512 кБ Flash с кэшем предвыборки
совместимость по выводам и отладочным средствам с 16-битными контроллерами Microchip
аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения
набор расширенных инструкций MIPS16e™ — набор 16-битных инструкций, позволяющий на некоторых приложениях снизить объем кода на 40 %
независимый от основного ядра контроллер USB

Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объемом памяти на кристалле по сравнению
с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC.

Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы
— те же, что у PIC24, и 16-битный параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидко-кристаллических TFT-индикаторов.

Семейство PIC32 построено на ядре MIPS32®, с конкурентоспособной комбинацией низкого потребления энергии, быстрой реакции на прерывание,
функциональностью средств разработки и лидирующем в своем классе быстродействием 1.53 Dhrystone MIPS/МГц.

Такое быстродействие достигнуто благодаря эффективному набору инструкций,
5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра.


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 18:45 | Сообщение # 5
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
КАК НАЧАТЬ ОСВАИВАТЬ МИКРОКОНТРОЛЛЕРЫ серии PIC?

Предлагаю Вам скачать демо версию двумерного графического языка для микроконтроллеров серии PIC.
Это первый шаг на пути создания универсального алгоритмического графического языка для написания программ к контроллерам, АРМ, DSP...

Для любителей электроники и профессионалов, не специализирующихся на
микропроцессорной технике, камнем преткновения может стать необходимость написания
программы, без которой микроконтроллер «глух и нем». Если есть схема готового
устройства и файл загрузки, задача упрощается, но готовая схема не всегда
устраивает в полной мере, да и некоторый осадок беспомощности, скованности.

Под программированием подразумевается написание кода программы на
ассемблере или языке высокого уровня: С, Basic, Pascal... Но так ли это?
Рассмотрим конкретную и наипростейшую задачу. Положим, мы хотим на одном из
выводов контроллера установить высокий уровень (при питающем напряжении 5 В,
это и будет почти 5 В). Через некоторое время (пауза) напряжение на этом
выводе сделаем равным нулю (низкий уровень). И пауза. Если все это повторяется
бесконечно, то такой «самый простой» случай позволит использовать контроллер
в качестве управляющего устройства, скажем, для переключения елочной
гирлянды. Или для генерации меандра. Или это станет индикатором, звуковым или
световым. Или более сложные задачи ...

Программа FlowCode. Программа графического программирования PIC контроллеров
есть в демо-версии, урезанной в возможностях, но вполне работоспособной, на
сайте производителя.

http://www.matrixmultimedia.com

, и в разных вариантах
на любительских сайтах. Хотя программа создана для Windows, она работает и в
Linux под Wine, не полностью, но в мере достаточной для знакомства.

Для изучения языка Рекомендуем найти статью Гололобов В.Н
КАК НАЧАТЬ ОСВАИВАТЬ МИКРОКОНТРОЛЛЕРЫ?
Позволяющую начать первые шаги в программе FlowCode.

Книгу можно скачать:

http://www.sharemania.ru/0261057

Для дальнейшей отладки программы, транслированной FlowCode в HEX, С, Ас...
Можно проводить Протеусом. Или Мультисимом.

В программе Мультисим 10.1 есть пример отладки:

Мы пойдем по пути создания краткого конспекта с целью самостоятельно создать устройство на PIC, сопрягаемое с компьютером
через порт RS 232. Увидите это просто.

___________________________
Жизненный опыт освоения новых знаний:
сначала бегло просмотреть не вникая литературу от начала до конца
затем второе чтение поверхносное, не останавливаясь на непонятном. Возможно потом будет разьяснение.
И чтоение с карандашом вникая в материал ...


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 19:47 | Сообщение # 6
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
Для поставленной Задачи будем использовать популярные контроллеры PIC 16F628A и 16F88


И так! Вы скачали демо версию FlowCode PIC
Сначала решим простую задачу включение LED:

Посмотрите как просто программировать.
Решим задачу включение двух светодиодов.
Начало.
Подать напряжение (1) на ножку A0
Подождать 1 секунду
Подать напряжение на ножку A1
Подождать 1 секунду
Снять напряжение с ножки А0
Подождать 1 секунду
Снять напряжение с ножки А1
Конец программы

Запускаем выполнение программы нажав на Run


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 20:48 | Сообщение # 7
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
Седьмой слева оператор это цикл
Нажмите курсором на значек и перетяните оператор Loop в цепочку выполняемых команд .
В тело цикла перенесите те команды, которые должны циклиться.

Диоды начнут мигать А0 - А1

Первая левая инструментальная панель — это панель команд.

Перечень представленных команд (слева-направо на рисунке, сверху-вниз при запуске):
Input (ввод),
Output (вывод),
Delay (пауза),
Decision (ветвление),
Connection Point (две точки соединения),
Loop (цикл),
Macro (макрос),
Component Macro (макрос компонента, добавленного в программу),
Calculation (вычисление),
String Manipulation (строковые операции),
Interrupt (прерывание) ,
С Code (блок кода на языке Си),
Comment (комментарий).

Вторая инструментальная панель для добавочных внешних элементов.
Инструментальная панель команд
Компоненты (слева-направо)
LEDs (светодиоды),
Switches (переключатели),
LCDDisplay (жидкокристаллический дисплей) ,
ADC (АЦП, если есть порт АЦП) ,
LED7Segl (семисегментный индикатор) ,
LED7Seg4 (блок из 4х семисегментных индикаторов),
Buggy (компонент игрушки),
далее несколько стандартных интерфейсов TCP_IP, Bluetooth, RS232,
IrDA, AddDefines (добавить определения), LinMaster (ведущий в локальной
сети) , Custom (заказной компонент), EEPROM (перепрограммируемая память), Alarm
(охранное устройство), Thermometer (термометр), PWM (широтно-импульсный
модулятор) , SPI (последовательный внешний интерфейс), Webserver (web-сервер), CAN
(сеть абонентского доступа), KeyPad (клавиатура), LinSlave (ведомый в
локальной сети), FormulaFlowCode (компонент игры), I2C (шина связи между ИС).


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 21:10 | Сообщение # 8
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
Даташиты, документация применения PIC на русском языке :

http://www.microchip.ru/lit/articles/

Простой программатор IC-prog

http://www.radioman-portal.ru/program/upload/4f8c8646a43f7b7.shtml


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 21:41 | Сообщение # 9
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
Предпоследняя клавиша основного инструментального меню с подсказкой Compile
to HEX, как видно из рисунка, должна выполнить трансляцию, а в папке с
программой появится искомый hex-файл.


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Воскресенье, 21.12.2008, 22:31 | Сообщение # 10
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
Попробуйте это просто!

Можно скачать НЕLP на русском языке

http://www.sharemania.ru/0271426


Чем больше мы знаем, тем дороже стоим на рынке труда
 
ДиттерДата: Вторник, 27.01.2009, 11:07 | Сообщение # 11
ведущий консультант форума
Группа: Администраторы
Сообщений: 591
Статус: Offline
Продолжение следует

На сайте разработчика FlowCode появилась 4 версия....

http://74.125.87.132/transla....&u=http


Чем больше мы знаем, тем дороже стоим на рынке труда
 
Форум » Начинающему конструктору » Микроконтроллеры » Микроконтроллеры PIC (Архитектура, программирование)
Страница 1 из 11
Поиск:

Copyright MyCorp © 2017
Используются технологии uCoz