知道这里能不能把电路简图传上来
信号流向是:
CPU的P0.0 I/O端口——5V转3.3V电平转换器件——MC35I的IGT引脚
上面是我关于MC35I的设计部分,因为只涉及CSD问题,所以关于串口只连接了RXD/TXD部分,,电源由AS2815电源转换模块提供。CPU的P0口已经做了上拉电阻。现在调试过程和状况如下,烦请大家帮忙查找不能启动的原因:
1、首先上电后测试各点电压:
VBATT=3.36V;IGT=3.36V;EMERGOFF=3.12V;SYNC=3.3V;RXD=3.3V,TXD=3.3V。
2、编写单片机测试程序如下:(AT89C51,11.0592MHz,现在MC35I工作在4800bps下)
#include<reg51.h>
#define DELAY_TIME 60000//延时时间,可变
//LD定义
sbit ld1=P2^3;
sbit ld2=P2^2;
sbit ld3=P2^1;
sbit ld4=P2^0;
//MC35I引脚定义
sbit IGT=P0^5;
sbit PD=P0^1;
sbit SYNC=P0^2;
//存放初始化数据^SYSSTART,判断是否正常初始化
unsigned char initread[12]
void delay(unsigned int m)//延时程序
{unsigned int n=0;
while(n<m)
n++;
return;
}
void main(void)
{
init_dog();//初始化看门狗
SCON=0x40;//串口工作在方式1下
TMOD=0x20;//定时器1工作在方式2下,8位重装,计数
EA=1;ES=1;//开中断
TH1=0xf4;//计数初值,波特率4800bps
TL1=0xf4;
TCON=0x60;//启动T1工作
PCON=0x80;//
ld1=SYNC;//注意看灯闪烁看模块状态
REN=1;//允许接收数据
IGT=0;
if(IGT==0) ld2=0;//测试IGT是否被置为低电平
delay(DELAY_TIME);//延时
IGT=1;//延时后启动位为1
if(IGT==1) ld3=0;//测试用灯
while(1)
{
feed_dog();
}
}
void serial_data(void) interrupt 4 using 3//串口中断,接收初始化数据
{
if(RI)
{
transdata=SBUF;
initread[j]=transdata;
if(initread[j]==0x0A);
REN=0;
RI=0;
j++;
if(j==3) ld1=0;//判断是不是接收到数据
}
}
注明:关于看门狗程序部分没在这里发,但程序没问题。
3、在执行过程中,先单步执行的,LD2/LD3都亮,同时执行完IGT=0这句后测试了一下IGT的引脚电压,为0V。但没有接到串口初始化数据,LD1不亮。同时测试SIM卡供电电压也是为0的,说明模块没启动。
现在不知道问题出在哪里了,烦请大侠们指点指点
1楼
0
0
回复
信号流向是:
CPU的P0.0 I/O端口——5V转3.3V电平转换器件——MC35I的IGT引脚
上面是我关于MC35I的设计部分,因为只涉及CSD问题,所以关于串口只连接了RXD/TXD部分,,电源由AS2815电源转换模块提供。CPU的P0口已经做了上拉电阻。现在调试过程和状况如下,烦请大家帮忙查找不能启动的原因:
1、首先上电后测试各点电压:
VBATT=3.36V;IGT=3.36V;EMERGOFF=3.12V;SYNC=3.3V;RXD=3.3V,TXD=3.3V。
2、编写单片机测试程序如下:(AT89C51,11.0592MHz,现在MC35I工作在4800bps下)
#include<reg51.h>
#define DELAY_TIME 60000//延时时间,可变
//LD定义
sbit ld1=P2^3;
sbit ld2=P2^2;
sbit ld3=P2^1;
sbit ld4=P2^0;
//MC35I引脚定义
sbit IGT=P0^5;
sbit PD=P0^1;
sbit SYNC=P0^2;
//存放初始化数据^SYSSTART,判断是否正常初始化
unsigned char initread[12]
void delay(unsigned int m)//延时程序
{unsigned int n=0;
while(n<m)
n++;
return;
}
void main(void)
{
init_dog();//初始化看门狗
SCON=0x40;//串口工作在方式1下
TMOD=0x20;//定时器1工作在方式2下,8位重装,计数
EA=1;ES=1;//开中断
TH1=0xf4;//计数初值,波特率4800bps
TL1=0xf4;
TCON=0x60;//启动T1工作
PCON=0x80;//
ld1=SYNC;//注意看灯闪烁看模块状态
REN=1;//允许接收数据
IGT=0;
if(IGT==0) ld2=0;//测试IGT是否被置为低电平
delay(DELAY_TIME);//延时
IGT=1;//延时后启动位为1
if(IGT==1) ld3=0;//测试用灯
while(1)
{
feed_dog();
}
}
void serial_data(void) interrupt 4 using 3//串口中断,接收初始化数据
{
if(RI)
{
transdata=SBUF;
initread[j]=transdata;
if(initread[j]==0x0A);
REN=0;
RI=0;
j++;
if(j==3) ld1=0;//判断是不是接收到数据
}
}
注明:关于看门狗程序部分没在这里发,但程序没问题。
3、在执行过程中,先单步执行的,LD2/LD3都亮,同时执行完IGT=0这句后测试了一下IGT的引脚电压,为0V。但没有接到串口初始化数据,LD1不亮。同时测试SIM卡供电电压也是为0的,说明模块没启动。
现在不知道问题出在哪里了,烦请大侠们指点指点