Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Схема замещения коммутатора DS2409 шины 1WIRE на микроконтроллер 12F675

Схема замещения коммутатора DS2409  шины 1WIRE на микроконтроллер 12F675

 

А. А. Шабронов    

 

 

Приведено описание схемы замещения коммутатора DS2409 на микроконтроллер PIC 12F675 для работы с однопроводным интерфейсом 1WIRE. Основное преимущество данного замещения заключается в применении широкодоступных микроконтроллеров, вместо снятых с производства коммутаторов DS2409 и увеличение  линий коммутаций до пяти. Замена микроконтроллером позволяет считывать большее количество датчиков и использовать все ранее подготовленное программное обеспечение интерфейса 1WIRE.

 

Ключевые слова: DS2409, DS1820, интерфейс 1WIRE, 12F675.      

 

1.  Введение

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

Важным элементом 1WIRE является коммутатор DS2409 [2] для создания различных топологий сети, который в настоящее время снят с производства. Далее рассмотрим предлагаемую схему замещения и его особенности.

 

2.  Схема замещения DS2409

Схема замещения DS2409 для пяти каналов на микроконтроллере 12F675(U1) представлена на рис.

1. Схема и печатная плата замещения DS2409 подготовлена в редакторе печатных плат DipTracce и находиться в каталоге [7] , файл  konferen2021_ds2409_zamena_v1.zip

Микроконтроллер U1 включен выводом GP5 на вход шины 1WIRE через разъем XP6 [4].

Выводы U1 GP0-GP4 управляют N-канальными MOSFET  транзисторами с изолированным затвором. Выбран наиболее доступный и широко распространенный   тип транзистора 2N7000, сопротивление канала которого в открытом состоянии составляет единицы Ома[3].

Выводы U1 GP0-GP4 устанавливаются в режим логического нуля или единицы с «подтяжкой» через внутреннее сопротивление микроконтроллера, что позволяет отказаться от внешних элементов.  Для фильтрации импульсных помех по шине питания используется конденсатор С1.

Выходные сигналы формируются от пяти транзисторных ключей Q1-Q5. Открытый транзистор  создает сквозной канал для своего направления.

Управление состоянием ключей Q1-Q5  меняет информационный поток  шины 1WIRE. Предусмотренные состояния IN-1W=OUT-1W-1 до IN-1W=OUT-1W-5 разделяют емкостную нагрузку внешних линий и позволяют подключить большее количество датчиков шины.

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

 

 

               Рис. 1.  Схема замещения DS2409 для пяти каналов 1WIRE.

 

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

 

 

 

      

3.  Программное обеспечение схемы замещения

 

Существующий протокол 1WIRE определяет каждое устройство на шине 1WIRE по первому коду 9 байтной последовательности уникального адреса.  В таблице 1 выборочно приведено: первое устройство, последнее и код коммутатора DS2409. Полный список находиться в [5]

       

Таблица 1. Выборочный перечень устройств интерфейса 1WIRE

Код семейства (HEX)

Устройство 1WIRE

Описание

01

DS1990A, DS1990R, DS2401, DS2411

Уникальный серийный номер-ключ

1F

DS2409

Двухканальный адресуемый ключ с возможностью коммутации на возвратную шину

43

DS28EC20

20 КБ EEPROM

 

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

Рекомендуется выбрать свой код семейства, и предоставить описание на переключение пяти каналов 1WIRE.

Автор пошел по второму пути, и использует свой код для управления микроконтроллером и схемой замещения [7].

Необходимо отметить, что можно вообще отказаться от предлагаемой системы адресации интерфейса 1WIRE предусмотренной для схемы DS2409 и использовать свой уникальный код или алгоритм установки ключей Q1-Q5.  Но оставить работу в интерфейсе 1WIRE для устройств использующих данный протокол.

 Данный подход автор использовал в работе [6] при работе с датчиками DS1820 по радиоканалу для уменьшения времени обмена информацией.

Программное обеспечение автора для объектов с интерфейсом 1WIRE представлено в [7].  Поскольку нижний уровень протокола программного обеспечения для интерфейса 1WIRE подробно описан, приведен широко в Интернете, доступен для повторения, предлагается ознакомиться с программами автора самостоятельно. Программное обеспечение имеет статус «как есть», содержит открытый   текст программы и может использоваться любым желающим.

 

 

4. Конструкция схемы замещения

Все элементы схемы замещения размещены на печатной плате. На рис. 2 представлена 3D-модель печатной платы в различных проекциях.

