Я использую плату DE10-LITE.
Я пытаюсь использовать I2 C для соединения с внешним ПЗУ.
В QSYS я настраиваю N IOS и I2 C 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 для сигналов chseck I2 C. но он не может обнаружить какие-либо сигналы.
в чем проблема?