вторник, 16 января 2018 г.

1-Wire & GPIO firmware; main board project

STM32F100/103 W1 module

Это решение - L0 модуль промышленного исполнения. Позволяет работать с тремя типами датчиков: iButton, DS18B20, Кнопка.

Вид модуля без крышек:

 
Более детальное описание идеи, что такое модуль и в частности работа с интерфейсом 1-Wire находится по ссылке

воскресенье, 14 января 2018 г.

l0_w1_gpio_ru


Оглавление


Пример модуля L0 для работы с 1-Wire / GPIO


Как уже упоминалось, модуль это совокупность аппаратных и программных компонент.

В качестве аппаратной части можно использовать «Голубую Таблетку» ( STM32F101C8T6 ) , красную, черную или «Зеленую Таблетку» - разработки Open-PLC.

Программное средство это «прошивка» ориентированная на решение определенных задач. Начнем с модуля работающего автономно ( не в сети )
Есть несколько способов залить «прошивку» в микроконтроллер.
Самый простой вариант - через последовательный интерфейс с помощью фирменной утилиты Flash Loader Demonstrator STM32 Flash Loader ). Эта утилита бесплатна и её можно скачать официального сайта по ссылке.
В системной области памяти контроллера имеется bootloader. Он и позволяет записать прошивку во flash-память через последовательный интерфейс.
Детально bootloader описан в документе AN2606 (
CD00167594.pdf), а используемый им протокол - в документе AN3155 (CD00264342.pdf).
Нужно соединить контроллер с компьютером через UART1.
STM32F103C8T6 имеет 48-выводный корпус, в котором UART1 выведен на ноги 30 (Tx) и 31 (Rx). На плате «Голубая таблетка» это так же 30 и 31 пин.
Можно использовать любой адаптер USB-UART, подобный такому: , изготовить самостоятельно: USB-UART, или например от Arduino, с уровнями сигнала 3.3V
Для дальнейшей работы потребуется программа терминала, например terraterm.

Скорость UART = 115200.
После загрузки «прошивки» в микроконтроллер, подключаемся к порту, через который загружали, программой-эмулятором терминала ( terraterm ).
При нажатии кнопки «Reset» на плате микроконтроллера (МК), на экране терминала должно быть напечатано: «+++». Это значит, что UART настроен правильно.
При нажатии на «Enter» должна напечататься подсказка «W1> ”
Если ввести что-то произвольное, то будет напечатано:

cfg – это режим конфигурирования модуля. Теперь «Голубую Таблетку» мы можем называть модулем, для начала работающего автономно ( без сети ).
После ввода комманды
«cfg» на терминал будет выведен следующий текст:

Напечатаем «?» для помощи:

q – выход из режима конфигурации.

В модуле есть каналы — это пронумерованные логические линии связи с физическими портами контроллера. Максимум каналов — 16.
Канал связан с портом, пином порта и типом устройства ( GPIO Type ).
При первом включении определен всего один, ни с чем не ассоциированный канал.
Напечатаем «sh», чтобы посмотреть, какие каналы определены:

Видим, что есть один канал.
Для того, чтобы связать канал с портом и устройством введем:
lc 1 a 8 4,
и посмотрим, что получилось:

Видим, что теперь есть канал 1,с портом PA8 и к нему подключено устройство двунаправленного ввода-вывода с подтяжкой вверх.
Изменить количество каналов — комманда ln

В таблице ниже соответствие типа GPIO и что можно использовать в качестве этого GPIO:

Nn

Краткое описание

Что используется


1

DS18B20

Температурный датчик

2

iButton

Ключ типа «Таблетка»

3

bidirectional GPIO pulldown

Реле, светодиод

4

bidirectional GPIO pullup

Кнопка, реле, светодиод

5

GPIO_Mode Input Floating

Датчики типа PIR (датчик движения)

Параметр BTN timeout – сколько секунд «помнить» идентификатор ключа iButton

Ключ «Таблетка» расчитан на работу с уровнем сигнала 5V. Уровень сигнала МК = 3.3V, поэтому для корректной работы нужно использовать преобразователи уровня. В текущем пректе была использована в качестве преобразователя микросхема ADUM1250.
Это двунаправленный гальванический изолятор.

Схема подключения:

Макетная плата с преобразователем:

Был собран макет со следующими типами датчиков/устройств:

В конфигурации параметр SD ( Show Data ) = 1 — вывод данных на экран терминала во время работы модуля. SD=0 – не печатать информацию на терминал.
Вывод информации модуля этой конфигурации:

В данном примере канал 3 — термодатчик ( °С ), канал 5 — прочитанное значение iButton.

Если во время работы ввести номер канала, то программа попытается инвертировать сигнал этого канала. Актуально для bidirectional GPIO pulldown или bidirectional GPIO pullup. Для других типов будет напечатано сообщение: Channel may be GPIO only.
Таким образом можно «моргать» светодиодом или менять состояние реле.

Проект собран в демонстрационной версии KEIL ( до 32 кбайт )
Если есть желание, чтобы модуль что-то выполнял автономно, например:
- в зависимости от температуры что-то включать/выключать
- при движении чем то управлять
- при обнаружении ключа «Таблетка» срабатывало реле
- что то еще