Плата содержит шесть коммутационных колодок на три вывода: 1- общий провод, шина 1WIRE и шина +5 Вольт.  

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

 

               Рис. 2.  Модель печатной платы схемы замещения в проекциях.

 

Напомним, что на элементах DS2409 российские производители изготавливали двухканальные коммутаторы под маркой ML09 [8]. Внешний вид представлен на рис. 3.

               Рис. 3.   Двухканальный коммутатор ML09 (сняты с производства)

 

 

 В связи с прекращением выпуска DS2409 прекращен и выпуск двухканальных коммутаторов ML09 [8].  

 

5. Заключение.

Отличительным признаком предложенной схемы замещения является использование микроконтроллера, который позволяет увеличить число каналов коммутации и использовать не только изделия интерфейса 1WIRE.

Вторым достоинством коммутатора можно считать совместимость с фирменными коммутаторами разработчиков шины 1WIRE, что позволяет использовать наработанное «старое» программное обеспечение.

 

Литература и источники Интернет

 

1.        Описание протокола 1WIRE https://elin.ru/files/pdf/1-Wire/app148ru_p.pdf

2.        Переключатель шины 1WIRE  http://www.gaw.ru/pdf/Dallas_Sem/1-Wire/DS2409.pdf

3.        Описание 2N7000 http://www.triatron.ru/upload/catalog_photo/elements/pdf/009088.pdf

4.        Описание 12F765 http://www.microchip.ru/files/d-sheets-rus/PIC12F629_675.pdf

5.        Коды устройств 1wire  https://avr.ru/beginer/understand/1wire

6.        Журнал «Современная электроника» 2020г, 8, 44-47 стр. «Применение интерфейса 1-Wire в радиоканале 433 МГц на модуле HC11» https://www.soel.ru/rubrikator/

7.        Программы автора  на «облачном» хранилище https://disk.yandex.ru/d/aKAo_DVD1LzrUQ

8.        Сайт производителей коммутаторов 1wire  МL-09 (производство прекращено)  https://elin.ru/

 

 Шабронов Андрей Анатольевич

 Cтарший преподаватель кафедры ТЭ СибГУТИ, тел. +7-913-905-8839, e-mail: [email protected]

  Replacement circuit of the DS2409 1WIRE bus switch to the 12F675 microcontroller

A.  Shabronov

The description of the replacement circuit of the DS2409 switch to the PIC 12F675 microcontroller for working with a single-wire 1WIRE interface is given. The main advantage of this replacement is the use of widely available microcontrollers, instead of the discontinued DS2409 switches and an increase in the number of switched lines from two to five. Replacing the microcontroller allows you to read more sensors and use all the previously prepared software of the 1WIRE interface.

Keywords: DS2409, DS1820, 1WIRE interface, 12F675.

Практический пример: замок с ключами IButton на 12F675 – Proton PICBasic

DEVICE = 12F675 ‘Выберем микроконтроллер

DECLARE XTAL= 4                    ‘Частота генератора

DECLARE REMINDERS NO      ‘Отключим предупреждения компилятора

ALL_DIGITAL YES                     ‘Выключим АЦП

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

‘включим сброс при включении питания, включим “собаку” для надежности

‘устройства, используем внутренний генератор:

CONFIG CPD_OFF, CP_ON, MCLRE_OFF, PWRTE_ON, WDT_ON, INTRC_OSC_NOCLKOUT

SYMBOL Key = GPIO. 0              ‘Вход считывания ключа

SYMBOL Zamok = GPIO.1          ‘Выход управления замком

SYMBOL OpenButton = GPIO.2  ‘Вход кнопки открытия вручную

SYMBOL Programm = GPIO.4    ‘Джампер для записи ключей

SYMBOL Led = GPIO.5              ‘Светодиод для индикации процесса записи ключа

DIM Flags AS BYTE                   ‘Переменная для хранения флагов управления

DIM ID[8] AS BYTE                  ‘ID ключа

DIM D[6] AS BYTE                   ‘Переменная для считывания ключей из EEPROM

DIM Num AS BYTE                   ‘Переменная для хранения числа записанных ключей

DIM Count_1 AS BYTE              ‘Счетчик 1

DIM Count_2 AS BYTE              ‘Счетчик 2

DIM addr AS BYTE                    ‘Переменная для хранения адреса

DIM date AS BYTE                    ‘Переменная для хранения данных ключа

SYMBOL Write_OK = Flags. 0    ‘Флаг окончания записи кода ключа в EEPROM

SYMBOL OpenEnable = Flags.1 ‘Флаг разрешения открытия

