zheleznaja_chast:dmx-512_tester_na_mikrokontrollere_stm32

Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
zheleznaja_chast:dmx-512_tester_na_mikrokontrollere_stm32 [2016/07/01 20:42] – создано Leozheleznaja_chast:dmx-512_tester_na_mikrokontrollere_stm32 [2025/12/23 11:48] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
-Как-то понадобилось изучить протокол — DMX-512.+====== DMX тестер на контроллере STM32 ====== 
 +Как-то понадобилось изучить протокол — DMX-512 
 И научится правильно «принимать» посылки. И научится правильно «принимать» посылки.
-В интернете, о протоколе DMX — информации достаточно DMX+В интернете, о протоколе [[:wiki:dmx_512|DMX]] — информации достаточно [[:wiki:dmx_512|DMX]]
 Простите за низкое качество фото. Простите за низкое качество фото.
 +
  
 {{:zheleznaja_chast:092b28.jpg|}} {{:zheleznaja_chast:092b28.jpg|}}
Строка 8: Строка 10:
  
 DMX-512 целиком произошел от стандарта RS-485. DMX-512 целиком произошел от стандарта RS-485.
-Основное отличие DMX от RS-485 это то, что в DMX есть «Break»+ 
 +Основное отличие [[:wiki:dmx_512|DMX]] от RS-485 это то, что в [[:wiki:dmx_512|DMX]] есть «**Break**»
 В RS-485 это воспринимается как ошибка передачи данных. В RS-485 это воспринимается как ошибка передачи данных.
-В DMX скорость передачи данных строго определена и составляет 250 кб. в сек.+В [[:wiki:dmx_512|DMX]] скорость передачи данных строго определена и составляет 250 кб. в сек.
 Передача данных осуществляется восьми битным асинхронным протоколом с одним стартовым битом (низкий активный уровень) и двумя стоповыми битами. Передача данных осуществляется восьми битным асинхронным протоколом с одним стартовым битом (низкий активный уровень) и двумя стоповыми битами.
 Один фрейм = 11 бит. Длина пакета 44 микросекунды. Передаваемая информация находится между стартовым и стповыми битами и имеет 256 уникальных состояний от 0 до 255. Один фрейм = 11 бит. Длина пакета 44 микросекунды. Передаваемая информация находится между стартовым и стповыми битами и имеет 256 уникальных состояний от 0 до 255.
 Появление низкого уровня после всего пакета (512 фреймов) данных воспринимается как начало нового пакета. Появление низкого уровня после всего пакета (512 фреймов) данных воспринимается как начало нового пакета.
 Количество каналов = фреймов, считываемых прибором с линии ДМХ зависит от количества функций, заложеных производителем в прибор. Количество каналов = фреймов, считываемых прибором с линии ДМХ зависит от количества функций, заложеных производителем в прибор.
-Например одноканальный диммер (в смысле на одну нагрузку) отъедает от линии DMX только один (канал = фрейм).+Например одноканальный диммер (в смысле на одну нагрузку) отъедает от линии [[:wiki:dmx_512|DMX]] только один (канал = фрейм).
 При изменении цифр от 0 до 255 в ДМХ пульте управления, процессор диммера считывает эту информацию и плавно изменяет выходное напряжение на нагрузке от 0 вольт до 220 вольт.  При изменении цифр от 0 до 255 в ДМХ пульте управления, процессор диммера считывает эту информацию и плавно изменяет выходное напряжение на нагрузке от 0 вольт до 220 вольт. 
 Линия ДМХ позволяет управлять пятьсот двенадцатью одноканальными приборами. Линия ДМХ позволяет управлять пятьсот двенадцатью одноканальными приборами.
 +
 Если в приборе указать стартовый адрес ДМХ отличный от 1, например 24, то прибор считывает число только с 24 фрейма. Если в приборе указать стартовый адрес ДМХ отличный от 1, например 24, то прибор считывает число только с 24 фрейма.
-На остальных каналах (фреймах) могут находится другие приборы. Главное сообщить прибору с какого фрейма он начинает принимать информацию.+На остальных каналах (фреймах) могут находится другие приборы. __Главное сообщить прибору с какого фрейма он начинает принимать информацию__. 
 http://www.x-light.ru/dmx.html http://www.x-light.ru/dmx.html
