VBCores Docs
HomeGitHub
  • VBCores
  • Hardware
    • VBCore VB32G4
    • VB STM32 Programmer
    • BLDC motor driver 30A
    • DC motor driver 15A
    • Stepper motor driver 10A
    • Ethernet - CAN-FD
    • CAN-FD - Raspberry PI
      • Setting up CAN on Raspberry Pi
      • Troubleshooting
      • Работа с CAN FD через Python
    • PowerBoard 30A
    • SBus-HID
    • DC-DC 12V
    • USB 2.0-HUB
    • IMU BNO055
    • IMU BHI360
    • T-encoder
  • Software
    • Arduino IDE
      • Arduino IDE setup
      • Selecting MCU
      • Optional hardware preparation
      • Prepairing a sketch
      • Libraries
      • Examples
        • Все переписать нахрен
        • Работа с I2C
        • I2C detect
        • Датчик BNO055 / I2C
        • Датчик AS5047P / SPI
        • Датчик AS5600 / I2C
        • Работа с бесколлекторными двигателями
          • Simple FOC. Управление скоростью. Нахождение количества пар полюсов.
          • Simple FOC. Управление моментом
          • Чтение данных с датчика тока
        • Работа с коллекторным двигателем
          • Вращение DC мотором
          • Чтение угла по энкодеру. Управление DC мотором по углу
          • Чтение скорости вращения мотора по энкодеру
        • Работа с шаговым двигателем
          • Вращение шагового двигателя.
          • Контроль двигателя по интерфейсу SPI
    • STM32 CUBE IDE
      • Типовые настройки
      • Подсказки начинающим
        • Cube IDE для начинающих
        • Clock configuration
        • Таймеры - прерывания
        • Таймеры - ШИМ
        • Отладка программ
        • Коммуникации - FDCAN
        • Управление DC-мотором
        • Backup программы
  • Cyphal CAN
    • Cyphal CAN
    • PyCyphal
    • Yakut
    • Cyphal Arduino
      • Отправка и получение сообщений по cyphal
  • Работа с ROS
    • Установка Ubuntu, ROS и Arduino
    • ROS_LIB
    • Возможные ошибки
    • Примеры
      • Publisher. Hello World!
      • Publisher with Subscriber
      • Rotation by DC motor
  • Example projects
    • Motor-wheel upgrade
Powered by GitBook
On this page
  • Overview
  • Detailed Description
  • Multiplexing
  • Charging
  • User IO
  • Firmware Customization
  1. Hardware

PowerBoard 30A

Плата управления питанием

Overview

PowerBoard is the device to control robot's power supply system. High-power robots are usually powered by high-current Li-Ion batteries. Such batteries demand close control of voltage, charging and discharging currents, temperature. Violation of recommended operating conditions may result in increased wear at best and a fire at worst. The main purpose of PowerBoard is to control battery's voltage and current and to cut it off in case these parameters are out of permitted range (overdischarge or load short circuit, for example). in addition PowerBoard multiplexes multiple power sources, controls basic user in-out ( buttons, LEDs, buzzer), reports power supply status to on-board computer via FDCAN interface.

Main features:

  • Overdischarge protection. Inrush current limiting.

  • Protection of robot and batteries in case of short circuit.

  • Reverse polarity protection.

  • Multiplexing of 3 power sources into 2 buses: Power Bus for high-power consumers (motors etc) and PC bus for low-power (PC).

  • Charging of connected batteries independently of their voltage level.

  • Reporting of power system status to PC.

  • Control of buzzer, LEDs, buttons.

  • Kill Switch input.

Detailed Description

Multiplexing

The PowerBoard draws power from one of three parallel channels: two "main" high-current inputs ("2" и "3") and one low-current "auxiliary" channel ("1"). All three channels feature reverse polarity protection. Only one channel can be enabled at a time.

The two main channels support hot-swapping and reverse-current capability, and can be connected to an external charger via the "charger" input. These channels can be prioritized independently of the voltage levels of connected batteries. If two batteries are connected, the priority battery will be drained first, and the secondary battery will bw automatically engaged once the priority battery is depleted. The auxiliary channel is designed for low-power sources (up to 3A) to maintain system operation during main battery replacement. It does not permit reverse current flow. The auxiliary input has the highest priority and, when connected, automatically disables the main channels.

This can be split in a series of rules:

  • Only one channel can be engaged at once.

  • If auxiliary channel is powered, the main channels are disconnected. Their charging and discharging are not possible.

  • If any of the main channels is powered, it is engaged automatically (only if auxiliary is unpowered).

  • If both main channels are powered and the voltage of both is in the operation range, PowerBoard can select the channel to work with.

  • Switching between depleted and charged channel is automatic and seamless.

  • Maximum load current is determined by the selected channel. Load current cannot be split between multiple channels.

There are two output channels: "Bus" and "PC Bus".

The Bus is intended to supply high-power consumers: motors, actuators etc. It features a Kill Switch input that overrides all PowerBoard software control signals as a safety measure. The PC bus is intended to supply on-board computer. It stays powered on even if the Bus is disabled. This allows to disable robot's hardware while keeping computer on.

The Bus can only be enabled if the PC Bus is active. Disabling the PC Bus will also disable the Bus.

Charging

The Powerboard does not include a built-in charger. However, connected batteries can be charged using an external charger connected to the "Charger" input.

User IO

8 identical digital input-output channels can be used to drive LEDs and read switches. Each channel is equiped with source type DMOS and Schmitt trigger. PWM supported. Output voltage level is determined by solder jumper and can be either 5V or 12V. By default each channel is pulled up. To use IO channel as an input you have to connect normally opened switch between IO and a ground. To use IO channel as an output you have to connect load between IO channel and ground. In shutdown mode PowerBoard power consumption is close to zero. To turn the device on you need to close Enable connector or pull En pin on IO headers to ground. The device also features I2C2 interface on GH connector.

Firmware Customization

PowerBoard firmware can be split in two sections: service part and user part. The service part is handled in TIM6 and TIM 16 interrupts. The TIM6 calls ADC1 data filtration subroutine (LPF and HPF). The TIM16 invokes power FET commutation subroutine. DO NOT MAKE CHANGES TO THESE PARTS OF CODE IF YOU DON'T UNDERSTAND WHAT YOU ARE DOING. Errors in the service part of the program may result in physical damage to the board, robot and batteries in abnormal situations such as a short circuit on the bus.

Пользовательская часть программы предназначена для управления индикацией, коммуникацией с бортовым компьютером. Предпочтительно осуществлять эти задачи в функциях uavcan_setup() и uavcan_spin() из main(). Приоритеты прерываний TIM6, TIM7 и TIM16 должны быть определены следующим образом (в порядке убывания ):

  1. TIM7. Считает микросекунды с момента запуска программы.

  2. TIM6. Обновляет и фильтрует данные с ADC1.

  3. TIM16. Вызывает подпрограмму управления силовыми ключами платы.

Приоритеты пользовательских прерываний ОБЯЗАНЫ быть ниже, чем у вышеуказанных таймеров.

Last updated 1 month ago