From 2009035bb47c67d6495690ac6bab57ebf9ee0e82 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Fri, 26 Jun 2026 16:44:28 -0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20docs/DS=5FSN65HVD230.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/DS_SN65HVD230.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/DS_SN65HVD230.md diff --git a/docs/DS_SN65HVD230.md b/docs/DS_SN65HVD230.md new file mode 100644 index 0000000..d523947 --- /dev/null +++ b/docs/DS_SN65HVD230.md @@ -0,0 +1,25 @@ +# Драйвер трансивера SN65HVD230 для STM32G0 + +Библиотека для работы с CAN-трансивером через аппаратный модуль **FDCAN** микроконтроллеров семейства **STM32G0** в режиме классического CAN. Работа с пином `Rs` исключена, модуль всегда активен на максимальной скорости. + +## 📌 Особенности +* Оптимизировано строго под архитектуру модуля FDCAN в STM32G0. +* Полное отсутствие динамического выделения памяти (`malloc`). +* Контроль таймаутов отправки и приема для предотвращения зависания шины. + +## 🔌 Схема подключения + +| Контакт модуля MCU-230 | Контакт STM32G0 | Описание | +| :--- | :--- | :--- | +| **3V3** | 3.3V | Питание модуля | +| **GND** | GND | Общая земля | +| **CTX** | FDCAN1_TX | Линия передачи данных FDCAN | +| **CRX** | FDCAN1_RX | Линия приема данных FDCAN | + +⚠️ **Важно:** На плате MCU-230 уже распаян терминатор 120 Ом. Если узел подключается к готовой сети, этот резистор нужно выпаять. + +## 📋 Справочник API функций +* `HAL_StatusTypeDef SN65HVD230_Init(SN65HVD230_t *node, FDCAN_HandleTypeDef *hfdcan_handle)` — Привязка дескриптора к аппаратному хэндлеру. +* `HAL_StatusTypeDef SN65HVD230_Start(SN65HVD230_t *node)` — Активация прерываний FIFO 0 и запуск FDCAN шины. +* `HAL_StatusTypeDef SN65HVD230_Transmit(SN65HVD230_t *node, CAN_Message_t *msg, uint32_t timeout_ms)` — Отправка классического CAN-кадра. +* `HAL_StatusTypeDef SN65HVD230_Receive(SN65HVD230_t *node, CAN_Message_t *msg, uint32_t timeout_ms)` — Чтение кадра из FIFO 0 (передайте `timeout_ms = 0` для неблокирующего опроса).