-Результат работы в массиве DMX_array[512]; (Keil, Debugger).+===== Сборка тестера ===== 
 + 
 + 
 +**Результат работы в массиве DMX_array[512]; (Keil, Debugger). 
 +** 
 {{:zheleznaja_chast:b15ca2.jpg|}} {{:zheleznaja_chast:b15ca2.jpg|}}
  
-DMX тестер посылает «20» в первом канале.+**DMX тестер посылает «__20__» в первом канале. 
 +** 
 {{:zheleznaja_chast:e98e12.jpg|}} {{:zheleznaja_chast:e98e12.jpg|}}
 b15ca2 b15ca2
Строка 30: Строка 42:
  
 {{:zheleznaja_chast:997314.jpg|}} {{:zheleznaja_chast:997314.jpg|}}
 +===== Исходный код тестера =====
  
-<file>+<code **c** STMDMX512Tester.c>
 #include "stm32f10x.h" #include "stm32f10x.h"
 #include "core_cm3.h" #include "core_cm3.h"
Строка 67: Строка 80:
  
         GPIOB->CRH|=GPIO_CRH_MODE10;        GPIOB->CRH |= GPIO_CRH_CNF10;  GPIOB->CRH &=~ GPIO_CRH_CNF10_0;  // PORTB 10 - out         GPIOB->CRH|=GPIO_CRH_MODE10;        GPIOB->CRH |= GPIO_CRH_CNF10;  GPIOB->CRH &=~ GPIO_CRH_CNF10_0;  // PORTB 10 - out
-        GPIOB->CRH &=~ GPIO_CRH_MODE11;     GPIOB->CRH |= GPIO_CRH_CNF11; GPIOB->CRH &=~ GPIO_CRH_CNF11_0;   // PORTA 3 - input DMX+        GPIOB->CRH &=~ GPIO_CRH_MODE11;     GPIOB->CRH |= GPIO_CRH_CNF11; GPIOB->CRH &=~ GPIO_CRH_CNF11_0;   // PORTA 3 - input [[:wiki:dmx_512|DMX]]
         GPIOD->CRH |=  GPIO_CRH_MODE11;     GPIOD->CRH &=~ GPIO_CRH_CNF11;                                   // PORTD 9 - out USART_debuger         GPIOD->CRH |=  GPIO_CRH_MODE11;     GPIOD->CRH &=~ GPIO_CRH_CNF11;                                   // PORTD 9 - out USART_debuger
         GPIOB->CRH &=~ GPIO_CRH_MODE9;      GPIOB->CRH |= GPIO_CRH_CNF9;  GPIOB->CRH &=~ GPIO_CRH_CNF9_0;         GPIOB->CRH &=~ GPIO_CRH_MODE9;      GPIOB->CRH |= GPIO_CRH_CNF9;  GPIOB->CRH &=~ GPIO_CRH_CNF9_0;
Строка 238: Строка 251:
  int long a;  int long a;
  for (a=0; a<delay; a++){}}  for (a=0; a<delay; a++){}}
-</file>+</code>
 Отлаживалось на демоплате STM_Eval-Board-STM32 (STM32F103VB) Отлаживалось на демоплате STM_Eval-Board-STM32 (STM32F103VB)
 {{:zheleznaja_chast:4e8e0a.jpg|}} {{:zheleznaja_chast:4e8e0a.jpg|}}
 +
 Спасибо за статью [[http://we.easyelectronics.ru/khomin/dmx-512-stm32.html|khomin]] Спасибо за статью [[http://we.easyelectronics.ru/khomin/dmx-512-stm32.html|khomin]]
 +
 +===== Комплектующие =====
 +Купить [[https://alii.pub/6jzckl|STM32F103]] на [[https://alii.pub/6jzckl|Aliexpress]] ~ 350-500руб.
  
  
  
  • zheleznaja_chast/dmx-512_tester_na_mikrokontrollere_stm32.1467405771.txt.gz
  • Последнее изменение: 2017/06/09 20:04
  • (внешнее изменение)