VBCores Документация
СайтGitHub
  • VBCores
  • Hardware
    • VBCore VB32G4
    • VB STM32 программатор
    • BLDC драйвер 30A
    • DC драйвер 15A
    • Stepper драйвер 10A
    • CAN-FD - Raspberry PI
      • Настройка CAN на RPI
      • Часто возникаемые ошибки при работе с CAN/CAN FD
      • Работа с CAN FD через Python
    • Power board 30A
    • SBus-HID
    • DC-DC преобразователь
    • Ethernet - CAN-FD
    • USB-HUB
    • IMU BNO055
    • IMU BHI360
    • Т-Энкодер
  • Настройка ПО
    • Arduino IDE
      • Подготовка модуля VBCore
      • Установка среды программирования на Windows
      • Установка среды программирования на Ubuntu
        • Возможные ошибки в Ubuntu при работе с Arduino
      • Выбор платы в Arduino IDE
      • Установка базовой библиотеки
      • Структура ПО для Arduino
      • Примеры
        • Работа с CAN и CAN FD на Arduino
        • Работа с 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
  • Работа с научным ПО
    • TCP Server
    • LabView
    • Matlab
  • Инструкции
    • Стенд управления двигателями
    • Переделка датчика мотор-колеса
    • Стенд мотор-колеса
    • iPower Motor
    • AS5047p OEM
  • Практические занятия
    • Коллекторный двигатель
      • Устройство коллекторного двигателя
  • RPI Display
Powered by GitBook
On this page
  1. Hardware

Power board 30A

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

PowerBoard предназначена для управления бортовой системой питания робота. Для питания мощных роботов применяются соответствующие источники питания - высокотоковые литий-ионные аккумуляторы. Эти батареи боятся слишком глубокого разряда, превышения зарядного и разрядного токов. Несоблюдение правил эксплуатации в лучшем случае приведет к их быстрому износу, в худшем - к пожару. Базовая функция платы управления питанием - отслеживание состояния батареи (напряжение, ток, температура) и отключение нагрузки (робота) при превышении предельных параметров батареи (например, полный разряд). Помимо этого плата питания может выполнять побочные функции - информирование бортового компьютера о состоянии батареи, управление пользовательскими кнопками, зуммером, светодиодами и т.д.

Основные функции VB PowerBoard :

  • Защита батарей от пере-разряда и ограничение пускового тока.

  • Защита робота и батарей при коротком замыкании.

  • Защита робота при включении батарей в обратной полярности.

  • Мультиплексирование трех независимых источников питания в две силовые шины - шину питания компьютера и шину питания силовых потребителей.

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

  • Отслеживание состояния системы питания и его передача по шине FDCAN.

  • Контроль базовой индикации робота - зуммера, светодиодов, пользовательских кнопок.

  • Аварийное отключение робота при нажатии Большой Красной Кнопки.

Особенности

Мультиплексирование

PowerBoard обладает тремя входными каналами питания: двумя управляемыми ("2" и "3") и одним неуправляемым ("1"). Управляемые каналы выдерживают постоянный ток до 30А, неуправляемый - до 3А. Оба управляемых канала обладают двусторонней проводимостью и пропускают ток в свою батарею, если напряжение на шине питания превышает напряжение батареи (например, если подключенный к роботу мотор вращается под действием внешних сил). Все три канала могут быть одновременно подключены к трем разным источникам питания, при этом верны следующие утверждения:

  • Силовые шины могут быть одновременно подключены только к одному из каналов.

  • Если на неуправляемом канале есть напряжение, управляемые каналы отключаются автоматически. При этом их разрядка и зарядка невозможны.

  • Если напряжение есть только на одном из каналов, он подключается автоматически.

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

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

Ток разных каналов не суммируется - максимальный доступный ток определяется возможностями выбранного канала.

Пользовательский ввод-вывод

Включение PowerBoard осуществляется замыканием контакта Enable на GND. Если коннектор не замкнут, общее потребление платы ото всех источников примерно равно нулю. Замкнутый коннектор Emergency отключает силовую шину робота на аппаратном уровне вне зависимости от состояния программы платы. Предназначен для подключения Большой Красной Кнопки. PowerBoard оборудован двумя шестипиновыми разъемами для подключения RGB кнопок и Зумера. Выходы обладают общим анодом, напряжение на котором составляет 5В либо 12В в зависимости от состояния перемычки на плате.

Катоды подключаются к земле через ULN2003, которая управляется пинами PC6, PC7, PC8, PC9 (подключены к каналам TIM3). Входы связаны с пинами PB0, PB1, PB2, PB10. Если встроенных средств индикации недостаточно, можно использовать интегрированный порт расширения, связанный с I2C2 для коммуникации с другими платами.

Модификация прошивки

Программа для PowerBoard делится на две части: сервисную и пользовательскую. Сервисная часть обрабатывается в прерываниях таймеров TIM6 и TIM16. Первый обслуживает подпрограмму фильтрации данных ADC1. Второй вызывает подпрограмму коммутации силовых ключей на плате. НЕ НУЖНО ВНОСИТЬ ИЗМЕНЕНИЯ В ЭТИ УЧАСТКИ КОДА ЕСЛИ ВЫ НЕ ПОНИМАЕТЕ ЧТО ДЕЛАЕТЕ! Нарушение работы сервисной части программы может привести к физическому повреждению платы, робота и батарей при нештатных ситуациях вроде короткого замыкания на шине.

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

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

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

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

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

PreviousРабота с CAN FD через PythonNextSBus-HID

Last updated 1 month ago