搜索
bottom↓
回复: 13

问一下,K60数据手册上I2C的引脚应该是哪个?(已解决)

[复制链接]

出0入0汤圆

发表于 2014-5-5 18:22:54 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZJJ 于 2014-6-4 11:44 编辑

Document Number: K60P144M100SF2V2
Rev. 3, 6/2013
里面
8.1 K60 signal multiplexing and pin assignments
那个I2C0_SCL,I2C0_SDA应该是PTB0,PTB1呢还是PTB2,PTB3?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-5-5 18:52:18 | 显示全部楼层
//      模块通道    端口          可选范围            
#define I2C0_SCL    PTD8        // PTB0、PTB2、PTD8
#define I2C0_SDA    PTD9        // PTB1、PTB3、PTD9
可选说明这三个I/O口都可以作为i2c的接口

出0入0汤圆

发表于 2014-5-5 19:00:15 | 显示全部楼层
#define HW_I2C0         (0x00U)
#define HW_I2C1         (0x01U)

//!< I2C QuickInit macro
#define I2C1_SCL_PE01_SDA_PE00  (0x81a1U)
#define I2C0_SCL_PE19_SDA_PE18  (0xa520U)
#define I2C0_SCL_PF22_SDA_PF23  (0xaca8U)
#define I2C0_SCL_PB00_SDA_PB01  (0x8088U)
#define I2C0_SCL_PB02_SDA_PB03  (0x8488U)
#define I2C1_SCL_PC10_SDA_PC11  (0x9491U)
#define I2C0_SCL_PD08_SDA_PD09  (0x9098U)

这是我摘录的一段代码。 I2C 有2个通道。每个通道有多个可选的引脚。

出0入0汤圆

发表于 2014-5-5 21:57:52 | 显示全部楼层
两组脚都是I2C0里面的,你可以把B0,B1当做I2C0来用,或者B2,B3

出0入0汤圆

 楼主| 发表于 2014-5-5 23:46:13 | 显示全部楼层
谢谢楼上几位的回复。我在MQX中要如何设置才能选择特定的IO口呢?比如PB2,PB3。

出0入0汤圆

发表于 2014-5-6 00:27:15 | 显示全部楼层
都可以的。在IO的功能设置里设置一下就可以的

出0入0汤圆

发表于 2014-5-6 08:56:32 | 显示全部楼层
我忽然想起个问题,能不能把81、83同时配置成I2C0_SCL,82、84同时配置成I2C0_SDA呢?

出0入0汤圆

发表于 2014-5-6 10:44:30 | 显示全部楼层
你说的这些都是I2C0的引脚,具体请通过PORT寄存器去配置MUX等实现哦。

出0入0汤圆

发表于 2014-5-6 10:45:44 | 显示全部楼层
cmheia 发表于 2014-5-6 08:56
我忽然想起个问题,能不能把81、83同时配置成I2C0_SCL,82、84同时配置成I2C0_SDA呢? ...

应该是可以的,具体你可以尝试下,如果遇到问题可以和我们联系。

出0入0汤圆

发表于 2014-5-6 11:18:28 | 显示全部楼层
顶一下  

出0入0汤圆

发表于 2014-5-6 13:13:39 | 显示全部楼层
看到PTB0有LLWU功能,我一般不会选用有该功能的引脚去做其他功能的...
被飞思卡尔的低功耗搞郁闷了...

出0入0汤圆

 楼主| 发表于 2014-5-6 17:57:58 | 显示全部楼层
再次谢谢楼上n位的回答,
现在我想知道的是在MQX中要修改哪个文件才能把I2C0_SCL,I2C0_SDA配置到PTB2,PTB3?

出0入0汤圆

 楼主| 发表于 2014-5-6 18:15:52 | 显示全部楼层
找了一下,是不是在init_gpio.c中:

/*FUNCTION*-------------------------------------------------------------------
*
* Function Name    : _bsp_i2c_io_init
* Returned Value   : MQX_OK or -1
* Comments         :
*    This function performs BSP-specific initialization related to I2C
*
*END*----------------------------------------------------------------------*/

_mqx_int _bsp_i2c_io_init
(
    uint_32 dev_num
)
{
    #define ALT2 0x2

    PORT_MemMapPtr  pctl;
    SIM_MemMapPtr sim = SIM_BASE_PTR;

    switch (dev_num)
    {
        case 0:
            pctl = (PORT_MemMapPtr)PORTD_BASE_PTR;

            pctl->PCR[8] = PORT_PCR_MUX(ALT2) | PORT_PCR_ODE_MASK;
            pctl->PCR[9] = PORT_PCR_MUX(ALT2) | PORT_PCR_ODE_MASK;

            sim->SCGC4 |= SIM_SCGC4_I2C0_MASK;

            break;
        case 1:
            pctl = (PORT_MemMapPtr)PORTC_BASE_PTR;

            pctl->PCR[10] = PORT_PCR_MUX(ALT2) | PORT_PCR_ODE_MASK;
            pctl->PCR[11] = PORT_PCR_MUX(ALT2) | PORT_PCR_ODE_MASK;

            sim->SCGC4 |= SIM_SCGC4_I2C1_MASK;

            break;
        default:
            /* Do nothing if bad dev_num was selected */
            return -1;
    }

    return MQX_OK;

}

出0入0汤圆

 楼主| 发表于 2014-5-6 19:26:34 | 显示全部楼层
的确是修改init_gpio.c中的下面三句哈
pctl = (PORT_MemMapPtr)PORTD_BASE_PTR;
pctl->PCR[8] = PORT_PCR_MUX(ALT2) | PORT_PCR_ODE_MASK;
pctl->PCR[9] = PORT_PCR_MUX(ALT2) | PORT_PCR_ODE_MASK;
改为
pctl = (PORT_MemMapPtr)PORTB_BASE_PTR;
pctl->PCR[2] = PORT_PCR_MUX(ALT2) | PORT_PCR_ODE_MASK;
pctl->PCR[3] = PORT_PCR_MUX(ALT2) | PORT_PCR_ODE_MASK;
就可以了。

之前没有仔细看MQX_BSP_Porting_Guide.pdf。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 17:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表