MPQ6533驱动程序
MPQ6533驱动
驱动芯片主要有驱动作用,将输入的弱电信号放大成足够强,用于外部设备的强电信号。需要安培级的驱动电流一般是驱动电机或者电力电子设备等,根据用户产品具体用途才可能选择具体的芯片,比如耐压,稳态/暂态性能等等要求。
MPQ6533 是一款专为汽车直流电机驱动器应用设计的栅极驱动器 IC。它可以驱动6个 N 沟道功率 MOSFET,以驱动直流电机或其他负载。在电机控制中,MPQ6533用作预驱芯片与主芯片连接。
MPQ的管脚功能如图:
其中:
- 电源部分掠过;
- ENA-ENC为输入信号使能;
- INA-INC为输入信号;
- 7-17的管脚为输出;
- CSO电流采样
- SDO-nSCS为SPI的四个管脚
- nFAULT为故障检测,故障时拉低
- nSLEEP为休眠,拉低休眠,上拉使能
要完成MPQ的驱动函数编写,需要明白这块芯片的作用机理:
- 该芯片与主芯片之间通过SPI进行通信,也正是通过SPI,对该预驱芯片进行初始化
- MPQ6533作为驱动芯片,接收来自MCU的PWM信号,输出驱动信号
初始化部分:
初始化参数主要为:
OUT 地址为 0x00
CTRLA 地址为0x01
CTRLB 地址为0x02
CTRLC 地址为0x03
CTRLD 地址为0x04
对应的实际参数为:
有了这些参数和参数的寄存器地址,我们就可以编写初始化函数框架如下:
#define DATA_LEVEL_1 (0)
/*
....
*/
#define DATA_LEVEL_N (0)
enum data
{
data_level1 = 0,
datalevel2,
/*
......
*/
}
typedef struct
{
union
{
uint16 OUT;
struct
{
uint16 BENA : 1;
uint16 BINA : 1;
uint16 BENB : 1;
uint16 BINB : 1;
uint16 BENC : 1;
uint16 BINC : 1;
uint16 OLS : 3;
uint16 OUT : 3;
}OUT_S;
};
union
{
uint16 CTRLA;
struct
{
uint16 ASR : 2;
uint16 ADT : 3;
uint16 ABT : 3;
uint16 AGN : 3;
uint16 ENSC :1;
}CTRLA_S;
/*
.......
*/
};
}config_type;
void predriver(void)
{
config_type prefriver_conf;
prefriver_conf.OUT_S.OUT = DATA_LEVEL_1;
enum data pre_data = data_level1;
prefriver_conf.OUT_S.OLS = pre_data;
/*
......
*/
void PreDrive_Hw_Init(PreDrive_Config);
}
void PreDrive_Hw_Init(config_type config)
{
SPI_WRITE(0x00,config.OUT);//SPI_WRITE
/*
......
*/
}
要正常使用起来,还需要将nSLEEP拉高
Dio_WriteChannel(nSLEEP,STD_HIGH);
输入信号的各使能脚拉高
Dio_WriteChannel(ENC,STD_HIGH);
Dio_WriteChannel(ENB,STD_HIGH);
Dio_WriteChannel(ENA,STD_HIGH);
nFAULT处理
当死区时间不足,电桥导通时,nFAULT输出低,我们需要及时关闭mos管,不然很可能烧毁mos,关闭mos的动作必须迅速,这只脚连接到主芯片的ICU通道,下降沿检测,使能中断,即nFAULT拉低时,马上进入中断,在中断里关闭mos。
MPQ6533驱动程序相关推荐
- OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?
OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)? 图形硬件供应商,需要为显示适配器编,编写用户模式显示驱动程序.用户模式显示驱动程序,是由Microsoft Direct3D运行时加 ...
- 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...
- 嵌入式Linux设备驱动程序:用户空间中的设备驱动程序
嵌入式Linux设备驱动程序:用户空间中的设备驱动程序 Embedded Linux device drivers: Device drivers in user space Interfacing ...
- 嵌入式Linux设备驱动程序:发现硬件配置
嵌入式Linux设备驱动程序:发现硬件配置 Embedded Linux device drivers: Discovering the hardware configuration Interfac ...
- 嵌入式Linux设备驱动程序:编写内核设备驱动程序
嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...
- 现代传感器的接口:中断驱动的ADC驱动程序
现代传感器的接口:中断驱动的ADC驱动程序 Interfacing with modern sensors: Interrupt driven ADC drivers 研究了如何编写一个阻塞的模数转换 ...
- 与现代传感器的接口:轮询ADC驱动程序
与现代传感器的接口:轮询ADC驱动程序 Interfacing with modern sensors: Polled ADC drivers 我们研究了在现代嵌入式应用程序中,开发人员应该如何创建一 ...
- java加载驱动没有异常显示_java – Tomcat没有加载MSSQL驱动程序
我正在尝试将我的webapp部署到Tomcat容器,但是我得到一个例外,说明找不到我的数据库的驱动程序.在本地我测试Jetty上的应用程序,驱动程序jar由Maven提供.我将驱动程序jar复制到To ...
- Linux驱动程序编写
工作需要写了我们公司一块网卡的Linux驱动程序.经历一个从无到有的过程,深感技术交流的重要.Linux作为挑战微 软垄断的强有力武器,日益受到大家的喜爱.真希望她能在中国迅速成长.把程序文档贴出来, ...
最新文章
- 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern)
- 20线程测试cpu性能软件,CPU常用跑分软件 你知道那些?
- 纯前端H5小应用_localStorage存储
- gcc选项-g与-rdynamic的异同
- numpy条件筛选的坑
- 跨域加了header也解决不了?
- 【Java1】jdk安装/idea安装,关键字/数据类型/标识符,运算符,/包/类,运算符,if/switch,for/while
- 【牛客 - 21302】被3整除的子序列(线性dp)
- python教材答案第六章_python第六章{输入和输出}
- 财报上新不久的Mobvista,还内藏何种“惊艳”?
- 函数定义的规范-电子书包
- Spring 依赖注入(集合)/util命名空间/自动注入
- spring Boot 2.1.5 (1)---安装环境
- 备战数学建模10-主成分分析模型与因子分析模型
- 车载以太网网络中的时间同步
- buck dcm占空比计算_Buck知识大总结:模态分析,电感计算,EMI分析等(转)
- java无法远程读写HDFS系统解决方案
- 手机奥维地图在测量中的应用
- CenterNet( Keypoint Triplets for Object Detection) 学习笔记
- bzoj-1227 虔诚的墓主人
热门文章
- 计算机网络辅助英语写作,计算机网络及课件辅助大学英语写作教学的研究
- Reinforcement Learning 的核心基础概念及实现
- lua和python谁更适用于嵌入MMORPG?
- 我的世界java版怎么输入不了汉字_我的世界中国版文字消失的6种解决办法
- 删除u盘插拔记录linux,电脑u盘插拔记录_电脑u盘插拔时间记录
- 抹不掉的消费数字足迹!那些悄然消失的花呗额度……
- python列表增加行_python怎么在数组添加一行?
- [小说]魔王冢(52)赵四爷
- 【流媒体】ffmpeg小结
- 微信JS SDK开发 共享问题小结