查看: 4040|回复: 8

[已解决] FRDM-KE02Z4 I2C通信內容異常 AN4775

[复制链接]
  • TA的每日心情

    2019-1-19 16:32
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    23

    主题

    113

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2022-3-31
    发表于 2017-12-25 15:47:26 | 显示全部楼层 |阅读模式
    開發環境IAR for ARM 7.6
    兩塊FRDM-KE02Z4之間SDA SCL(PTA2 A3)上拉4.7k到3.3V,有把板上ACCEL的電組R42 R45跳掉,改接R47 R39
    在NXP網站下載的AN4775
    轉換板與目標板在I2C握手時通信內容就異常
    一般應要是轉換板發送A0 06 00 00 00 02 08 , 目標板回傳A1 82 FC CheckSum

    但是我用Tek MSO2024B示波器抓到的信號為
    轉換板發送A0 06 00 00 00 02 08 , 目標板回傳A1 55 73 3F
    A1 55固定,但是後面就可能是73 72 77 F2 F6 FF再加上CheckSum

    IAR debug追蹤發現FC_Check這個函數並不會進入
    if( FC_CheckReceiveFrame(&gu8I2CRxFrameBuff[0],*pRxFrameLenth))
    {

        ......
    }
    所以也不會執行回傳
    I2C_WriteTxComACK(FC_CMD_HOOK);
    I2C_WriteOneByteToTxBuff(FC_CMD_ACK);


    請問可能是哪裡有問題造成無法進入HOOK?

    最佳答案

    楼主你好! 经过测试,AN4775SW的确有问题,经过进一步和我们AE的沟通,这个代码以及更新过,现在可以使用了。 请使用我附件中代码,后续我们会更新官网的代码。 另外,注意,板上电阻R39,R42,R45,R47全部连接。 ...
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25440
    最后登录
    2025-9-4
    发表于 2017-12-26 13:46:35 | 显示全部楼层
    楼主你好!
    你是直接跑AN4775里面带的转接板例程Bridge_UartToI2C, 目标板I2C_boot loader, 然后下载应用RTC_demo出的问题吗? 也就是完全使用官方的应用笔记代码,不做任何的修改出这个问题吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-1-19 16:32
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    23

    主题

    113

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2022-3-31
     楼主| 发表于 2017-12-26 14:03:07 | 显示全部楼层
    對,我沒做任何修改,不過我是用IAR for Arm 7.6編譯出來的燒錄檔,
    因為AN4775內沒有Bridge_UartToI2C   、  I2C_boot loader  的燒錄檔

    我把兩個project的IAR優化全部關掉也是一樣的狀況
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25440
    最后登录
    2025-9-4
    发表于 2017-12-26 17:02:05 | 显示全部楼层
    本帖最后由 小恩GG 于 2017-12-26 17:05 编辑
    lamb8059 发表于 2017-12-26 14:03
    對,我沒做任何修改,不過我是用IAR for Arm 7.6編譯出來的燒錄檔,
    因為AN4775內沒有Bridge_UartToI2C    ...

    我刚刚也测试了下,好像蛮难握手成功的,我能抓到握手成功的信号,不过比较难得:
    56.jpg
    57.jpg
    我这边再看看,如果实在不行,我需要和这个AN的作者沟通下。

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25440
    最后登录
    2025-9-4
    发表于 2017-12-26 17:31:11 | 显示全部楼层
    这里有几个需要注意点给你提醒下。
    新的IDE跑bootloader代码,你可以把优化等级搞最低,这个时候代码量会上升,所以,你可以把
    I2C_bootloader工程的重定向位置RELOCATION_VERTOR_ADDR 改为0X2000, 因为优化等级改低之后,代码量会变大,bootloader 代码会超过0X1000, 这个时候app再放到0X1000就不合适了,所以对应的应用app的重定向也要改为0X2000, 在icf文件中修改app的flash起始地址为0X2000
    define symbol __ICFEDIT_region_ROM_start__ = 0x2000; //0;
    define symbol __ICFEDIT_region_ROM_end__   = (64*1024) -1;//********
    define symbol __ICFEDIT_region_RAM_end__   = 0x20000000;
    define symbol __ICFEDIT_region_RAM_start__ =__ICFEDIT_region_RAM_end__ - (4*1024)/4 + 0x410;//********
    define symbol __region_EEPROM_start__      = 0x10003100;
    define symbol __region_EEPROM_end__        = __region_EEPROM_start__ -1 + 256; // 256 bytes

    /*-Specials-*/
    define symbol __ICFEDIT_intvec_start__     = __ICFEDIT_region_ROM_start__;

    /*-Sizes-*/
    define symbol __ICFEDIT_size_cstack__ = (1*1024);//********
    define symbol __ICFEDIT_size_heap__   = (1*1024);//********
    /**** End of ICF editor section. ###ICF###*/

    define symbol __region_RAM2_start__        = 0x20000000;
    define symbol __region_RAM2_end__          = __region_RAM2_start__ + ((4*1024)*3)/4;//********

    define exported symbol __VECTOR_TABLE      = 0x2000;//0x00000000
    define exported symbol __VECTOR_RAM        = __ICFEDIT_region_RAM_start__ - 0x410;

    define exported symbol __BOOT_STACK_ADDRESS = __region_RAM2_end__ - 8;

    define symbol __code_start__ = 0x2000 + 0x410;//******** 0x1000 + 0x410;

    当时我这边虽然都改了,握手成功之后,看似烧进去了,我检查了0X2000的数据,还是有问题,所以从目前情况看,这个代码包还是有bug的,我后面会和我们的这个应用笔记的作者请教下。
    如果有有效的消息我会及时告诉你。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-1-19 16:32
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    23

    主题

    113

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2022-3-31
     楼主| 发表于 2017-12-27 08:36:58 | 显示全部楼层
    請問目標板與轉接板的上電順序是?
    轉接板與目標板成功hook後,PC端軟件按commect就能與轉接板握手?
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25440
    最后登录
    2025-9-4
    发表于 2017-12-27 09:31:52 | 显示全部楼层
    本帖最后由 小恩GG 于 2017-12-27 10:25 编辑
    lamb8059 发表于 2017-12-27 08:36
    請問目標板與轉接板的上電順序是?
    轉接板與目標板成功hook後,PC端軟件按commect就能與轉接板握手? ...

    我是先上电目标板,然后上电或者复位转接板,这个时候转接板会发送握手I2C 命令给目标板,
    我查看I2C波形,发现握手成功,然后点击上位机的connect就能直接连接并且烧录成功
    58.jpg
    59.jpg
    但是遗憾的是,我烧录后直接查看目标板的0X2000(我已经重新定向到0X2000),没有烧录数据。

    其实在界面烧录的时候也提示烧录出错,擦除也会出错。
    我需要请教下我们这个AN的作者,等有消息,及时通知你。

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25440
    最后登录
    2025-9-4
    发表于 2018-1-18 16:26:33 | 显示全部楼层
    楼主你好!
    经过测试,AN4775SW的确有问题,经过进一步和我们AE的沟通,这个代码以及更新过,现在可以使用了。
    请使用我附件中代码,后续我们会更新官网的代码。
    另外,注意,板上电阻R39,R42,R45,R47全部连接。
    还有中转板上debug固件用opensda的,这样可以和AN2295上位机连接,JLINK的虚拟串口有问题。

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25440
    最后登录
    2025-9-4
    发表于 2018-1-18 16:27:39 | 显示全部楼层
    I2C_bootloader.rar (8.65 MB, 下载次数: 3110)
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-6 00:52 , Processed in 0.108059 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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