LPC2478(16)drv8424

1、开发环境

LPC-2478STK+Keil+JINK

2、引脚配置和功能

其中相关的是

  1. AOUT1/AOUT2/BOUT1/BOUT2->A/B相输出
  2. DIR->方向输入,逻辑电平设置步进的方向;内部下拉电阻
  3. ENABLE->逻辑低电平将禁用器件输出;逻辑高电平则会启用
  4. M0/M1->电机细分
  5. DECAY0/1->衰减模式
  6. STEP->步进输入,上升沿使分度器前进一步
  7. nFAULT->故障指示
  8. nSLEEP->休眠模式输入

2.1、细分

2.2、衰减模式

2.3、功能模式

3、典型应用

4、功能实现

4.1、功能介绍

通过定时器2控制电机运动,以100khz的频率前进,定时器匹配后翻转电平,两个周期实现电机走一步,因为电机上升沿前进

4.2、引脚连接

  1. nSLEEP->3.3V
  2. ENABLE->3.3V
  3. OUT1/2/3/4->电机A/B相
  4. nFAULT->接地
  5. DECAY0/1->接地
  6. M0->3.3V  M1->高阻态 256细分
  7. DIR->LPC2478的P0[6]
  8. STEP->LPC2478的P0[9]

4.3、代码

#include <LPC24xx.H>

#define drv8424_step_pin			9    	// P0[9]
#define drv8424_dir_pin				7    	// P0[7]

void IRQ_Timer2(void)
{
	T2IR        = 0xFF; /* 清除中断标志 */	
	VICVectAddr = 0x00; /* 通知VIC中断处理结束 */
}

void timer_mat_init(void)
{
  PINSEL0 &= ~(0x03 << (drv8424_step_pin*2));  
  PINSEL0 |= (0x03 << (drv8424_step_pin*2));  
	PCONP  |= 1 << 22; 
	T2PR    = 0; /* 分频 */
	T2MCR   = 0x03 << 9; /* 并且匹配时产生中断 */
	T2EMR   = 0x03 << 10; /* T2MR3匹配后MAT2.3输出翻转 */
	T2MR3   = 12000000/100000; /* 100khz输出 */
	T2TCR   = 0x03; 
	VICIntSelect  = 0x00; /* 所有的中断连接IRQ中断 */
	VICVectPriority26  = 0x00; /* 设置中断优先级最高 */
	VICVectAddr26 = (unsigned int)IRQ_Timer2; /* 设置中断服务程序地址 */
	VICIntEnable  = 1 << 26; /* 使能定时器 */
	T2TCR   = 0x01;	
}

int main()
{
	SCS |= 0x01;

  PINSEL0 &= ~(0x03 << (drv8424_dir_pin*2));  
  FIO0DIR |= 0x01 << drv8424_dir_pin;  
	FIO0CLR |= 0x01 << drv8424_dir_pin;
	
	timer_mat_init();	
	
	for(;;)	
	{	
		
	}	
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值