Новые цифровые потенциометры от компании microchip с spi интерфейсом

Микропотребляющие компоненты Microchip

Контроллеры с функцией nanoWatt

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

Основой nanoWatt является программно управляемый генератор тактового сигнала, позволяющий на ходу переключаться между тремя источниками тактирования — внутренним RC-генератором с выбираемой частотой и внешними кварцами, высокочастотным и низкопотребляющим часовым (32768 Гц). Частота внутреннего RC-генератора, как правило, может быть выбрана из 8 значений в диапазоне от 31 КГц до 8 МГц. В некоторых контроллерах она может быть повышена при помощи умножителя частоты в 4 раза. Для новых контроллеров серии PIC18FxxKxx частота внутреннего RC-генератора может быть задана до 64 МГц с точностью 1%. Кварцевые источники тактирования контролируются модулем Fail-Safe Clock Monitor на предмет надежного запуска и в случае если внешний генератор неисправен, микроконтроллер может переключиться на внутренний источник тактовой частоты. Режим Idle позволяет останавливать ядро, продолжая тактировать периферию, что в сочетании с часовым кварцем на входе Timer1 является практически готовым решением для построения программно-аппаратных часов реального времени с током потребления 5-8 мкА (

2-3 года работы от CR2032).

Разумеется, микроконтроллер не является единственным элементом готового изделия. Для обеспечения работы микроконтроллера, как правило, требуется стабилизатор напряжения питания, для связи с внешним миром необходимы периферийные компоненты — операционные усилители и компараторы, интерфейсные микросхемы, ЦАП и ИЦП, и многое другое. Для обеспечения микропотребления всей схемы необходимо минимизировать потребление каждого элеманта в отдельности. Среди продукции Microchip можно найти не только микроконтроллеры с низким потреблением и микропотребляющие периферийные компоненты, но и элементы, обеспечивающие работу схем формирования питания — стабилизаторы и контроллеры заряда батарей.

Конвертер напряжения MCP1252

Требования, предъявляемые к конвертеру питания портативных устройств, можно свести к усредненному списку из пяти пунктов:

1. Стабилизированный выход;

2. Возможность работы, как на повышение, так и на понижение напряжения (для питания 3,3-вольтовых устройств от одного литиевого элемента);

4. Компактная недорогая обвязка;

5. Минимальный уровень помех и пульсаций.

Очевидно, что традиционные решения в виде LDO и импульсных индуктивных преобразователей с трудом проходят по трем из пяти пунктов, новый преобразователь питания от Microchip Technology Inc. MCP1252-33×50 удовлетворяет всем пяти.

Высокочастотная (650 КГц) «емкостная помпа» принимает на вход 2…5,5 В и на выходе выдает стабилизированные 3,3 либо 5,0 В при токе до 120 мА. Высокая частота обеспечивает низкое выходное сопротивление и упрощает дизайн фильтров питания. В качестве накопителя заряда используются внешние конденсаторы общего назначения, что снижает бюджет устройства, а отсутствие коммутируемой индуктивности благоприятно влияет на ЭМС. Довершают картину компактный корпус MSOP-8 и умеренный набор внешних элементов.

Контроллер заряда литиевых аккумуляторов MCP7384x

Семейство однокристальных контроллеров заряда литиевых аккумуляторов (Li-Ion и Li-Pol) интересно сочетанием компактности, низкой цены и хорошей гибкости, что востребовано в автономных носимых устройствах. Использование внешних токового шунта и регулирующего элемента позволяют работать с широким диапазоном емкостей — от десятков мА*ч до единиц А*ч. Встроенный таймер и вход термодатчика повышают безопасность процесса зарядки, а интеллектуальная начинка контроллера позволяет использовать литиевые аккумуляторы даже в устройствах, не оснащенных микроконтроллером.

Контроллеры MCP73833/4 обеспечивают все функции, необходимые для безопасного заряда.

  • встроенный силовой транзистор;
  • встроенный датчик тока;
  • встроенная защита от разряда аккумулятора через цепь питания;
  • работа в режимах постоянного тока и постоянного напряжения с контролем температуры аккумулятора;
  • программируемый ток заряда — до 1 А;
  • автоматическое прекращение заряда;
  • автоматический переход в низкопотребляющий режим при отключении источника.

MCP1651

Индуктивный повышающий контроллер питания MCP1651 не имеет принципиальных нововведений, однако является добротной реализацией лучших технических решений в своей области:

