В статье предложена организация взаимодействия функциональных блоков в объёме кристалла СБИС, а именно: процессорных ядер, контроллеров DMA и мостов системных шин с периферийными блоками, такими как: контроллеры GPIO, SPI, I2C, UART, таймеры и широтно-импульсные модуляторы – ШИМ. Рассмотрен набор сигналов и протокол обмена стыка простого исполнителя – локального системного интерфейса, реализующего взаимодействие перечисленных блоков кристалла. Приведены примеры синтезируемых моделей контроллера GPIO и регистрового файла, поддерживающие описанный интерфейс.
Читать полностью »
Рубрика «gpio» - 2
Синхронный системный интерфейс взаимодействия с периферийными блоками в объёме кристалла СБИС или ПЛИС. STI 1.0
2018-05-03 в 9:16, admin, рубрики: asic, fpga, gpio, RTL, STI 1.0, внутренняя шина, интерфейс, интерфейсы, периферийный блок, ПЛИС, регистровый файл, системная шина, шина STIМигаем светодиодом из модуля ядра Linux
2018-04-13 в 19:21, admin, рубрики: C, diy или сделай сам, gpio, linux, linux kernel, Raspberry PiВсем привет. В этой статье хочу поделиться опытом создания простого модуля ядра Linux. Статья будет полезна тем, кто хотел бы понять как писать модули ядра, но не знает с чего начать.
Мне давно хотелось разобраться в этой теме, но до недавнего времени не знал как к ней подойти. Хотелось, чтобы модуль был достаточно простым, но сложнее чем сообщение «Hello world!» выведенное в log файле. В итоге я решил попробовать помигать светодиодом. Дополнительная цель была вывести параметр отвечающий за частоту мигания в sysfs.
Читать полностью »
Генерируем произвольные последовательности на выводах платы Raspberry Pi
2017-06-06 в 20:36, admin, рубрики: 3d-принтер, ARM-процессоры, cnc, DMA, gpio, python, Raspberry Pi, Алгоритмы, Блог компании DataArt, Разработка под Linux, Разработка робототехники, шаговый двигатель
Автор: Николай Хабаров, Embedded Expert DataArt, евангелист технологий умного дома.
В этой статье я расскажу, как написать обычное user space-приложение на Python для современного ARM-процессора с ОС Linux для генерирования сложных последовательностей импульсов на выводах платы. Суть идеи — использовать DMA-модуль процессора для копирования из предварительно подготовленного буфера в памяти в GPIO с высокой точностью по времени.
Когда речь заходит о необходимости сгенерировать сложную последовательность импульсов, например, для шаговых двигателей, обычно используют старые добрые простенькие микроконтроллеры с установленной специальной операционной системой реального времени или вообще без операционной системы. Реализация при этом, в лучшем случае, написана на C++. Сейчас процессоры шагнули далеко вперед и имеют массу преимуществ: производительность, возможность использования операционной системы Linux со всей инфраструктурой и ПО, а также высокоуровневых языков программирования, таких как Python. И все же современные микроконтроллеры для генерирования сложных последовательностей на выводах GPIO, как правило, не используют.
Я реализовал генерацию импульсов для управления шаговыми двигателями проекта PyCNC — проекта контроллера машин с ЧПУ, станков, 3D-принтеров, полностью написанного на Python и запускаемого на современном ARM-процессоре на плате Raspberry Pi.
Статья может быть полезна желающим реализовать генерацию сложных последовательностей установки уровней на выводах одного или нескольких GPIO на других высокоуровневых языках программирования, используя DMA-модули других процессоров.Читать полностью »
Подключаем геймпад от PS1-PS2 к Raspberry pi
2017-05-07 в 13:03, admin, рубрики: diy или сделай сам, gpio, Raspberry Pi, старое железоНа дворе майские праздники. А значит время есть шашлыки и употреблять различные разливные и бутилированные напитки. А я занимаюсь всякой ерундой. Мысль о данном проекте пришла, ещё до нового года. Но я долго не мог его реализовать. Прикупив первый геймпад (который я выкинул в последствии), и попробовав опросить его, я понял, что тут уже не обойтись простым чтением мануалов, хотя инфы достаточно. Благо, на это 23 февраля я получил в подарок не пену для бритья, упакованную в носки, а 600 р. с пожеланием не отказывать себе ни в чём на aliexpress. Где и была куплена китайская копия логического анализатора Saleae Logic. Те, кому интересно, что из этого получилось, могут ткнуть мышкой по кнопке ниже. А те, кому лень читать могут сразу посмотреть результат вот тут
Nalivator-9000: робот-бармен на Raspberry Pi и Go
2017-04-24 в 8:27, admin, рубрики: Go, golang, gpio, Raspberry Pi, Разработка для интернета вещей, Разработка робототехники
Пару лет назад я наткнулся на проект Bartendro на Kickstarter. Мне понравилась идея, и я решил, что идеальное применение для моего недавно приобретенного Raspberry Pi найдено. Я прикинул какие детали понадобятся, и приступил к DIY реализации робота-бармена. Кратко расскажу что из этого получилось.
Читать полностью »
Примитивы для реализации 1-Wire master при помощи PWM и ICP для STM8L и STM32
2017-04-11 в 14:58, admin, рубрики: 1wire, dma. pwm, DS18B20, gpio, icp, interrupt, irq, isr, Realtime, scada, stm32, stm32l, stm8, stm8l, программирование микроконтроллеров, Разработка для интернета вещейВ предыдущей статье был представлен вариант реализации примитивов для асинхронной работы с шиной 1-wire для микроконтроллеров Ateml. Ну а сейчас вашему вниманию предлагается реализацию того же самого, но на более мощных микроконтроллерах семейства STM8L (для отладки использовалась обычная оценочная плата STM8L-Discovery с извлеченным LCD-дисплеем). С минимальными изменениями описываемая реализация может быть адаптирована и для семейства STM32.
Примитивы для реализации 1-Wire master при помощи PWM и ICP на микроконтроллерах AVR AtMega
2017-02-27 в 15:02, admin, рубрики: 1wire, arduino, Atmega, ATmega2560, atmega328, ATMEGA328P, avr, DS18B20, gpio, icp, interrupt, isr, protothreads, PWM, Realtime, scada, программирование микроконтроллеров, Разработка для интернета вещей, Разработка робототехникиЕсли кто-нибудь использовал linux-драйвер шины 1-Wire на основе GPIO, то наверняка замечал, что в момент выполнения обмена данными загрузка SY% подскакивает чуть ли не до ста 100% (что вполне логично для bitbang-реализации). Конечно, можно поставить специализированный контроллер шины 1-Wire с подключением через I2C DS28E17 или использовать UART, но… Все-таки использовать linux для приложений реального времени не лучшая идея. Пусть контроллер на нем занимается высокоуровневой логикой, а весь реалтайм можно вынести на отдельный процессор. Тем более, что задач для этого отдельного процессора в моем проекте более чем достаточно.
Читать полностью »
Подключение управлямых блоков питания, сенсоров и реле к серверным материнским платам. Без Arduino
2017-02-01 в 1:00, admin, рубрики: Corsair Link, DIY, diy или сделай сам, freebsd, freenas, gpio, I2C, IPMI, IPMItool, open source, PMBus, SMBus, supermicro, Железо, измерение мощности, крепсондо, микроконтроллеры, микроэлектроника, Моддинг, мониторинг сервера, питание, реле, Системные платы, телеметрия датчиковПодключение различных сенсоров, датчиков, реле, GPIO-расширителей и прочего «ардуиновского» хозяйства по шине I²C напрямую к серверным материнским платам через IPMI-интерфейс бортового контроллера (BMC). Практические примеры I²C-устройств и работа с ними из командной строки утилитой
ipmitool
. SMBus, PMBus и управление блоками питания. Не очень документированные ограничения и вопросы безопасности. Разоблачение проприетарщины.
После установки сервера в самодельную конструкцию порой хочется подключить к нему ещё чего-нибудь: например, датчики температуры, давления, влажности, ЖК-экранчики или даже ШИМ-драйверы моторчиков. Бывают глючные внешние устройства, которые приходится удалённо и жёстко сбрасывать с помощью реле, не уровнив при этом весь сервер целиком. А может, читателю просто захотелось гребёнку GPIO с гирляндой светодиодов? Если это не одноплатник типа Raspberry Pi, а полноразмерный сервер, приходится навешивать микроконтроллер и возиться с ним: писать прошивку, тестировать, налаживать стык с хостом и т.д. Иногда это интересно само по себе, но бывает и наоборот: скорей бы скриптину написать да запустить, наконец, лишь бы работало.
Необычные разъёмы на железе всегда вызывали у автора смешанные чувства инженерно-технического зуда и вентиляторного фетишизма. Об этих занимательных разъёмах здесь и речь.
Читать полностью »
Real-time BeagleBone: использование высокоскоростных выводов
2017-01-11 в 16:59, admin, рубрики: beaglebone black, Device Tree, gpio, hardware, linux, pasm, pru, sitara, texas instruments, высокая производительность, программирование микроконтроллеров
Здравствуйте, уважаемые читатели! Давно уже являюсь читателем Хабра, но до сих пор не мог найти достойной темы для публикации. И вот, наконец, хорошенько прошерстив Хабр и GT, удивился отсутствию публикаций, посвященных программируемой подсистеме реального времени (PRU‐ICSS) линейки процессоров SitaraTM фирмы TI.
Наиболее популярной и доступной отладочной платой с процессором AM335x является так называемый «одноплатник» BeagleBone Black (White,Green). И именно наличие PRU делает BeagleBone наиболее предпочтительным для использования в hardware-проектах по сравнению с другими бюджетными одноплатниками типа *Pi. Кроме того, в некоторых случаях BBB-PRU может достаточно эффективно заменить связку ПК-МК-ПЛИС.
В данной статье приведен краткий обзор подсистемы PRU и режимов работы высокоскоростных портов ввода/вывода, рассмотрен пошаговый пример инициализации высокоскоростных портов вывода (Enhanced GPIO) и произведена оценка их производительности.Читать полностью »
Подключаем геймпад от Nintendo Classic Mini к Raspberry pi
2017-01-08 в 18:12, admin, рубрики: diy или сделай сам, gpio, Raspberry Pi, Игровые приставкиПраздники подходят к концу, а значит пора пожалеть печень и включить голову. Вот и мне пришла в голову очередная идея. После того, как я подключил геймпад от Dendy (он же джойстик, он же контроллер, он же кнюппель, он же игровой пульт и т. д.) geektimes.ru/post/281520, я задумался о подключении второго к Raspberry pi. Второе барахло с заедающими кнопками покупать не хотелось, и тут как раз кстати вывалили на прилавки Nintendo Classic Mini, ну как вывалили — хрен купишь. Самой цели покупать эмулятор за 4К не было, а вот геймпад я и решил купить. Благо мне удалось его купить, был последний в магазине. Те, кому интересно, что из этого получилось, могут ткнуть мышкой по кнопке ниже.
Вот прямая ссылка на пруф, если не активируется штатная www.youtube.com/watch?v=T0YV4jJiVYk&t=252s