То в программе main.c есть небольшой пример в комментариях, как и куда читать/писать значения.


Сборка модуля на универсальных платах ( внешний вид ):


Для увеличения любой картинки в статье нужно щелкнуть по ней правой кнопкой мыши и выбрать строчку «открыть в новой вкладке».

В следующих статьях рассмотрим, как создавать систему из модулей работающих в сети.


w1_gpio.bin

w1_gpio.hex

Проект KEIL


пятница, 5 января 2018 г.

ProtoBoard_en


Contents


Universal Protoboard / Breadboard



A special, universal printed circuit board for prototyping has been developed.


Of course, there are various solderless boards for making prototypes. For example, the widespread "BreadBoard":


This fee can be used for prototypes, but it is not very convenient for working with a "blue pill".


Example of use.

To the right the PCB designed for sharing with the "blue pill", on the left (red ellipse), are present only one row of contacts of the "mother" type for connecting additional devices. To the right row of contacts of the "blue pill" nothing else can be connected.


The same "blue pill" and an additional PCB on the universal prototyping board:

We see that there are free contacts to the left and to the right.


An example of an additional board is the "CAN interface" for sharing with the "blue pill", from the examples above.


Comparison of sizes of breadboard and universal board.


Everyone can make a universal board according to their requirements from a set of contacts, both "mom" and "dad". Contacts can be either single-row or double-row 1x20, 2x20. On the edges of the board you can mount the terminal blocks.

Example of used contacts and terminal blocks:


Examples of manufactured boards, with different types of contacts:


For prototyping DIP-elements, collet-adapter connectors are required:


Examples of mounting DIP-elements:


On the lower side of the board there are small rubber "feet":


The board features two buses, A and B of 20 conductors each. Combine the conductors of the buses into one by a jumper:


This is intended for example for conductors "+" and "-" of power suplay, common conductors.


On the universal board you can mount modules with a two-row arrangement of contacts, which in principle can not be done on a breadboard.


Example of a module with two-row contacts:


Installation of this module on the universal board:


The size of the universal card is chosen for installation in a standard box on a DIN-rail. If in this case a USB connector is used, the pins of the "blue pill" should be soldered as follows:


"Blue pill" and CAN module installed on the universal card:


Universal board in a box for DIN-rail without covers:


Universal board in a box on DIN-rail with installed covers:

This solution allows you to make the prototype as the appearance of an industrial product.


After prototyping, the modules or elements of the prototype can be soldered on universal board.

and place in a box on a DIN-rail or a box of your own making.


Universal boards can be made by self, or ordered through the site (open-plc.com page contacts).

Different versions of the assembling are possible from "I solder all myself" or universal board with already soldered-in connectors.


Design of "universal board"


суббота, 21 октября 2017 г.

ProtoBoard_ru


Оглавление


Универсальная плата для макетирования



Разработана специальная, универсальная печатная плата для макетирования.


Безусловно, существуют различные беспаячные платы для изготовления прототипов. Например широко распространенная “BreadBoard”:


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


Пример использования.

Справа от «таблетки» плата разработанная для совместного использования с «голубой таблеткой», слева ( обведено кружком ), остался всего один ряд контактов типа «мама» для подключения дополнительных устройств. К правому ряду контактов «голубой таблетки» больше ничего подключить нельзя.


Та же «таблетка» и дополнительная плата на универсальной макетной плате:

Видим, что и слева и справа есть свободные для использования контакты.


Пример дополнительной платы — «CAN интерфейс» для совместного использования с «голубой таблеткой», из примеров выше.


Сравнение размеров беспаячной и универсальной плат.


Универсальную плату каждый может сделать по своим требованиям из набора контактов как «мама» так и «папа». Контакты могут быть как однорядные, так и двухрядные 1x20, 2x20. По краям платы можно смонтировать клеммники.

Пример используемых контактов и клеммников:


Примеры изготовленных плат, с разными типами контактов:


Для макетирования DIP-элементов необходимы переходники-цанговые разъемы:


Примеры монтажа DIP-элементов:


С нижней стороны платы имеются резиновые «ножки»:


На плате представлены две шины, A и B из 20 проводников каждая. Объединить проводники шин в один можно перемычкой:


Это предназначено например для проводников «+» и «-» питания, общих проводников.


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


Пример модуля с двурядными контактами:


Монтаж данного модуля на универсальную плату:


Размер универсальной платы выбран для установки в стандартную коробку на DIN-рейку. Если в этом случае будет использован USB разъем, то штырьки «голубой таблетки» должны быть впаяны следующим образом:


«Таблетка» и модуль CAN установленные на универсальную плату:


Универсальная плата в коробке на DIN-рейку без крышек:


Универсальная плата в коробке на DIN-рейку с установленными крышками:

Это решение позволяет придать прототипу внешний вид промышленного изделия.


После изготовления прототипов модули или элементы прототипа можно впаять на эту плату

и разместить в коробке на DIN-рейку или коробке собственного изготовления.


Платы можно изготовить самостоятельно, или заказать через сайт ( open-plc.com страница контакты ).

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


Чертеж «универсальной платы»