泰凌微TLSR825X开发四 硬件SPI

本文主要讲解TLSR8258硬件SPI主机模式的使用。介绍了其功能管脚需成对匹配,阐述了寄存器组,如SPIDAT、SPICT等的作用。还给出代码实例,包含接口API,如spi_master_init等,以及应用例程,包括初始化和读写测试程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

TLSR8258硬件SPI支持主机与从机模式,寄存器仅支持一组SPI,本章主要讲解下MSPI主机的使用,MSPI不支持DMA,如有异议,欢迎留言指正

功能管脚
  • 复用引脚必须成对匹配
MOSIMISOSCLKCSN
GPIO_PA2GPIO_PA3GPIO_PA4GPIO_PD6
GPIO_PB7GPIO_PB6GPIO_PD7GPIO_PD2
寄存器组
  • SPIDAT [0x08]:SPI数据寄存器,进行读取、写入
  • SPICT [0x09]:SPI控制寄存器,按位依次为
    • [bit0]:主机模式下控制CSN输出
    • [bit1]:使能主机模式
    • [bit2]:禁用数据输出
    • [bit3]:1 - 读命令 2 - 写命令
    • [bit4]:地址自增
    • [bit5]:共享模式
    • [bit6]:忙状态
  • SPISP [0x0A]:SPI主机时钟配置
    • SPI Clock = system clock / ((reg0x0a + 1)*2)
  • SPIMODE [0x0B]:SPI工作模式配置,设置极性与相位
代码实例

驱动代码可以参考spi.c文件

接口API
  • spi_master_init(unsigned char DivClock, SPI_ModeTypeDef Mode):主机模式下配置时钟和工作模式
  • spi_master_gpio_set(SPI_GPIO_GroupTypeDef PinGrp):选择复用管脚
  • spi_write(unsigned char *Cmd, int CmdLen, unsigned char *Data, int DataLen, GPIO_PinTypeDef CSPin):指定寄存器写入数据,先写入命令后写入数据
  • spi_read(unsigned char *Cmd, int CmdLen, unsigned char *Data, int DataLen, GPIO_PinTypeDef CSPin):指定寄存器读取数据,先写入命令后读取数据
应用例程

例程代码参考app_spi_master.c文件

  • 初始化spi主机模式
void spi_master_test_init(void)
{
    //spi clock 500K, only master need set i2c clock
    spi_master_init((unsigned char)(CLOCK_SYS_CLOCK_HZ/(2*500000)-1),SPI_MODE0); //主机模式 500K主频 
    spi_master_gpio_set(SPI_GPIO_GROUP_A2A3A4D6);    //选择spi管脚映射
}
  • spi master读写测试程序
#define   SPI_CS_PIN                    GPIO_PD6
unsigned char regAddr_WriteCMD = 0x01; //从机寄存器写地址
unsigned char regAddr_ReadCMD  = 0x11; //从机寄存器读地址

unsigned char spi_master_tx_buff[2] = {0x11, 0x22};//写入数据缓存
unsigned char spi_master_rx_buff[2];//读取数据缓存

void spi_master_mainloop(void)
{   
	spi_write(&regAddr_WriteCMD, 1, (unsigned char *)spi_master_tx_buff, sizeof(spi_master_tx_buff), SPI_CS_PIN);//往寄存器0x01写入两个字节
	spi_read(&regAddr_ReadCMD,  1, (unsigned char *)spi_master_rx_buff, sizeof(spi_master_rx_buff), SPI_CS_PIN);//从寄存器0x11读取两个字节数据
}
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值