‘————————–Начало программы—————————–

SET_OSCCAL OSCCAL      ‘Загрузим калибровочную константу в регистр OSCCAL

GPIO = %000000                    ‘Настроим порты

CMCON = 7                          ‘Компаратор нам не нужен, отключим его

TRISIO = %011101                ‘Настроим направление работы портов(см. выше описание портов)

OPTION_REG = %00001100 ‘Разрешим подтягивающие резисторы, прерывание – по спаду

                                              ‘предделитель на 16 включим перед WDT

WPU = %011101                    ‘Настроим подтягивающие резисторы индивидуально для каждого порта

Flags = 0                                ‘Обнулим флаги

Num = EREAD 0                  ‘Число записанных ключей располагается по нулевому адресу EEPROM

GOTO Main                          ‘Все, закончили настройку, начинаем основной цикл

‘———————–Начало основного цикла——————————–

Main:

CLRWDT ‘ Очистим WDT

IF OpenButton = 0 THEN   ‘Проверяем, была ли нажата кнопка

OpenEnable = 1                 ‘Ставим флаг, разрешающий открытие двери

ENDIF

OWRITE Key, 1, [$33]         ‘Отправляем запрос по шине 1-Wire

OREAD Key, 0, [STR ID\8] ‘Читаем шину в массив переменных id

IF ID[0] = $1 THEN             ‘Если первый байт считанных значений равен 1(это идентификатор ключа I-Button DS1990),

IF Write_OK = 0 THEN       ‘то, если сброшен флаг окончания записи кода ключа

IF Programm = 0 THEN       ‘и джампер разрешает запись

GOSUB Writte                      ‘то переходим на ПП записи кода ключа

ELSE                                    ‘А если джампер установлен не на запись

GOSUB Compare                 ‘То переходим на сравнение записанных в EEPROM ключей

ENDIF                                 ‘и только что считанного

ENDIF

ELSE

Write_OK = 0                      ‘Сбрасываем флаг окончания записи

                                            ‘Этот флаг нужен для того, чтобы

                                            ‘за время прикосновения не записалось

                                            ‘несколько ключей. Он сбрасывается только

                                            ‘после того, как ключ был отсоединен

ENDIF

IF OpenEnable = 1 THEN    ‘Если установлен флаг, разрешающий открытие двери

GOSUB DoorOpen              ‘То переходим на метку открытия замка

OpenEnable = 0                    ‘И сбрасываем этот флаг

ENDIF

GOTO Main                       ‘Идем на начало цикла

‘——————–Подпрограмма записи кода ключа—————————

Writte:

SELECT Num                    ‘Проверяем переменную Num(число уже записанных ключей)

CASE 5,255                       ‘Если там ничего не записано(значение FF), или стоит цифра 5(записано уже 5 ключей)

Num = 1                              ‘то записываем туда 1(будем записывать первый ключ)

addr = 2                               ‘Устанавливаем адрес для записи этого ключа

CASE 1                              ‘Если записан 1 ключ,

Num = 2                              ‘то записываем туда 2(второй ключ)

addr = 8                              ‘Для записи второго ключа адрес – 8, так как записывать нам надо всего 6 значений

CASE 2                             ‘И так далее. ..

Num = 3                            ‘Ставим 3

addr = 14

CASE 3

Num = 4                            ‘Ставим 4

addr = 20

CASE 4

Num = 5                            ‘Ставим 5 – максимальное число ключей

addr = 26

ENDSELECT

FOR Count_1 = 0 TO 5   ‘Так как нам нет надобности записывать байт идентификации

                                        ‘и байт CRC, то требуется всего 6 ячеек для 

                                        ‘хранения непосредственно уникального номера ключа

EWRITE addr + Count_1 , [ID[Count_1 + 1]] ‘При записи каждого байта

                                        ‘инкрементируем адрес(с помощью Count_1)

                                        ‘и прибавляем единицу к считанному коду(пропускаем байт

                                        ‘идентификатора)

NEXT Count_1

EWRITE 0,[Num]           ‘Здесь мы записываем число ключей в нулевую ячейку

Write_OK = 1                  ‘Ставим флаг, что запись прошла успешно

Led = 1                            ‘Зажигаем светодиод, показывая пользователю, что

                                        ‘запись окончена и можно убрать ключ

FOR Count_2 = 1 TO 150‘на 1,5 секунды

CLRWDT                       ‘очищаем WDT в это время

DELAYMS 10                ‘150 раз по 10 мс = 1,5 сек

NEXT Count_2

