Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2289241
  • 博文数量: 187
  • 博客积分: 1457
  • 博客等级: 上尉
  • 技术积分: 2423
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-13 09:41
个人简介

如需要绘制PCB,设计电路可以和我联系。sunhenu@163.com.

文章分类

全部博文(187)

文章存档

2017年(2)

2016年(2)

2015年(7)

2014年(13)

2013年(80)

2012年(83)

分类: LINUX

2012-11-16 15:06:14

HCTL-2032是Avago公司生产的CMOS专用集成电路,集噪声滤波、正交解码、可逆计数、总线接口于一体,可大大改善测量系统的性能。HCTL-2032可接收两路(X轴、Y轴)正交编码脉冲,并且增加了接收基准信号,时钟频率达33 MHz,不仅使电路设计简单,(电路是简单,只是资料太少,遇到问题比较麻烦)而且提高了测量精度和处理数据的速度。说明白点就是,它可以检测AB相相位相差为90度的波形,并计数,图二是光栅输出信号时正交信号,很多时候就使用这个芯片去检测,光栅正反向的运动和运动距离。
电路连接如下图所示,各个管脚在datasheet中都有具体说明,该怎么用很简单,我不多说了,下面的电路是单独使用X没有使用Y。这里特别说明一下第17脚CHIx,如果你的光栅有频率校验信号输出,可以接到17脚。如果没有,就把17脚接地了,否则计数不稳定,我就在这里吃了很大的亏。
这个芯片的资料不多,我把电路图和源程序都放在这里方便一些使用该芯片的人。

                 图一
这是相位差为90度的波形,我用示波器截图的,还是荧光屏的示波器,很差劲。呵呵。

这个图片主要说明了它的主要控制信号,英文很简单,一看就明白了,我们接下来写程序也是要控制这几个信号就好了。
下面看看程序 ,
/*单片机ATMEGA16 晶振8MHZ,软件编译环境IAR5.11B8*/
#define DataPort PINC          //PORTA?aêy?Y???ú
#define EN1_1 PORTA_Bit0=1    
#define EN1_0 PORTA_Bit0=0 
#define EN2_1 PORTA_Bit1=1   
#define EN2_0 PORTA_Bit1=0   
#define SEL1_1 PORTA_Bit2=1   
#define SEL1_0 PORTA_Bit2=0  
#define SEL2_1 PORTA_Bit3=1   
#define SEL2_0 PORTA_Bit3=0  
#define RESETX_1 PORTA_Bit5=1   
#define RESETX_0 PORTA_Bit5=0  
#define X_1 PORTA_Bit6=1   
#define Y_0 PORTA_Bit6=0 
#define EN_1 PORTA_Bit7=1   
#define EN_0 PORTA_Bit7=0 
void hctl2032init()
{
   
    RESETX_1;
    Delay_nms(5);  
    RESETX_0;
    Delay_nms(5);  
    RESETX_1;
    EN1_1;
    EN2_1;
    Y_0;
    EN_1;
    
}

void hctl2032data()
{
   
    EN_0;
    SEL1_0;
    SEL2_1;
    Delay_nms(5);     
    table6[0]=DataPort;
    Delay_nms(10);
    SEL1_1;
    SEL2_1;
    Delay_nms(5);  
    table6[1]=DataPort;
   Delay_nms(10);
    SEL1_0;
    SEL2_0;
    Delay_nms(5);  
    table6[2]=DataPort;
    Delay_nms(10);
    SEL1_1;
    SEL2_0;
    Delay_nms(5);  
    table6[3]=DataPort; 
    Delay_nms(10);  
    EN_1;   
   
   
}

这是2个子函数,我试验过没有问题,我发送1001个AB信号给HCTL2032,通过串口从单片机中读出数据如下

最后的计数是0x03EA,十进制是1002,这是,刚刚开始发送脉冲的时候,HCTL2032已经加1了,我们不用管它,到时候可以修正一下,在单片机软件中。
附件是它的datasheet。

后来,我将这个部分电路做成了一个模块,ATMEGA16,采集信号,12864液晶显示和串口通信。主要功能是这些。下面看看板子实物图。




板子焊好以后基本上没有问题,就是HCTL2032-DB0芯片的最大计数是4095,然后又从0开始计数,也就是只有12bit计数。这是不对的。原因很简单HCTL2032-DB0是烂货,买了2次,
都给我发的货是HCTL2032-DB0,我要求的是HCTL2032-SC,后来买到了HCTL2032-SC,换上去就好了。不知道HCTL2032-DB0芯片是从哪里来的,因为官方网站只用HCTL2032-SC,
这样后缀的芯片,没有DB0的。估计是假货。上面一张图片可以看出HCTL2032-SC旁边有很多松香,那是多次更换芯片留下来的,估计换了6个芯片吧。
这个帖子提到的问题,估计是使用了DB0后缀的芯片。
阅读(4440) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

dhlupc2014-08-09 12:02:02

你这个板子能卖吗?我想拿来试试

dhlupc2014-08-09 12:02:02

你这个板子能卖吗?我想拿来试试