TLE9104四路SPI驱动芯片使用教程

一、说明

此芯片为思路底边驱动新片,使用SPI总线配置。

二、SPI驱动配置

1、端口配置:如下,本文使用的是S32K144芯片开发。

#define TLE_SCK(x)  (x?(PTE->PSOR |= 1<<PTE0):(PTE->PCOR |= 1<<PTE0))
#define TLE_MOSI(x) (x?(PTB->PSOR |= 1<<PTB4):(PTB->PCOR |= 1<<PTB4))
#define TLE_CS(x)   (x?(PTB->PSOR |= 1<<PTB5):(PTB->PCOR |= 1<<PTB5))
#define TLE_MISO()  (PTD->PDIR & (1<<PTD16))
#define TLE_RST(x)  (x?(PTC->PSOR |= 1<<PTC11):(PTC->PCOR |= 1<<PTC11))

2、SPI程序

SPI是全双工语言,读写一体。

uint16_t SPI_WriteReadValue(uint16_t value)
{
	unsigned char i=0;
	uint16_t Result=0;
	TLE_SCK(0);
	Delay_ns(8);
	for(i = 0;i<16;i++)
	{
		TLE_SCK(1);
		Delay_ns(8);
		if(value & 0x8000) TLE_MOSI(1);
		else TLE_MOSI(0);
		value <<= 1;

		Result <<=1;
		if(TLE_MISO()) Result |= 0x0001;
		else Result &=0xfffe;
		TLE_SCK(0);
		Delay_ns(8);
	}
	TLE_SCK(0);
	return Result;
}

三、TLE9104驱动

说明:CS需要参与命令时序,一次CS一次命令,详见驱动程序。

/*
 * TLE9104读写命令
 * 说明:本次写的命令,到下一次命令才会返回有效值,
 * 命令回复如下格式:
 * 命令:cmd1   cmd2    cmd3    ...
 * 回馈:ICID   back1   bcak2   ...
 */

uint16_t TLE9104SN_WriteReadCmd(uint16_t value)
{
	uint16_t temp=0;
	TLE_CS(0);     					   /*CS_lead time 250ns*/
	Delay_ns(40);   				   /*40*14ns = 560ns*/
	temp = SPI_WriteReadValue(value);  /*写命令*/
	Delay_ns(40);   				   /*560ns*/
	TLE_CS(1);      				   /*CS_td >1us*/
	Delay_us(50);  				  	   /*Tcsn(td) 延迟到max,后续再调整*/

	return temp;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值