Led = 0                           ‘Гасим светодиод

RETURN

‘————————–Подпрограмма сравнения записанных и считанного ключей

Compare:

FOR Count_1 = 2 TO 26 STEP 6 ‘Мы знаем, что записывали первый ключ во вторую

                                                     ‘ячейку

FOR Count_2 = 0 TO 5                ‘и нужно считать 6 байт в переменную D[]

D[Count_2] = EREAD Count_1 + Count_2

NEXT

                                                    ‘После этого мы сравниваем два массива D[] и ID[]

                                                    ‘Но в ID[0] хранится идентификатор, а в D[0] – первый байт уникального кода

                                                    ‘Поэтому сравниваем нулевой байт с первым и так далее. ..

IF D[0]=ID[1] AND D[1]=ID[2] AND D[2]=ID[3] AND D[3]=ID[4] AND D[4]=ID[5] AND D[5]=ID[6] THEN

FOR Count_2 = 0 TO 5              ‘Если совпадают комбинации, то сразу

ID[Count_2] = 0                          ‘Затираем ID[](считанный ключ), чтобы

NEXT Count_2                           ‘в следующем проходе не открыть замок

OpenEnable = 1                          ‘И разрешаем открытие двери

ENDIF

NEXT Count_1     

RETURN

‘———————Подпрограмма открытия двери—————————

DoorOpen:

Zamok = 1                                ‘Подаем 1 на базу транзистора

Led = 1                                    ‘Зажигмем светодиод

FOR Count_1 = 1 TO 100       ‘Ждем 1 секунду

DELAYMS 10                        ‘100 раз по 10 мс

CLRWDT                               ‘Очищаем WDT

NEXT

Zamok = 0                               ‘Закрываем замок

Led = 0                                   ‘Гасим светодиод

RETURN

END                                      ‘Конец

PIC12F675 Микроконтроллер Распиновка, характеристики и техническое описание

