如果是2009 NEC电子杯全国大学生电子设计大赛中的B题,MMC-1不需要编译环境,可以直接通过串口与其他单片机通信来实现控制,请您参考NEC电子公司专用芯片说明(B题使用)
下载地址:http://www.cn.necel.com/university/cn/questionsdownload.html?src=hp1
如何确认MMC-1已经正常工作?
上电复位以后芯片处于初始化状态,电机输出引脚(包括CH1STA1、CH1STB1、CH1STA2/CH1DCPWM、CH1STB2/CH1DCDIR、CH2STA1、CH2STB1、CH2STA2/CH2DCPWM、CH2STB2/CH2DCDIR、CH3STA1、CH3STB1、CH3STA2/CH3DCPWM、CH3STB2/CH3DCDIR共12个引脚)固定输出位低电平,到位输出引脚(包括CH1INT、CH2INT、CH3INT)固定输出为高电平,复位引脚为高电平,电流保护引脚(包括CH1SEN、CH2SEN、CH3SEN),通讯模式选择引脚(UART/SPI),睡眠引脚(SLEEP),串行数据输入引脚(RXD/SI)均为输入引脚。串行数据输出引脚(TXD/SO)在不同状态下的输出电平不同,SPI模式下,正常工作时为低电平,SLEEP下为高电平,UART模式下均为高电平。可以通过判断个引脚的电平状态来确定芯片是否已经正常工作。
故障现象及排除
电机不转
1. 焊接不良,包括芯片和板子本身,或者板子和用户电路的连接,请检查焊接是否正确,是否存在虚焊或者短路问题。比如RESET或SLEEP线接地可能是芯片处于复位或睡眠状态而无法正常工作。
2. 通讯失败,请检查上位机的设置是否正常,首先通讯模式引脚UART/SPI是否设置正确,悬空或设置不当可能会引起通讯失败。若串口通讯速率为9600bps,奇校验,1位停止位,低位在前,可用示波器察看波形,或者用PC机验证。若SPI模式则速率在500Hz~100KHz之间,并且时序图满足手册要求,高位在前。
3. 接线不正确。对于步进电机来说CHnSTA1和CHnSTA2为一相,CHnSTB1和CHnSTB2为另一相,接线顺序不对可能会引起电机不转。NC和REGC引脚为MMC-1内部使用,不允许用户使用,使用时请悬空。
4. CHnSEN(n=1~3)引脚悬空或者接地电阻过大。该引脚用于设定最大电流,不用时应接地,不能悬空,但如果该电阻过大,即允许电流太小,也可能引起电机不转。
5. 参数设置不当。请参照手册设置正确的参数,注意电机类型选择是否正确,是否启动运行,频率占空比是否已经设置,过快的频率可能会超过步进电机的启动频率使电机不能启动,过小的占空比可也能使直流电机不能启动。
6. 芯片已损坏。由于包装、运输或客户不当使用的原因导致芯片损坏,请更换芯片后再试。
7. 该通道损坏或者击穿。可以更换到其它通道使用。
电机抖动,或电机失步
1. 焊接不良,包括芯片和板子本身,或者板子和用户电路的连接,请检查焊接是否正确,是否存在虚焊或者短路问题。
2. 接线不正确。对于步进电机来说CHnSTA1和CHnSTA2为一相,CHnSTB1和CHnSTB2为另一相,接线顺序不对可能会引起电机抖动。NC和REGC引脚为MMC-1内部使用,不允许用户使用,使用时请悬空。
3. CHnSEN(n=1~3)引脚悬空或者接地电阻过大。该引脚用于设定最大电流,不用时应接地,不能悬空,但如果该电阻过大,即允许电流太小,也可能引起电机失步或抖动。
4. 参数设置不当。过快的频率可能会超过步进电机的启动频率使电机失步或抖动。
5. 该通道的某个引脚损坏或者击穿。可以更换到其它通道使用。
限流功能失效
1. CHnSEN(n=1~3)和地短路。这可能由接线或焊接问题引起,请检查焊接或接线是否有问题。
2. CHnSEN(n=1~3)引脚损坏。请更换到其它通道,或者更换新的芯片。
到位信号没有输出
1. CHnINT(n=1~3)引脚连接有问题。可能由焊接不良或者外部连接不良造成,请检查焊接或电路连接。
2. CHnINT(n=1~3)引脚和电源或者地线短路,这可能由接线或焊接问题引起,请检查焊接或接线是否有问题。
3. CHnINT(n=1~3)引脚损坏。请更换到其它通道,或者更换新的芯片。
不能读寄存器的值
1. 发送命令格式不对。请参照手册设置正确的通讯方式。
2. TXD/SO引脚连接有问题。可能由焊接不良或者外部连接不良造成,请检查焊接或电路连接。
3. TXD/SO引脚和电源或者地线短路,这可能由接线或焊接问题引起,请检查焊接或接线是否有问题。
4. TXD/SO引脚损坏。请更换新的芯片。
不能进入休眠模式
1. SLEEP引脚连接有问题。可能由焊接不良或者外部连接不良造成,请检查焊接或电路连接。
2. SLEEP引脚和电源线短路,这可能由接线或焊接问题引起,请检查焊接或接线是否有问题。
3. SLEEP引脚损坏。请更换新的芯片。
休眠以后无法正常工作
1. 唤醒以后需要等待10us以上的系统恢复时间才能发送新的命令,过短的时间可能会引起通讯故障。
2. SLEEP引脚连接有问题。可能由焊接不良或者外部连接不良造成,请检查焊接或电路连接。
通讯故障
1. 通讯模式选择和上位机使用的不一致。请设置正确的通讯模式。
2. 通讯参数设置不当,请参照手册设置正确的参数。
3. UART通讯始终失败。如果确认已经完全按照手册要求设置了通讯模式,波特率为9600bps,奇校验,一位停止位,低字节在前,仍无法通讯成功。可能由于温度影响可能而引起内部时钟有一定的偏差,可尝试在一定范围内(±3%)调整波特率,再重新连接。
4. 两字节之间的时间间隔不当。同一帧数据的命令字节和数据字节之间的间隔太短或者太长,两帧之间的间隔太短都有能引起通讯故障,请参照手册设置正确的参数。
5. 通讯线TXD/SO、RXD/SI、SCK引脚连接有问题。可能由焊接不良或者外部连接不良造成,请检查焊接或电路连接。
6. 通讯线TXD/SO、RXD/SI、SCK引脚损坏。请更换新的芯片。
芯片发热
1. 可能是芯片击穿,电源和地线短路,或者某IO口和电源或者地线短路。请更换新的芯片。
2. 可能是芯片引脚有短路现象。可能由焊接不良或者外部连接不良造成,请检查焊接或电路连接。
引脚虚焊或者短路可能引起的问题
电机输出通道(包括CH1STA1、CH1STB1、CH1STA2/CH1DCPWM、CH1STB2/CH1DCDIR、CH2STA1、CH2STB1、CH2STA2/CH2DCPWM、CH2STB2/CH2DCDIR、CH3STA1、CH3STB1、CH3STA2/CH3DCPWM、CH3STB2/CH3DCDIR共12个引脚)
1. 如果该类引脚如果虚焊或者接触不良可能会引起电机不转,抖动,失步等现象。
2. 如果该类引脚如果和电源或者地线短路可能会引起电机不转,抖动,失步等现象,同时芯片会发热。
3. 如果该类引脚如果和其他引脚短路可能会引起电机不转,抖动,失步等现象,同时芯片会发热,也有可能电机运转正常,但芯片发热,输出信号变差。
电流保护引脚(包括CH1SEN、CH2SEN、CH3SEN)
1. 如果该类引脚如果虚焊或者接触不良可能会引起电机不转,抖动,失步等现象。
2. 如果该类引脚和电源短路,对应的通道无输出,系统功耗很大
3. 如果该类引脚和地线短路,电流保护功能失效。
4. 如果该类引脚和其他引脚短路可能会引起电机不转,抖动,失步等现象
到位输出引脚(包括CH1INT、CH2INT、CH3INT)
1. 如果该类引脚如果虚焊或者接触不良可能会引起检测不到到位信号
2. 如果该类引脚如果和电源或者地线短路可能会引起到位信号输出不正常,芯片发热等现象。
3. 如果该类引脚和其他引脚短路可能会引起到位信号输出不正常,芯片发热等现象,也可能有到位信号但信号变差。
复位引脚RESET
1. 如果该引脚虚焊或者接触不良可能会引起芯片不能可靠复位,工作不正常。
2. 如果该引脚和电源短路,不影响其工作
3. 如果该引脚和地,芯片一直处于复位状态,不能工作
休眠引脚SLEEP
1. 如果该引脚虚焊或者接触不良可能会引起芯片工作状态不定,不能正常工作。
2. 如果该引脚和电源短路,芯片可以正常工作但进入不了休眠模式
3. 如果该引脚和地电路,芯片一直处于休眠模式,不能正常工作。
串口模式选择引脚UART/SPI
1. 如果该引脚虚焊或者接触不良可能会引起芯片工作方式不定,芯片不能正常工作
2. 如果该引脚和电源短路,芯片只能工作在UART模式,不能工作在SPI模式
3. 如果该引脚和地短路,芯片只能工作在SPI模式,不能工作在UART模式
数据发送引脚TXD/SO
1. 如果该引脚虚焊或者接触不良可能会引起芯片读寄存器不正常
2. 如果该引脚与电源或者地短路,则芯片不能读寄存器或者数据有误
数据接收引脚RXD/SI
1. 如果该引脚虚焊或者接触不良可能会引起芯片通讯失败从而不能正常工作
2. 如果该引脚与电源或者地短路可能会引起芯片通讯失败从而不能正常工作
串行时钟输入引脚
1. 如果该引脚虚焊或者接触不良可能会引起芯片SPI通讯失败从而不能正常工作
2. 如果该引脚与电源或者地短路可能会引起芯片SPI通讯失败从而不能正常工作
电源引脚(包括VSS,VSS,REGC)
1. 如果该引脚虚焊或者接触不良可能会引起芯片不能正常工作
2. 如果电源引脚之间短路可能是焊接问题,也有可能是芯片损坏,芯片不能正常工作,并有可能芯片发热
MMC-1和L298连接示意
步进电机:
(MMC-1)CHnSTA1 --> (L298)in1
(MMC-1)CHnSTA2 --> (L298)in2
(MMC-1)CHnSTB1 --> (L298)in3
(MMC-1)CHnSTB2 --> (L298)in4
(MMC-1)CHnSEN <-- (L298)SENSEA&SENSEB
直流电机
(MMC-1)CHnDCPWM --> (L298)in1
(MMC-1)CHnSDCDIR --> (L298)in2
L298的其他引脚如EnA,EnB需要主控MCU控制或者直接用电阻上拉.