1) высокая частота коммутации — 750 КГц — позволяет использовать компактные SMD-дроссели и, в сочетании с несложным фильтром, обеспечивает низкий уровень выходных пульсаций;

2) внешний ключ и обратная связь через резистивный делитель обеспечивают характеристики схемы питания, ограниченные только возможностями ключа;

3) вход ShutDown и Low Battery Detect актуальны в системах с батарейным питанием;

4) ставший традиционным для Microchip Technology Inc. корпус MSOP-8.

MCP1702

MCP1702 — это микропотребляющий линейный регулятор напряжения с низким падением и с выходным током до 250 мА. MCP1702 работает с входным напряжением до 13,2 В, что в комбинации с малым током потребления 2 мкА делает применение этого регулятора идеальным для приборов с питанием от нескольких элементов питания, 9-вольтовых алколайновых элементов или литиевых батарей.

Основные характеристики:

  • типовой ток потребления 2,0 мкА
  • диапазон входных напряжений: 2,7…13,2 В
  • 250 мА выходной ток при выходном напряжении і 2,5 В
  • 200 мА выходной ток при выходном напряжении 2 C и возможность конфигурирования.

  • датчик температуры с диапазоном измерения -40…125°С и точностью ±0,5°С в диапазоне +75°С…95°С, ±2,0°С в диапазоне -20°С…125°С
  • встроенный дельта-сигма АЦП
  • интегрированная EEPROM память объемом 256 байт
  • напряжение питания:
    3,0… 3,6 В
  • низкий ток потребления: 3 мкА в ждущем режиме, 1,1 мА в режиме записи, 100 мкА в режиме чтения
  • программная защита EEPROM от записи
  • программируемый логический выход тревоги по температуре

SEEPROM в корпусе SOT23-6

Компактные габариты корпуса позволяют использовать SEEPROM в условиях, не доступных для SOIC и даже MSOP. Например, в сфере измерительных приборов с выносным аналоговым преобразователем задача идентификации и/или хранения калибровочных данных преобразователя легко решается при помощи микросхемы SEEPROM, установленной в корпус разъема. Это позволяет расширить область применения прибора за счет использования преобразователей в разных диапазонах или типах входных воздействий, а также решает проблему взаимозаменяемости преобразователей и электронных блоков. SEEPROM в корпусах SOT23-6 выпускается под интерфейсы SPI, I 2 C и Microwire, которые охватывают емкости от 128 бит до 16 Кбит.