29 октября 2018 – 0 комментариев

          PIC12F675 – 8-битный микроконтроллер
          Распиновка микроконтроллера PIC12F675

      PIC12F675 — это 8-битный CMOS-микроконтроллер производства MICROCHIP TECHNOLOGY, разработанный на основе высокопроизводительной RISC-архитектуры. Этот микроконтроллер очень популярен среди любителей и инженеров из-за его стоимости и небольшого размера.

       

      Конфигурация контактов

      PIC12F675 представляет собой 8-контактное устройство, и многие из контактов могут выполнять несколько функций, как показано выше Схема контактов PIC12F675 . Описание каждой из этих функций приведено ниже.

      Штифт

      Функция

      Описание

      1

      ВДД

      Положительный источник питания

      2

      ГП5/Т1ЦКИ/ОСК1/КЛКИН

      GP5: контакт ввода/вывода общего назначения 5

      T1CKI: вход внешних часов таймера 1

      OSC1: контакт генератора 1

      CLKI: вход внешнего источника синхронизации

      3

      ГП4/АН3/Т1Г/ОСК2/КЛКОУТ

      GP4: контакт ввода-вывода общего назначения 4

      AN3: Аналоговый вход 3

      T1G: ворота Timer1

      OSC2: контакт генератора 2

      CLKO: выход источника синхронизации

      4

      ГП3/МКЛР/ВПП

      GP3: контакт ввода/вывода общего назначения 3

      MCLR: вход Master Clear Input или контакт сброса

      VPP: Напряжение программирования

      5

      GP2/AN2/T0CKI/INT/COUT

      GP2: контакт ввода/вывода общего назначения 2

      AN2: Аналоговый вход 2

      T0CKI: Вход часов Timer0

      INT: внешнее прерывание

      COUT: Выход компаратора

      6

      GP1/AN1/CIN-/VREF/ICSPCLK

      GP1: контакт ввода/вывода общего назначения 1

      AN1: аналоговый вход 1

      CIN-: вход компаратора

      VREF: внешнее опорное напряжение

      ICSPCLK: часы последовательного программирования

      7

      GP0/AN0/CIN+/ICSPDAT

      GP: контакт ввода-вывода общего назначения

      AN0: Аналоговый вход 0

      CIN+: вход компаратора

      ICSPDAT: последовательный ввод/вывод данных программирования

      8

      ВСС

      Земля

       

      PIC12F675 Особенности и электрические характеристики

      ЦП

      8-битный

      Общее количество контактов

      8

      Программируемые контакты

      6

      Коммуникационный интерфейс

      ICSP или внутрисхемный последовательный интерфейс программирования (13, 14 контактов) [может использоваться для программирования этого контроллера]

      Функция АЦП

      4 канала с 10-битным разрешением

      Функция таймера

      Один 8-битный счетчик, один 16-битный счетчик

      каналов ШИМ

      Нет в наличии

      Аналоговый компаратор

      В наличии-1

      Внешний осциллятор

      До 20 МГц

      Внутренний осциллятор

      Внутренний RC-генератор с частотой 4 МГц, откалиброванный на заводе до ±1%

      Память программ / Флэш-память

      2 Кбайт [100000 циклов записи/стирания]

      Скорость процессора

      1MIPS при 1 МГц

      ОЗУ

      64 байта

      ЭСППЗУ

      128 байт

      Сторожевой таймер

       

      Доступен и входит в состав Independent

      Осциллятор для надежной работы

      Режимы энергосбережения

      В наличии

      Рабочее напряжение

      от 2,0 В до 5,5 В

      Максимальный ток на любом контакте ввода/вывода

      ВХ: 25 мА

      ВЫХОД: 25 мА

      Рабочая температура

      от -40°C до +125°C

      Максимальный ток на выводе VDD

      250 мА

      PIC12F675 Замена

      PIC12F629

      PIC12F675 ОБЗОР

      PIC12F675 IS A Systemcon Trabletler Applications для Systems. Это хорошо для обучения и экспериментов для инженеров, потому что у него высокий цикл перезаписи флэш-памяти. Контроллер имеет флэш-память объемом 2 КБ, чего достаточно для начинающих разработчиков базовых программ. Кроме того, 6 контактов GPIO предназначены для работы с максимальным током 25 мА, что соответствует порогу многих периферийных устройств и датчиков.

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

       

      Как использовать PIC12F675

      Любой микроконтроллер необходимо запрограммировать перед установкой в ​​любую систему или приложение. Итак, сначала нам нужно запрограммировать контроллер PIC12F675.

      Весь процесс программирования PIC12F675 выглядит так:

      • Сначала перечислите все функции, которые должен выполнять этот контроллер.
      •  Затем напишите эти функции в «программном обеспечении IDE», используя соответствующий язык программирования (используйте язык «C» в MPLAB IDE).
      • MPLAB IDE для Windows можно загрузить с этого веб-сайта: www.microchip.com/mplabx-ide-windows-installer
      • После написания нужной программы скомпилируйте ее для устранения ошибок
      • Для успешной компиляции приложение IDE генерирует HEX-файл для написанной программы
      • Выберите устройство программирования (обычно «PIC kit 3» или «PIC kit 2»), которое устанавливает связь между ПК и PIC12F675
      • Правильно подключите программатор к микроконтроллеру
      • Запустите программу создания дампа HEX-файла, связанную с выбранным устройством программирования
      • Выберите соответствующий HEX-файл программы и запишите этот HEX-файл во флэш-память PIC12F675
      • Отключите программатор и подключите соответствующие периферийные устройства для контроллера

       

      После подключения питания контроллер выполняет этот шестнадцатеричный код, сохраненный в памяти (который является записанной программой), и создает ответ в соответствии с инструкциями.

       

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

       

      2D-модель

        Теги

        Микроконтроллер PIC

        Встроенный



      Hoja de datos ( техническое описание в формате PDF ) электронных компонентов

      Номер пьезы Описание Фабрикантес ПДФ
      10HF7402-02 Гибридные шаговые двигатели
      И Т. Д.
      ПДФ
      10HF7602-03 Гибридные шаговые двигатели
      И Т.Д.
      ПДФ
      11HS1002-14 Цифровой линейный привод
      И Т.Д.
      ПДФ
      11HY2401 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ
      11HY2402 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ
      11HY3401 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ
      11HY3402 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ
      11HY4401 2-фазный гибридный шаговый двигатель
      Король движения
      ПДФ
      11HY4402 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ
      11HY5401 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ
      11HY5402 Двухфазный гибридный шаговый двигатель
      Король движения
      PDF
      14ХМ2401 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ
      14ХМ2402 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ
      14ХМ2403 Двухфазный гибридный шаговый двигатель
      Король движения
      ПДФ

      Una ficha técnica, hoja técnica u hoja de datos (datasheet на английском языке), también ficha de characterísticas u hoja de characterísticas, es un documento que резюме el funcionamiento y otras characteristicas de un componente (por ejemplo, un componente electronico) o subsistema por ejemplo, una fuente de alimentación) con el suficiente detalle para ser utilizado por un ingeniero de diseño y diseñar el componente en un sistema.

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *