HF Interface Wrapper 0.1.0-dev
Embedded C++ hardware abstraction layer
Loading...
Searching...
No Matches
EspSpi.cpp File Reference

Implementation of MCU-integrated SPI controller for ESP32C6 with ESP-IDF v5.5+ features. More...

#include "EspSpi.h"
#include "utils/memory_utils.h"
#include <cstring>
#include "esp_err.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "soc/spi_reg.h"
Include dependency graph for EspSpi.cpp:

Variables

static const char * TAG = "EspSpi"
 

Detailed Description

Implementation of MCU-integrated SPI controller for ESP32C6 with ESP-IDF v5.5+ features.

This file provides the implementation for SPI bus communication using the ESP32C6's built-in SPI peripheral with full ESP-IDF v5.5+ capabilities. The implementation supports:

  • Full-duplex and half-duplex communication modes
  • DMA-accelerated transfers for high-performance applications
  • Multiple clock sources (APB, XTAL) for power optimization
  • IOMUX pins for maximum performance (up to 80MHz)
  • Advanced timing control with input delay compensation
  • Transaction queuing with interrupt and polling modes
  • Bus acquisition for exclusive device access
  • Comprehensive error handling and validation
  • Thread-safe operations with RTOS mutex protection
  • Small data optimization for transfers <= 32 bits
  • Proper BaseSpi class integration for portability

The implementation closely follows ESP-IDF v5.5 SPI Master driver documentation: https://docs.espressif.com/projects/esp-idf/en/release-v5.5/esp32c6/api-reference/peripherals/spi_master.html

Author
Nebiyu Tadesse
Date
2025
Note
Fully compliant with ESP-IDF v5.5 SPI Master driver API
Optimized for ESP32C6 hardware capabilities
Thread-safe for multi-device SPI bus management

Variable Documentation

◆ TAG

const char* TAG = "EspSpi"
static