Параметрический поиск по компонентам

  • 21.02.2018 10:40Приемопередатчики интерфейса CAN с единым напряжением питания 3.3 В и защитой от перегрузок на шине до ±36 В
    Устройства также отличаются высокой пропускной способностью, функцией регулировки скорости нарастания выходного сигнала и малопотребляющим режимом ожидания
    Производитель: Exar Группа компонентов: CAN

  • 21.02.2018 10:22Миниатюрный модуль зарядного устройства малой мощности для работы в системах накопления энергии из окружающей среды
    Устройство, выполненное в виде готового решения с минимальным числом внешних компонентов, отличается низкой стоимостью, высокой эффективностью и чрезвычайно компактными размерами
    Производитель: Silvertel Группа компонентов: PoE-модули питания

  • 21.02.2018 10:08Низковольтный модуль драйвера светодиодов Ag201 с программируемой величиной выходного тока
    Благодаря возможности пользовательской установки максимального тока нагрузки, драйвер способен управлять различными типами светодиодов
    Производитель: Silvertel Группа компонентов: Контроллеры Дисплеев

  • 21.02.2018 09:53Коммутаторы Ethernet BCM56980 серий StrataXGS® Tomahawk® 3 с пропускной способностью 12.8 Tбит/с
    Семейство StrataXGS Tomahawk 3 с поддержкой до 32 портов стандарта 400GbE может использоваться для построения высокомасштабируемых распределительных, объединительных и масштабирующих коммутаторов
    Производитель: Broadcom Limited Группа компонентов: Ethernet

  • 21.02.2018 09:44Компактный DC/DC преобразователь в исполнении µModule® с током нагрузки 20 А в 1-канальной и 10 А на канал в 2-канальной конфигурации,
    ИС предназначена для каскадов питания ПЛИС, графических процессоров, специализированных микросхем и системного энергообеспечения
    Производитель: Analog Devices Группа компонентов: Понижающие преобразователи напряжения

  • 28.11.2017 06:05Скидки от 50% на ПО для проектирования печатных плат от Mentor Graphics
    ЗАО «Нанософт», официальный дистрибьютор компании Mentor Graphics, объявляет о старте специального предложения на приобретение программных решений для разработки электроники – PADS
    Производитель: Группа компонентов:
  • 24.09.2016 08:15Компания АВИТОН — официальный представитель Regatron (Швейцария)
    Компания Regatron осуществляет разработку и производство источников питания
    Производитель: Группа компонентов: Источники питания
  • 15.09.2016 08:42Arrow Electronics проводит в жизнь технологии краудфандинга с Indiegogo
    Их деятельность направлена на оптимизацию цепочки краудфандинг — продукт и должна ускорить темпы внедрения инноваций для технологии интернета вещей (IoT)
    Производитель: Arrow Electronics Russia Группа компонентов:
  • 08.08.2016 08:41«Новости Электроники + Светотехника» №01/2016: LED-освещение для промышленных объектов

    Производитель: Группа компонентов:

  • 22.07.2016 08:31Прошивка Serial Extender упрощает работу с модулями MBee
    Два радиомодуля MBee-868 с прошивкой Serial Extender позволяют заменить проводное последовательное соединение между двумя любыми устройствами с интерфейсом UART
    Производитель: Группа компонентов: Модули

  • 29.07.2015 10:24Компания Altera присоединилась с проекту OPNFV с целью привнести преимущества ПЛИС FPGA в технологию виртуализации сетевых функций
    Решения на базе ПЛИС FPGA и Систем-на-Кристалле уже ускоряют работу серверов дата-центров в области предоставления поисковых сервисов и свёрточных нейронных сетей
    Производитель: Altera Группа компонентов: FPGA
  • 29.07.2015 10:14Пример разработки хранилища данных на базе ПЛИС FPGA удваивает срок службы NAND FLASH памяти
    Архитектура ПЛИС FPGA со встроенным процессорным ядром предлагает инновационный метод создания устройств хранения данных для облачных приложений и высокопроизводительных вычислительных систем
    Производитель: Altera Группа компонентов: SoC FPGA
  • 08.07.2015 13:41Компания Pentair предлагает новые трехмерные чертежи и услуги для конструкторов на портале Traceparts
    Чертежи Schroff на портале Traceparts
    Производитель: Schroff Группа компонентов:
  • 13.04.2015 14:37Cypress Semiconductor: CySmart™ — приложения для устройств Bluetooth® с низким энергопотрбелением (BLE)

    Производитель: Cypress Группа компонентов: Bluetooth

  • 28.01.2015 09:43Audi выбрала Системы-на-Кристалле компании Altera для применения в автомобилях с функцией «Автопилот»
    Altera и TTTech Deliver Industry, лидер в области разработки продвинутых систем помощи водителю (ADAS), приступили к разработке систем управления автопилотируемых автомобилей для компании Audi
    Производитель: Altera Группа компонентов: Программируемая Логика

Внешняя периферия с последовательным интерфейсом для приложений на микроконтроллерах

В то время как инженеры часто оценивают микроконтроллеры (МК) с точки зрения состава интегрированных периферийных устройств, необходимых для конкретного приложения, имеется много случаев, когда нужно добавить к МК внешние функциональные устройства. Например, вам может понадобиться датчик или исполнительное устройство, физически близко расположенное к внешнему устройству, но удаленное от МК. Или вы можете посчитать, что бюджетный МК в сочетании с некоторой внешней периферией будет лучшим решением для данного приложения. В любом случае, имеется постоянно пополняемый список периферийных устройств для МК, которые используют для коммуникации с ним интерфейсы I 2 C или SPI. В статье мы рассмотрим некоторую типичную периферию и как ее можно использовать с популярными МК.

Оба интерфейса I 2 C и SPI широко поддерживаются в микроконтроллерах. В некоторых случаях вам придется выбирать один или другой, т.к. МК используют одинаковые внутренние ресурсы для поддержки или I 2 C, или SPI. Кроме того, понадобится некоторое программное обеспечение для обработки протокола последовательной шины, но практически каждый производитель МК обеспечивает легкодоступную программную поддержку.

