109 lines
3.5 KiB
Markdown
109 lines
3.5 KiB
Markdown
# sdp-f103-carton-counter
|
||
|
||
Счетчик картона для бумажного комбината
|
||
|
||
## Подключение
|
||
|
||
* PA0 - выход компаратора, который стоит после оптотранзистора
|
||
* PB6 - выход на светодиод
|
||
* PB12 - выход на светодиод, если светодиод горит - сигнал есть и датчик заметил что он видит объект, иначе объекта он не видит
|
||
* PA10 - usart1_rx
|
||
* PA9 - usart1_tx
|
||
|
||
## Сборка и компиляция
|
||
|
||
1) открыть проект в STM32CubeMX
|
||
2) сгенерировать код под SW4STM32 IDE
|
||
3) собрать любой IDE, которая умеет работать с CMake
|
||
|
||
## Фичи
|
||
|
||
* реагирует только на 20 непрерывных импульса от компаратора
|
||
* когда от компаратора нет импульсов больше 5 периодов, программа считает что потеряла объект
|
||
* выплевывает текстом данные в usart1
|
||
* работает с modbus через usart2 (in development)
|
||
|
||
## Используемая переферия
|
||
|
||
* TIM4 (CH1) - генерация PWM на ноге PB6
|
||
* TIM2 - input capture, захват сигнала с компаратора
|
||
* TIM3 - таймер для modbus
|
||
|
||
## Регистры ModBus
|
||
|
||
<table>
|
||
<tr>
|
||
<th> Имя </th>
|
||
<th> Адрес </th>
|
||
<th> Доступ </th>
|
||
<th> Допустимые значения </th>
|
||
<th> Описание </th>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CONTROL</td>
|
||
<td>0x0010</td>
|
||
<td>rw</td>
|
||
<td>0x00-0xFF</td>
|
||
<td>Регистр для управления устройством. Для включения нужных функций нужно установить соответствующие биты. См. описание регистра CONTROL.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>CNT</td>
|
||
<td>0x0011</td>
|
||
<td>rw</td>
|
||
<td>0-32000</td>
|
||
<td>Регистр счета, обнуляется при перезапуске устройства. Специальное значение 0xFFFF означает что регистр был переполнен.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MIN_RECEIVE_PULSES</td>
|
||
<td>0x0012</td>
|
||
<td>rw</td>
|
||
<td>0-20</td>
|
||
<td>Минимальное количество импульсов, после которых считается что объект в видимой зоне</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MAX_LOST_PULSES</td>
|
||
<td>0x0013</td>
|
||
<td>rw</td>
|
||
<td>0-20</td>
|
||
<td> Максимальное количество импульсов, при которых объект считается вышедшим из видимой зоны. </td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MIN_PULSE_WIDTH</td>
|
||
<td>0x0014</td>
|
||
<td>rw</td>
|
||
<td>0-5000</td>
|
||
<td> Минимальная ширина импульса, 1000 = 100% ширины. </td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>MAX_PULSE_WIDTH</td>
|
||
<td>0x0015</td>
|
||
<td>rw</td>
|
||
<td>1-5000</td>
|
||
<td> Максимальная ширина импульса, 1000 = 100% ширины. </td>
|
||
</tr>
|
||
</table>
|
||
|
||
|
||
### Описание регистра CONTROL
|
||
|
||
<table>
|
||
<tr>
|
||
<th>Бит</th>
|
||
<th>Название</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>0</td>
|
||
<td>CNT_EN</td>
|
||
<td>Сигнал разрешения работы счетчика. 0 - устройство выключено, 1 - включено.</td>
|
||
</tr>
|
||
</table>
|
||
|