[Kinetis] kl02模拟SMBus总线

[复制链接]
2064|10
 楼主| ysszhk 发表于 2014-12-23 15:00 | 显示全部楼层 |阅读模式
kl02模拟SMBus总线, 端口如何操作,如何将端口设置成开漏输出,高阻输入等,我看数据手册上的端口配置章节,没有搞明白,大神有没有例程可供参考。
 楼主| ysszhk 发表于 2014-12-23 15:06 | 显示全部楼层
自己顶自己一下
FSL_TICS_Robin 发表于 2014-12-24 11:46 | 显示全部楼层
ysszhk 发表于 2014-12-23 15:06
自己顶自己一下

楼主你好
请看参考手册KL02P32M48SF0RM的“11.5.1 Pin Control Register n (PORTx_PCRn)”章节对于PORTx_PCRn寄存器介绍。
 楼主| ysszhk 发表于 2014-12-24 13:26 | 显示全部楼层
手册看了很多遍了哦- -
FSL_TICS_Robin 发表于 2014-12-24 13:37 | 显示全部楼层
ysszhk 发表于 2014-12-24 13:26
手册看了很多遍了哦- -

你这款芯片的IO口无法设置开漏
Open Drain.jpg
 楼主| ysszhk 发表于 2014-12-24 13:54 | 显示全部楼层
我的SCL和SDA外部是加了上拉电阻的。您看看我的IO口配置程序,看看我配置的是不是有问题。
void gpio_init()
{
        PORTB_PCR11 &= ~PORT_PCR_MUX_MASK;   //SDA
        PORTB_PCR11=(0|PORT_PCR_MUX(1));
       
        PORTB_PCR10 &= ~PORT_PCR_MUX_MASK;        //SCL
        PORTB_PCR10=(0|PORT_PCR_MUX(1));       
       
        GPIOB_PDDR |= (1<<10)|(1<<11);   
}



#define _SDA_OUTPUT     GPIOB_PDDR |= (1<<11)
#define _SDA_INPUT      GPIOB_PDDR &= ~(1<<11)

#define SDA_HIGH        GPIOB_PDOR |= (1<<11)
#define SDA_LOW     GPIOB_PDOR &= ~(1<<11)

#define SCL_HIGH  GPIOB_PDOR |= (1<<10)
#define SCL_LOW   GPIOB_PDOR &= ~(1<<10)

#define SDA_INPUT  GPIOB_PDIR&GPIO_PDIR_PDI(GPIO_PIN(11))
FSL_TICS_Robin 发表于 2014-12-24 15:16 | 显示全部楼层
ysszhk 发表于 2014-12-24 13:54
我的SCL和SDA外部是加了上拉电阻的。您看看我的IO口配置程序,看看我配置的是不是有问题。
void gpio_init( ...

如果是IIC引脚的话,通过PORTx_PCRn的MUX位选成IIC功能后应该就能自动开漏了。
 楼主| ysszhk 发表于 2014-12-24 18:41 | 显示全部楼层
我很贱的没有选择i2c引脚,并且已经做好板了,就是想请您看看我的io口设置的有没有问题。
FSL_TICS_Robin 发表于 2014-12-25 15:10 | 显示全部楼层
ysszhk 发表于 2014-12-24 18:41
我很贱的没有选择i2c引脚,并且已经做好板了,就是想请您看看我的io口设置的有没有问题。 ...

你这款芯片如果IIC引脚没有MUX成IIC功能,是无法通过PORTx_PCRn寄存器配置成开漏模式的。
从5楼图片中你应该就可以看到了。
FSL_TICS_Robin 发表于 2014-12-25 15:11 | 显示全部楼层
楼主回复我时千万要注意:点击我那层楼的回复按钮,这样系统才会提示我有新回复。
否则我很容易没看到你的回复信息呢。
 楼主| ysszhk 发表于 2014-12-27 12:35 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-12-25 15:11
楼主回复我时千万要注意:点击我那层楼的回复按钮,这样系统才会提示我有新回复。
否则我很容易没看到你的 ...

嗯 ,我的问题已经解决了,是我的smbus的时序有问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

79

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部