Интерфейс I 2 C имеет преимущество за счет использования меньшего числа сигнальных линий и, следовательно, меньшего числа используемых выводов МК. Самая распространенная реализация – двунаправленная линия данных и линия тактирования, поддерживающая полудуплексную связь. Как правило, МК действует в качестве ведущего устройства (master) на шине, которое может связываться с несколькими ведомым устройствам (slave), хотя встречаются более гибкие реализации интерфейса, где на шине несколько ведущих. Ведущий обращается к ведомому по адресу, который в последовательности передается первым, устраняя необходимость иметь дополнительные сигналы выбора устройства (Chip Select).

SPI интерфейс требует от МК наличия, как минимум, от трех до четырех линий ввода/вывода. Интерфейс использует отдельные линии данных для полнодуплексной коммуникации. Более того, используется специальная линия выбора ведомого, поэтому если имеется несколько периферийных устройств с SPI интерфейсом, вы можете просто использовать незадействованные линии ввода/вывода МК в качестве линий выбора ведомых.

SPI интерфейс, в целом, предоставляет более высокую производительность за счет полнодуплексной и высокоскоростной передачи данных. Частота тактового сигнала SPI может быть в диапазоне 20 – 40 МГц. Передача данных по интерфейсу I 2 C может вестись со скоростью 10 – 100 Кбит/с, но в некоторых случаях, при использовании новых микроконтроллеров, скорость может быть несколько выше.

Мотивация и особенности

Давайте теперь рассмотрим причины использования внешней периферии микроконтроллера, подключенной по последовательным интерфейсам, и доступные функции. Преобразователи данных (АЦП, ЦАП) являются самым простым примером такого типа периферии, которая используется очень часто. Еще одной причиной использования внешнего преобразователя данных является то, что вам может потребоваться более высокая точность, чем может предложить преобразователь, встроенный в выбранный микроконтроллер.

Рассмотрим некоторые преобразователи от компании Linear Technology. Компания предлагает микросхемы АЦП и ЦАП с интерфейсом I 2 C или SPI. Кроме того, все они являются более точными в сравнении с АЦП/ЦАП, встроенными в стандартные МК. Возьмем, к примеру, относительно новые 16-разрядные МК компании Renesas Technology семейства RL78. Многие устройства в семействе, доступные и сейчас, имеют встроенный 8-битный АЦП, в то время как некоторые предлагают встроенный 10-битный АЦП. Для сравнения, дискретные АЦП Linear Technology имеют разрешение от 8 до 24 бит, а ЦАП – 8 — 18 битное разрешение. Даже в 8- или 16-разрядной системе вы сможете использовать датчик, который требует высокого разрешения.

Рассмотрим один конкретный пример – одноканальный 16-битный АЦП LTC2451. Типовая схема включения микросхемы с интерфейсом I 2 C изображена на Рисунке 1. АЦП использует дельта-сигма модулятор и может выполнять 30 или 60 преобразований в секунду. Ошибка преобразования по всей шкале составляет 4 младших значащих разряда, а временя преобразования позволяет мультиплексировать входы. Кроме того, микросхема очень компактна, выполнена в 8-выводном корпусе для поверхностного монтажа SOT-23 с размерами 2 × 3 мм.

Рисунок 1. 8-выводная микросхема АЦП LTC2451 предоставляет 16-битную точность и подключается к микроконтроллеру по интерфейсу I2C.

Компактность системы

Внешняя периферия также может способствовать реализации более компактной системы. Это может показаться нелогичным, т.к. в большинстве случаев мы думаем об интегрированной периферии, как о пути к миниатюризации. Но пока мы остановились на преобразователях данных, давайте рассмотрим пример совместного использования АЦП и МК от компании Microchip.

Компания Microchip предлагает широкий ассортимент АЦП и ЦАП с интерфейсами I²C и SPI. Сосредоточимся на одном примере – микросхеме 10-битного АЦП MCP3021 с интерфейсом I²C, преобразователь которой использует топологию последовательного приближения. Миниатюрное устройство выполнено в корпусе SOT-23 с пятью выводами, но предлагает высокую точность измерений, в сравнении с преобразователями, встроенными в бюджетные модели микроконтроллеров.

Также вы можете выбрать 6- или 8-выводный микроконтроллер компании Microchip или других производителей. Например, в семейство МК Microchip PIC10 входит множество устройств в 6-выводном корпусе SOT-23. Сочетание миниатюрного микроконтроллера и такого же миниатюрного АЦП может оказаться более компактным и дешевым решением, отвечающим требованиям вашего приложения, чем использование одного микроконтроллера со встроенным АЦП.

