找回密码
 注册
关于网站域名变更的通知
查看: 360|回复: 1
打印 上一主题 下一主题

干货分享|基于AM4376/79 ARM+FPGA的I2C通信案例分享

[复制链接]
  • TA的每日心情
    奋斗
    2020-3-25 15:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-10-28 14:04 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    本帖最后由 Tronlong小分队 于 2020-10-28 14:04 编辑
    9 h  y8 I; B& y1 U4 w: z& M  g* a8 ]7 H" R! M/ a
    1.1                 I2C通信核心板简介
    本案例主要基于创龙科技的AM4376/AM4379 ARM Cortex-A9 + XilinxSpartan-6 FPGA处理器设计的异构多核工业级核心板进行讲解:

    1 O8 b* D7 E' l. `' Q, t5 C9 L6 ~
    创龙SOM-TL437xF是一款基于TI Sitara系列AM4376/AM4379 ARM Cortex-A9 + Xilinx Spartan-6 FPGA处理器设计的异构多核工业级核心板。核心板内部AM437x与Spartan-6通过GPMC、I2C通信总线连接。通过工业级B2B连接器引出LCD、CAMERA、GPMC、CAN等接口。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
    用户使用核心板进行二次开发时,仅需专注上层运用,降低了开发难度和时间成本,可快速进行产品方案评估与技术预研。
    1
    2
    : Y) o( U; [9 h/ B# c& ?7 |* t
    1.2                 I2C通信案例功能
    案例功能:在FPGA端实现I2C Slave,并内置用户可读写寄存器、LED寄存器、KEY寄存器。ARM端作为Master,可通过核心板内部与FPGA连接的I2C0接口读写FPGA端I2C Slave用户可读写寄存器0x00,LED写寄存器0x01点亮或熄灭FPGA端LED(写1则点亮,写0则熄灭),查看KEY寄存器0x02检测FPGA端KEY状态。
    1.3                 I2C通信操作说明
    将产品资料“4-软件资料\Demo\FPGA\i2c_slave\bin\i2c_test_6slx16.bit”可执行程序加载至FPGA端。进入评估板文件系统后,执行如下命令可查看到I2C0总线上的挂载设备,其中0x2a为FPGA端I2C Slave的地址。
    Target#mkdir/configfs

    1 @& e5 p  B" d% F2 g
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
    3
    . i5 Z' j# d$ g* F: K" ~& O
    执行如下命令进行用户可读写寄存器0x00的读写测试。
    Target#i2cset -f -y 0 0x2a 0x00 0x55          //寄存器0x000x55
    Target#i2cget -f -y 0 0x2a 0x00                  //读取寄存器0x00值为0x55
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
    ! w: ~0 ?- W' K9 B$ _
    4
    * r4 ?( ~/ W7 r! D
    执行如下命令进行LED寄存器0x01的写测试,实现FPGA端LED的亮灭控制。
    Target#i2cset -f -y 0 0x2a 0x01 0xe0          //LED寄存器0x010xe0,点亮FPGALED5LED6LED7
    Target#i2cset -f -y 0 0x2a 0x01 0x00          //LED寄存器0x010x00熄灭FPGALED5LED6LED7

    . j1 X! P, g0 h8 y! T. ?9 P
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
    5

    ' H* _3 S9 o) Z& R2 _# o  B, x+ i
    执行如下命令进行KEY寄存器0x02的读测试,实现FPGA端KEY的状态检测。
    Target#i2cget -f -y 0 0x2a 0x02           //读取KEY寄存器0x02,值为0xe0
    - H/ \1 _1 o, f2 }+ X
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
    6
    * k& W  c2 H5 r: _% X! T% b
           按下FPGA端按键KEY6并保持按下状态,再执行如下命令。
    Target#i2cget -f -y 0 0x2a 0x02           //读取KEY寄存器0x02,值为0xc0
    7 a3 u5 T3 }3 O. U
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg
    7
    5 c2 A  @# j  U
           按下FPGA端按键KEY7并保持按下状态,再执行如下命令。
    Target#i2cget -f -y 0 0x2a 0x02           //读取KEY寄存器0x02,值为0xa0
    3 q6 F$ T9 }0 r/ ]6 X; V  E; p# @
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg
    8

    # R: w9 x' J9 ]1 E! G" C8 i1.4                 I2C通信管脚约束
    FPGA端管脚约束请查看产品资料“4-软件资料\Demo\FPGA\i2c_slave\project\i2c_slave_6slx16\constraints\i2c_test.ucf”文件。
    1.5                 I2C通信关键代码
    (1)   定义I2C、LED、KEY、时钟IO。

    * D% |# ~# N' M, F
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg
    9hdl/i2c_test.v

    7 {& ^1 ?$ z8 Q& y5 P% Q# f
    (2)   输出100MHz时钟给I2C Slave模块。
    4 U; u2 ~3 B0 h: r* w, G9 t
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg
    10hdl/i2c_test.v

    + m+ W8 O: ]6 h$ q' r% D
    (3)   调用I2C Slave模块。
    0 k& H* p" x4 K4 S; z3 T" |
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg
    11hdl/i2c_test.v

    ! W( f  X; @+ ?; ?# a5 Z
    I2C Slave模块程序来源参考:https://opencores.org/projects/i2cslave。
    (4)   根据LED寄存器的值控制LED,并将KEY状态值保存至KEY寄存器。
    2 ?7 T5 i! q9 [
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image024.jpg
    12hdl/i2c_test.v

    - g! X& p1 t! x7 p# I6 n3 ]: `
    (5)   设置I2C Slave地址为0x2a。

    ; v1 V" T7 Z, P( ]
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image026.jpg
    13hdl/i2cslave/i2cSlave_define.v
    . e9 V) _  T& l8 O# a3 m
    RTL原理图如下所示:

    " |7 c6 ~; U2 w7 E& x
    file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image028.jpg
    14

    8 B/ o- A/ l) Y' r4 y! k' h
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 23:20 , Processed in 0.171875 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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