1. SPI 简介
SPI (Serial Peripheral interface)串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义的。
SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。
SPI的四根线为SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)。
可以参考 drivers/spi 目录。
spi_device的板信息用spi_board_info结构体来描述:
struct spi_board_info {
char modalias[SPI_NAME_SIZE];
const void *platform_data;
void *controller_data;
int irq;
u32 max_speed_hz;
u16 bus_num;
u16 chip_select;
u8 mode;
};
记录了SPI外设使用的主机控制器序号、片选信号、数据比特率、SPI传输方式等
static struct mcp251x_platform_data mcp251x_info = {
.oscillator_frequency = 20*1000*1000, /*外部晶振,结合手册及具体硬件设置*/
.board_specific_setup = NULL,
.power_enable = NULL,
.transceiver_enable = NULL,
};
CS用gpio替换
static struct pxa2xx_spi_chip qrk_ffrd_spi_cs_mcp251x = {
.gpio_cs = 9,/*GPIO号*/
};
{
.modalias = "mcp2515",
.platform_data = &mcp251x_info,
.mode = SPI_MODE_0,
.irq = 58,
.max_speed_hz = 2*1000*1000, /* max sample rate at 3V */
.bus_num = 0,
.chip_select = 1,
SPI 学习总结
最新推荐文章于 2024-06-06 09:03:36 发布
本文介绍了SPI(Serial Peripheral Interface)串行外围设备接口,包括SPI的基本概念、引脚功能、数据传输方式以及SPI的驱动架构。SPI是一种高速、全双工、同步的通信总线,常用于EEPROM、FLASH、AD转换器等设备之间。SPI驱动架构分为SPI核心、控制器驱动和设备驱动三层,详细解析了各层次的功能和数据结构。
摘要由CSDN通过智能技术生成