Гибкость периферии

Какой тип внешних периферийных устройств вы можете подключить к микроконтроллеру по последовательному интерфейсу? Список можно продолжать очень долго. Самый простой пример – расширитель портов ввода/вывода микроконтроллеров. Многие бюджетные микроконтроллеры имеют малое количество линий ввода/вывода. Даже если у вас есть микроконтроллер с большим количеством выводов, иногда требуется, чтобы некоторые сигнальные линии физически были расположены дальше от МК, например ближе к какому-либо датчику.

Компания NXP Semiconductor предлагает микросхему расширителя портов PCA9502, которая может работать с ведущим на шине SPI или I²C. Микросхема имеет 8 линий вода/вывода и очень компактна – выполнена в корпусе SOT616 (4.1 × 4.1 мм). Также компания выпускает микросхемы серии SC16IS740/50/60, которые позволяют добавить в проект последовательный интерфейс UART c поддержкой скорости передачи данных до 5 Мбит/с. В состав SC16IS750 и SC16IS760 дополнительно входит 8-канальный расширитель портов ввода/вывода.

Тем не менее, более полезной может быть периферия, которая отвечает специфическим требованиям конкретного приложения. Например, Microchip предлагает широкий спектр цифровых потенциометров с интерфейсом I²C. Их можно использовать совместно с термисторами в приложениях контроля температуры. На Рисунке 2 показан пример, где потенциометр MCP4018 используется для калибровки термистора и учета его нелинейной характеристики.

Рисунок 2. Последовательно включенный цифровой потенциометр компании Microchip может использоваться в различных приложениях, в том числе для калибровки нелинейного термистора.


Для повышения надежности приложений, связанных с измерением температуры, компания Microchip предлагает I 2 C датчики температуры. Датчик MCP9808 имеет точность ±0.5°С в диапазоне -20°С до +100°С и выпускается в различных корпусах, размеры которых не превышают 2 × 3 мм.

Ассортимент периферии с последовательными интерфейсами расширяется специальными устройствами для организации пользовательского или человеко-машинного интерфейса. Компания Microchip выпускает контроллер резистивного сенсорного экрана AR1000 (Рисунок 3), совместимый с интерфейсами I²C и SPI. Контроллер подключается к МК и поддерживает работу с 4-, 5- и 8-проводными сенсорными экранами различных производителей. Выходными данными контроллера являются цифровые координаты, которые отправляются непосредственно в МК по последовательному интерфейсу.

Рисунок 3. Контроллер сенсорного экрана Microchip AR1000 позволяет организовать современный пользовательский интерфейс в приложении.

Как вы видите, последовательные интерфейсы придают значительную гибкость приложениям на микроконтроллерах. В некоторых случаях I 2 C и SPI могут быть полезны при реализации функций, которые не интегрированы в микроконтроллер. Однако в таких случаях ограничивать свое внимание последовательными интерфейсами не стоит. Необходимо учитывать, как внешняя периферия может сказаться на размерах, энергопотреблении и стоимости системы. Кроме того, нужно убедиться, что вы не жертвуете в этом случае точностью при передаче сигнала между встроенной периферией и интерфейсом реального мира, где локальная периферия будет оптимальным вариантом в отношении точности. Вы можете также обнаружить, что распределенная периферия может внести некоторые преимущества, такие как компактность и более высокая точность системы.

Перевод: Vadim по заказу РадиоЛоцман

PIC. Урок 17. MSSP. SPI. Внешний АЦП MCP 3201. Часть 1

Продолжаем изучение модуля MSSP, в частности его работу с шиной SPI. И сегодня мы уже поработаем с данной шиной на приём данных от устройства.

Для этого мы возьмём микросхему MCP3201. Эта микросхема является внешним аналого-цифровым преобразователем. Разработчиком данной микросхемы является компания Microchip Technology.

Данная микросхема не такая крутая, как может показаться на первый взгляд, скорость у неё не очень велика, но сигнал даже динамический в пределах 100 кГц она отследить может.

Но нам этого и не нужно. Нам данный внешний АЦП (ADC) поможет усовершенствовать наши навыки по работе и программировании шины SPI и заодно пообщаться по данной шине на приём.

Давайте изучим для начала основные технические характеристики данного преобразователя.

Частота тактирования по шине SPI может достигать 1,6 МГц при условии, что питаться микросхема будет от 5 вольт, а если она будет питаться от 2,7 вольт — то 0,8 МГц.

Если нам будут нужны какие-то ещё характеристики, то мы к ним вернёмся в процессе написания кода.

Данные от этой микросхемы принимаются с выхода Dout

Принимать данные от микросхемы мы будем на ножке SDI (RC4) нашего контроллера.

Подробно знакомиться вообще с технологией аналого-цифрового преобразования мы в рамках нашего урока не будем, но на всякий случай озвучу основное назначение – преобразование напряжения сигнала на входной ножке устройства АЦП в цифровой код. А более плотно с АЦП мы познакомимся в будущих уроках, когда будем изучать одноимённый модуль нашего контроллера.

Данные передаются в виде двух байтов, один старший, другой младший, так как АЦП у нас 12 битный и вся информация в рамках одного байта не уместится. И формат такой: в старшем байте идут пустые первые три бита, а в младшем пустой будет последний младший бит. Чтобы принять эти два байта, мы должны опустить ножку выбора микросхемы (CS) и начать тактирование. После приёма 16 бит мы прекращаем тактирование и поднимаем ножку CS. Конечно, насчёт тактирования нам беспокоиться не придётся, это возьмёт на себя модуль MSSP.

Вот назначение контактов нашей микросхемы

Здесь мы видим, что данная микросхема АЦП является 8-контактной, существует в корпусе DIP, а также в других различных корпусах. Мне, например, в руки данная микросхема попала в корпусе SOIC, поэтому пришлось применить недорогой и незатейливый переходничок, который мы увидим несколько позже, и сделать что-то наподобие DIP, чтобы воткнуть её в макетную плату, то есть получилось что-то наподобие маленькой табуретки.

Vref — это контакт для подачи опорного напряжения. То есть, подадим мы, например сюда пять вольт — и это будет наше максимальное напряжение.

In+ — это у нас аналоговый вход. На нём мы и измеряем наше напряжение.

In- — это вход для регулировки АЦП. То есть, если существует какая-то погрешность, то мы сюда подаём корректирующее напряжение от -100 миливольт до +100 миливольт.

Vss — общий провод.

CS/SHDN — ножка для выбора и отключения микросхемы.

Dout — ножка цифровых данных измеренного напряжения.

CLK — ножка синхронизации или тактирования.

Vdd — ножка питания от 2,7 вольт до 5,5 вольт.

Вот так вот рассчитывается цена градаций напряжения

А вот так, наоборот, по измеряемому и опорному напряжению рассчитывается информационная величина, которую мы получим из шины

Также микросхема поддерживает два режима передачи данных по SPI — режим 0:0 и режим 1:1, что нам, соответственно, придётся учитывать при конфигурировании шины в нашем коде.

Вот так производитель описал каждый режим в технической документации.

Первый режим (нажмите на картинку для увеличения изображения)

Второй режим (нажмите на картинку для увеличения изображения)

Теперь рассмотрим нашу практическую схему. Отладочная плата остаётся та же. Отслеживать измеренное напряжение на ножке внешнего АЦП мы будем при помощи 4-разрядного индикатора, вернее теперь не индикатора, а модуля с индикатором, производителем которого является тот же WireShare, что и отладочной платы.

Тем более, целесообразно использование данного модуля будет потому, что тянуть к нему провода нам не придётся, так как для него есть специальный разъём.

Подключим данный модуль в разъём платы

Теперь микросхема MCP3201. Она досталась мне в корпусе SOIC и, чтобы использовать для неё макетную плату, я применил нехитрый переходник, вследствие чего получилась вот такая вот «табуреточка»

Поместим микросхему с переходником в макетную плату.

В качестве источника тестового напряжения мы будем использовать нехитрый делитель на одном переменном резисторе на 10 килоом, который поместим в ту же макетную плату

С центральной ножки резистора подадим сигнал на входную аналоговую ножку микросхемы (2), а также подключим общий провод к резистору

В качестве опорного напряжения для простоты мы будем использовать напряжение питания, поэтому соединим ножки 1 и 8, а также подведём питание к делителю на резисторе. А ножку третью соединим с общим проводом, так как корректировать напряжение мы не собираемся

