i2c - Intel MAX10 I2C 不发送任何信号。我该如何解决?
问题描述
我用的是DE10-LITE板。
我尝试使用 I2C 连接外部 ROM。
在 QSYS 中,我设置了 NIOS 和 I2C Master Core。
编译没有错误。
这是我的代码
GPIO(0) <= '0' WHEN SDA_OE = '1' ELSE 'Z';
GPIO(1) <= '0' WHEN SCL_OE = '1' ELSE 'Z';
SDA <= GPIO(0);
SCL <= GPIO(1);
u0 : component QSYS
port map (
clk_clk => MAX10_CLK1_50, -- clk.clk
reset_reset_n => RST, -- reset.reset_n
i2c_0_i2c_serial_sda_in => SDA, -- i2c_0_i2c_serial.sda_in
i2c_0_i2c_serial_scl_in => SCL, -- .scl_in
i2c_0_i2c_serial_sda_oe => SDA_OE, -- .sda_oe
i2c_0_i2c_serial_scl_oe => SCL_OE -- .scl_oe
);
GPIO 是输入输出引脚。
我像这样在 Eclips 中编写程序代码。
i2c_dev = alt_avalon_i2c_open("/dev/i2c_0");
if (NULL==i2c_dev)
{
printf("Error: Cannot find /dev/i2c_0\n");
//return 1;
}
while(1)
{
alt_avalon_i2c_master_target_set(i2c_dev,SLAVE_ROM_ADDR);
status=alt_avalon_i2c_enable(i2c_dev);
i2c_tx_buf[0] = 0x00;
i2c_tx_buf[1] = 0x00;
i2c_tx_buf[2] = 0x03;
i2c_tx_buf[3] = 0x04;
status=alt_avalon_i2c_master_tx(i2c_dev, i2c_tx_buf, 4, 0);
}
我将 gpio 引脚连接到示波器。但它不发送任何信号。
我还使用 BusBee 串行总线监视器来检查 I2C 信号。但它无法检测到任何信号。
什么是问题?
解决方案
推荐阅读
- io - 使用 Cray 编译器可以直接 I/O 吗?
- javascript - chartjs - 如何在自定义工具提示回调中访问图表实例
- node.js - Vuejs错误:规则只能有一个资源源(提供资源和测试+包含+排除)
- r - 有条件地显示通过 withCallingHandlers 捕获的警告消息
- r - 创建的列在 R 中无法识别
- reactjs - 如何使用 Framer Motion 为数字设置动画?
- python-3.x - 在 groupby 中获得前 3 名,并将其余部分归为“其他类别”
- android - 如何在项目构建期间在 Android Studio IDE 中显示项目使用的所有 GCC / Clang 编译器选项?
- javascript - 香草 JS 日期选择器
- java - 如何使键绑定同时按下