当前位置: 首页 > news >正文

[K230学习笔记 02] I2C - Ze

硬件背景

I2C

  如下图所示,简单来说I2C是一种同步、串行、多主从的通信总线,由时钟线(SCL)与数据线(SDA)组成。在总线上的设备由一个唯一的地址识别,并且可以作为发送器或接收器运行,具体取决于设备的功能。

I2C总线结构图

图1.1 I2C总线结构图


assets/-K230学习笔记 02- I2C/file-20251025014418585.jpg

assets/-K230学习笔记 02- I2C/file-20251025014744367.jpg

assets/-K230学习笔记 02- I2C/file-20251025015120576.jpg

assets/-K230学习笔记 02- I2C/file-20251025015108726.jpg

OpenSBI v1.2.2

\ | /

  • RT - Thread Smart Operating System
    / | \ 5.2.2 build Oct 25 2025 01:21:25
    2006 - 2024 Copyright by RT-Thread team
    lwIP-2.1.2 initialized!
    [I/drv_i2c] i2c0 clock=100000000Hz

[I/drv_i2c] i2c0 slave address=0x50

[I/drv_i2c] slave-eeprom size: 256
[I/sal.skt] Socket Abstraction Layer initialize success.
[I/utest] utest is initialize success.
[I/utest] total utest testcase num: (4)
[I/drivers.serial] Using /dev/ttyS0 as default console
tmpfs mounted on /dev/shm success!
file system initialization done!
Press any key to stop init process startup ... 3
Press any key to stop init process startup ... 2
Press any key to stop init process startup ... 1
Starting init ...
Hello RISC-V
msh />cat /dev/i2c-slv-eeprom

msh />echo "0123" /dev/i2c-slv-eeprom
msh />cat /dev/i2c-slv-eeprom
0123
msh />utest_run bsp.k230.drivers.i2c
[I/utest] [] [ utest ] loop 1/1
[I/utest] [
] [ utest ] started
[I/utest] [----------] [ testcase ] (bsp.k230.drivers.i2c) started
[I/utest] i2c bus(pin: 48, 49) is idle, init i2c bus pin
[I/utest] This is a i2c test case.

[I/utest] [==========] utest unit name: (test_i2c0_master_slave)
[I/utest] slave buffer data:

[I/utest] 0x34
[I/utest] 0x35
[I/utest] 0x36
[I/utest] 0x37
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] 0x00
[I/utest] [ PASSED ] [ result ] testcase (bsp.k230.drivers.i2c)
[I/utest] i2c bus pin deinit.

[I/utest] [----------] [ testcase ] (bsp.k230.drivers.i2c) finished
[I/utest] [] [ utest ] 1 tests from 4 testcase ran.
[I/utest] [ PASSED ] [ result ] 1 tests.
[I/utest] [
] [ utest ] finished
msh />cat /dev/i2c-slv-eeprom
4567
msh />

assets/-K230学习笔记 02- I2C/file-20251025160837258.jpg

assets/-K230学习笔记 02- I2C/file-20251025160916833.jpg

assets/-K230学习笔记 02- I2C/file-20251025160942274.jpg

assets/-K230学习笔记 02- I2C/file-20251025161014243.jpg

OpenSBI v1.2.2

\ | /

  • RT - Thread Smart Operating System
    / | \ 5.2.2 build Oct 25 2025 15:58:34
    2006 - 2024 Copyright by RT-Thread team
    lwIP-2.1.2 initialized!
    [I/drv_i2c] i2c0 clock=100000000Hz

[I/drv_i2c] i2c0 master mode

[I/sal.skt] Socket Abstraction Layer initialize success.
[I/utest] utest is initialize success.
[I/utest] total utest testcase num: (4)
[I/drivers.serial] Using /dev/ttyS0 as default console
tmpfs mounted on /dev/shm success!
file system initialization done!
Press any key to stop init process startup ... 3
Press any key to stop init process startup ... 2
Press any key to stop init process startup ... 1
Starting init ...
Hello RISC-V
msh />utest_run bsp.k230.drivers.i2c
[I/utest] [] [ utest ] loop 1/1
[I/utest] [
] [ utest ] started
[I/utest] [----------] [ testcase ] (bsp.k230.drivers.i2c) started
[I/utest] i2c bus(pin: 48, 49) is idle, init i2c bus pin
[I/utest] This is a i2c test case.

[I/utest] [==========] utest unit name: (test_i2c0_master_slave)
[I/utest] Read data:

[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] 0xAA
[I/utest] Read data:

[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] 0x55
[I/utest] [ PASSED ] [ result ] testcase (bsp.k230.drivers.i2c)
[I/utest] i2c bus pin deinit.

[I/utest] [----------] [ testcase ] (bsp.k230.drivers.i2c) finished
[I/utest] [] [ utest ] 1 tests from 4 testcase ran.
[I/utest] [ PASSED ] [ result ] 1 tests.
[I/utest] [
] [ utest ] finished
msh />

http://www.zskr.cn/news/30828.html

相关文章:

  • javascript 学习笔记(有c++基础)(更新中)
  • MCP Router使用学习
  • 人生八要(摘抄)
  • 20232322 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025年上海久宙集团:深度解析技术护城河与行业话语权
  • 2025年欧那德语深度解析:十二年在线小班模式全透视
  • LangChain简单介绍
  • LLM-提示词
  • 图像分类,从网络构建到断点续训,TF2版本实现
  • C0427 【20251025】2025 CSP-J 联测5 总结
  • 2025 年 10 月贵州旅游旅行社最新推荐,精准检测与稳定性能深度解析
  • PyTorch API 详细中文文档,基于PyTorch2.5
  • 20232417 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • OpenLayers地图交互 -- 章节十八:拖拽旋转和缩放交互详解 - 教程
  • 小白 / 学生党必藏!真正有效的最佳安卓数据恢复软件
  • LeetCode边界与内部和相等的稳定子数组
  • 1050-10XX显卡 解决CUDA error: no kernel image is available for execution on the device
  • 壁纸网站
  • 单层神经元手写数字识别
  • 单个神经元手写数字识别
  • 多元线性回归
  • TF1和TF2
  • 单变量线性回归tensorflow版
  • 软考六
  • 应用安全 ---
  • HDFS文件系统
  • Java 类加载器
  • JAVA RMI编程
  • 大资料毕业设计选题推荐-基于大数据的全球产品库存数据分析与可视化系统-大材料-Spark-Hadoop-Bigdata
  • 字符与Java国际化编程