Подключим нашу схему к контроллеру к соответствующим ножкам. В качестве ножки CS у нас будет выступать ножка RC6, так как ножка RA5, предназначенная в модуле MSSP для этого, занята индикатором под точку. Также подведём от платы питание и общий провод

Также подключим логический анализатор для того, чтобы увидеть, как поступают данные по шине SPI

Подключим анализатор к ПК, также подключим к схеме программатор, который в свою очередь тоже подключим к ПК и наконец-то займёмся проектом.

Проект был сделан из проекта прошлого занятия LED7219 и назовём его MCP3201.

Откроем наш проект в MPLAB X, сделаем его главным, также убедимся в настройках, что контроллер будет питаться от программатора.

Удалим из проекта файлы для дисплея LED7219.h и LED7219.c.

А из проекта урока 7 добавим к проекту файлы для работы со светодиодным индикатором led.h и led.c.

Соответственно, в файле main.c исправим подключение библиотеки

#include «led.h»

Из функции main() удалим полностью весь код, оставив лишь пустой бесконечный цикл

void main()

while ( 1 )

Добавим макросы для ножки выбора микросхемы

//CS = RC6

#define CS_ON() PORTC &=

#define CS_OFF() PORTC |= 0x40

Добавим переменную для счёта тиков таймера 0, а также стандартный обработчик его прерывания, необходимые для работы с динамической индикацией

#define CS_OFF() PORTC |= 0x40

unsigned int TIM1_Count= 0 ;

void interrupt timer0()

TIM0_Callback();

T0IF= 0 ;

Настроим порты на выход в функции main(), а также проинициализируем их ножки низким уровнем

TRISB = 0x00 ;

PORTB = 0xFF ;

TRISA = 0x00 ;

PORTA = 0x00 ;

Проинициализируем и включим таймер

OPTION_REG= 0 b00000010; //Prescaler

INTCON= 0xA0 ;

TMR0= 0 ;

Выведем пока тестовое число на индикатор

ledprint( 1234 );

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

Купить программатор (неоригинальный) можно здесь: PICKit3

Купить программатор (оригинальный) можно здесь: PICKit3 original

Отладочную плату PIC Open18F4520-16F877A можно приобрести здесь: PIC Open18F4520-16F877A

Индикатор 4-разрядный LED WaveShare можно приобрести здесь: LED WaveShare

Микросхема АЦП 12-разрядный MCP3201 – 10 шт можно приобрести здесь: MCP3201

Логический анализатор 16 каналов можно приобрести здесь

Смотреть ВИДЕОУРОК (нажмите на картинку)

SPI -Serial Peripheral Interface, краткое руководство

Данная статья является кратким дискурсом по шине SPI и не должна восприниматься как точная техническая документация. Рассматривается только полнодуплексный вариант применения.

Общие сведения:

SPI — (Serial Peripheral Interface) эспиай, последовательный периферийный интерфейс иногда называемый 4-х проводным интерфейсом, является последовательным синхронным интерфейсом передачи данных. Изобретён компанией Motorola в середине 1980-x. В отличие от I2C и UART, SPI требует больше сигналов для работы, но может работать на более высоких скоростях. Не поддерживает адресацию, вместо этого используется сигнал SS (slave select — выбор ведомого), который также иногда называется CS (chip select), CE (chip enable) или SE (slave enable). Поддерживает только одного ведущего на шине. Ведущий устанавливает скорость обмена данными и другие параметры, такие как полярность и фаза тактирования. Обмен данными происходит в режиме полного дуплекса, что означает устройства на шине могут одновременно передавать и принимать данные. Интерфейс использует следующие сигналы (в номенклатуре AVR, для получения точного названия сигналов обратитесь к технической документации микросхемы, с которой работаете):

  • MISO (master in slave out) — вход ведущего, выход ведомого
  • MOSI (master out slave in) — выход ведущего, вход ведомого
  • SCK (serial clock) — сигнал тактирования
  • SS (slave select) — сигнал выбор ведомого.

Несмотря на то, что интерфейс называется 4-х проводным, для подключения нескольких ведомых понадобится по одному проводу SS для каждого ведомого (в полнодуплексной реализации). Сигналы MISO, MOSI и SCK являются общими для всех устройств на шине. Ведущий посылает сигнал SS для того ведомого, обмен данными с которым будет осуществляться. Простыми словами, все ведомые, кроме выбранного ведущим будут игнорировать данные на шине. SS является инверсным (active-low), что означает что ведущему необходимо прижать эту линию для выбора ведомого.

