完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我们在主模式下使用PIC18F25K22 8位微控制器将编码器与I2C通信接口。PIC控制器使用8MHz的内部振荡器。#pragma config FOSC=INtiO67//振荡器选择位#pragma config PLLCFG=OFF//4XPLL.ble#pragma config PRICLKEN=PRICLKEN根据数据表FOSC/(4*(SSPADD+1))中的计算,OFF//主时钟.bleOSCCONbits.IRCF=0b110//8MhzOSCCONbits.SCS=0x0;//主时钟(由FOSC<3:0>在CONFIG1H中确定)I2C通信频率设置为100kHz,SSP1ADD=19(十进制)=>8M/(4*20)=>8M/8M100kSCL1_DIR=1;SDA1_DIR=1;SDA1_DIR=1;PMD1位。MSSP1MD=0;SSP1STA位MSSP1SP1MD=0;SSP1STASTAT位.SMP=1;1/SSP1P1P1STASTASTASTASTA位SSP1SPSPSPSPSPP1STAT位.SMP=1;1//禁用SSP1STASTASTASTASTASTASTASTASTASTASTASTASTAT位SSP1STA位SSP1STA位SSP1STA位SSP1STAT位.SMP=1=1;1//禁用SSP1P1STASTASTASTASTASTASTASTASTASTASTASTASTASTASTASTASTASTASTAT位SSP1STAT位SSP1STASTASTAT位SSP1STAT位.SMP1STASTASTAT比特SSP1时钟=FOSC/(4*(SSPADD+1))SSP1CON1bits.SSPM2=0;SSP1CON1bits.SSPM1=0;SSP1CON1bits.SSPM0=0;当我们用范围检查SCL线时,我们观察到的时钟频率为56.8khz。在硬件SCL和SDA线中,上拉至47k电阻器。这里我在SCL线上附加范围读数。
|
|
相关推荐
4个回答
|
|
不知道为什么你会得到那个频率,但是你的第一个问题是你的拉大太大。这就是为什么你得到锯齿,并且信号永远达不到VDD。减少拉峰从47 K到4K7,然后再试一次。
|
|
|
|
我们保留47k上拉电阻的唯一原因是在从设备的应用说明中提到了它。现在我们已经尝试使用10k上拉电阻,时钟频率变成86.9khz。上拉电阻和频率有什么关系吗?
|
|
|
|
我猜它正在等待信号达到某一电压后再把它压低。显然上拉还是太高了。停止拖拉,放入4K7英寸。:)
|
|
|
|
是的,上拉电阻和I2C时钟频率之间有某种关系:布线电容也与此有关。I2C是“通话前监听”协议。I2C外围硬件在启动BRG定时器5微秒之前,将检查SCL信号是否确实检测到上升。时钟高脉冲。在示波图中,你可以试着测量从SCL上升超过2V到下降沿的时间,看看这个时间与5微秒时钟高时间如何匹配。I2C通信不依赖于精确的时钟信号频率,而是SCL线携带所需的定时信息。消息#3中所示的信号定时足够好,不需要比图像显示更多的方形信号。请注意,如果布线更长,导致布线中更多的电容,或者如果额外的I2C设备连接到相同的网络,则信号定时将改变。迈西尔
|
|
|
|
只有小组成员才能发言,加入小组>>
5036 浏览 9 评论
1935 浏览 8 评论
1872 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3088 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2157 浏览 5 评论
597浏览 1评论
465浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
493浏览 0评论
395浏览 0评论
IPECMD命令烧录AVR128DA48芯片,报找不到芯片错误
874浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-2 10:16 , Processed in 1.274924 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191