打印
[PIC®/AVR®/dsPIC®产品]

18系列的硬件IIC无SCL波形输

[复制链接]
667|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2022-10-14 23:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一次使用PIC18系列的芯片,在使用硬件IIC(MSSP)时,发现SCL、SDA上均无正常波形输出(示波器测量),一直为高电平,如下是MSSP模块初始化code:
void i2c_master_init(void)
{ TRISCbits.TRISC3=1; //RC3--SCL R*--SDA
TRISCbits.TRIS*=1;
SSPCON1bits.SSPM0=0;
SSPCON1bits.SSPM1=0;
SSPCON1bits.SSPM2=0;
SSPCON1bits.SSPM3=1; //I2C Master mode
SSPSTATbits.SMP=1; SSPADD=19;//SCL CLOCK=8000000/(4*(SSPADD+1)) 100KHZ
SSPCON1bits.SSPEN=1;
PIE1bits.SSPIE=1;
//INTCONbits.PEIE = 1;
// INTCONbits.GIE = 1;
}
读写函数基本就是按照网上标准的流程对SSPBUF操作,基本操作如下(中间有省略)
SSPCON2bits.SEN=1;//start condition
while(SSPCON2bits.SEN == 1);//waiting for Start condition completed
PIR1bits.SSPIF=0;
SSPBUF=0xAA;
while(PIR1bits.SSPIF == 0);
PIR1bits.SSPIF=0;
~ ~
SSPBUF=data;
while(PIR1bits.SSPIF == 0);
PIR1bits.SSPIF=0;
SSPCON2bits.PEN=1;//stop condition

使用特权

评论回复
沙发
zhuhuis|  楼主 | 2022-10-15 08:18 | 只看该作者
从设置的断点调试看,程序会卡在while(PIR1bits.SSPIF == 0);语句无法运行下去,如果把while语句去掉,示波器上也无时钟波形,感觉好像IIC模块根本没有工作

使用特权

评论回复
板凳
zhuhuis|  楼主 | 2022-10-15 08:25 | 只看该作者
找了很多资料,INIT配置部分都是跟我一致的,没有牵涉其它寄存器配置了,是否我有遗漏

使用特权

评论回复
地板
jiajs| | 2022-10-15 08:29 | 只看该作者
使用IO模拟I2C好了

使用特权

评论回复
5
juventus9554| | 2022-10-15 08:34 | 只看该作者
接上拉电阻了吗

使用特权

评论回复
6
stly| | 2022-10-15 08:39 | 只看该作者
总线空闲?        

使用特权

评论回复
7
huwr| | 2022-10-15 08:42 | 只看该作者
scl和sda是否接反   

使用特权

评论回复
8
chenho| | 2022-10-15 08:45 | 只看该作者
上拉输入模式   

使用特权

评论回复
9
renyaq| | 2022-10-15 08:50 | 只看该作者
硬件IIC改成软件IIC  

使用特权

评论回复
10
dengdc| | 2022-10-15 08:53 | 只看该作者
硬件I2C不稳定  

使用特权

评论回复
11
huangchui| | 2022-10-15 08:56 | 只看该作者
模拟IIC的流程更清楚一些。  

使用特权

评论回复
12
juventus9554| | 2022-10-15 08:59 | 只看该作者
模拟IIC的   

使用特权

评论回复
13
huwr| | 2022-10-15 09:01 | 只看该作者
内置的硬件I2C   

使用特权

评论回复
14
chenho| | 2022-10-15 09:04 | 只看该作者
际调试时可能会出现BUG(  

使用特权

评论回复
15
wuhany| | 2022-10-15 09:05 | 只看该作者
需要外接上拉电阻  

使用特权

评论回复
16
zhuhuis|  楼主 | 2022-10-15 09:10 | 只看该作者
硬件IIC优点是可用DMA减轻CPU负担   

使用特权

评论回复
17
huangchui| | 2022-10-15 09:12 | 只看该作者
实现IIC的通讯   

使用特权

评论回复
18
午夜粪车| | 2022-10-15 09:14 | 只看该作者
硬件IIC远没有硬件SPI好用  

使用特权

评论回复
19
jlyuan| | 2022-10-15 09:17 | 只看该作者
硬件IIC用法比较复杂   

使用特权

评论回复
20
zwll| | 2022-10-15 19:00 | 只看该作者
硬件I2C用的好好的   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

粉丝