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` для неблокирующего опроса).