Подключение:

SPI на Arduino:

Arduino UNO/Piranha UNO/Arduino ULTRA

На Arduino UNO/Piranha UNO/Arduino ULTRA выводы аппаратного SPI расположены на 10, 11, 12 и 13 выводах, а так же эти выводы соединены с колодкой ICSP (in circuit serial programmer):

Сигнал Вывод
SS 10
MOSI 11
MISO 12
SCK 13

Arduino MEGA

На Arduino MEGA выводы аппаратного SPI расположены на 50, 51, 52 и 53 выводах, а так же эти выводы соединены с колодкой ICSP (in circuit serial programmer):

Сигнал Вывод
SS 53
MOSI 51
MISO 50
SCK 52

Пример для Arduino

В этих примерах мы соединим две Arduino по SPI по следующей схеме:

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

Arduino UNO в качестве ведущего:

Arduino UNO в качестве ведомого:

После соединения двух Arduino по SPI и загрузки соответствующих скетчей, мы будем получать следующее сообщение в мониторе последовательного порта ведомого микроконтроллера раз в секунду:

SPI на Raspberry Pi

На Raspberry Pi выводы аппаратного SPI расположены на выводах GPIO7, GPIO8, GPIO9, GPIO10, GPIO11:

Перед работой с SPI необходимо его включить. Сделать это можно из эмулятора терминала командой sudo raspi-config -> Interfacing options -> Serial -> No -> Yes -> OK -> Finish или из графической среды в главном меню -> Параметры -> Raspberry Pi Configuration -> Interfaces -> SPI

Подробное описание как это сделать можно посмотреть по ссылке Raspberry Pi, включаем I2C, SPI

Пример работы с SPI на Python:

В отличие от Arduino для Raspberry не существует простых решений для работы в режиме ведомого. Подробней ознакомиться с работой чипа BCM Raspberry можно в технической документации на официальном сайте, стр. 160.

Для проверки работы сценария можно подключить Raspberry по SPI к Arduino со скетчем из примера выше через преобразователь уровней или Trema+Expander Hat:

Подробнее о SPI

Параметры

Существуют четыре режима работы SPI, зависящие от полярности (CPOL) и фазы (CPHA) тактирования:

Режим Полярность Фаза Фронт тактирования Фронт установки бита данных
SPI_MODE0 Спадающий Нарастающий
SPI_MODE1 1 Нарастающий Спадающий
SPI_MODE2 1 Нарастающий Спадающий
SPI_MODE3 1 1 Спадающий Нарастающий

В Arduino IDE для установки режима необходимо передать функции, возвращающей объект настроек параметр режима работы SPI_MODE, например:

Для выбора режима работы SPI на Raspberry Pi необходимо вызвать дескриптор объекта SpiDev().mode и присвоить ему битовые значения CPOL и CPHA, например:

Скорость передачи данных

Скорость передачи данных устанавливается ведущим и может меняться «на лету». Программист в силах указать лишь максимальную скорость передачи данных.

MCP41010-I/SN

Потенциометр цифровой (IC POT DIGITAL 10K 1CH SPI 8SOIC — Microchip Technology 256 10K 1 800 ppm/°C Typical Non-Volatile SPI, 3-Wire Serial 2.7 V

85°C 8-SOIC (3.9mm Width) )

Single / Dual Digital Potentiometer with SPI Interface

Также в этом файле: MCP41010-I/SN

КАТАЛОГ

ИМПОРТНЫЕ ЭЛЕКТРОННЫЕ КОМПОНЕНТЫ

Микросхемы

Цифровые потенциометры

С этим товаром покупают:

Наименование Описание Производитель Количество Цена, руб. Купить
AD8605ARTZ-REEL7 Операционный усилитель CMOS, DigiTrim (цифр. подстройка Uсм), вх./вых. размах до шин . ANALOG DEVICES 14 047 99.83
AD8605ARTZ-REEL7 Операционный усилитель CMOS, DigiTrim (цифр. подстройка Uсм), вх./вых. размах до шин . ANALOG AD8605ARTZ-REEL7
поставляется под заказ

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества

Ориентировочный срок поставки 3-4 недели
Цена зависит от заказываемого количества