I have a QSYS design in which the peripherals do not appear to be decoded correctly. They work fine when controlled by System Console through the JTAG port, but not when controlled through the I2C port.
My design includes a QSYS system with the following components:
JTAG to Avalon Master Bridge
Altera I2C Slave to Avalon MM Bridge
3 x Altera PIO (at addresses 0x0 to 0x0f, 0x10 to 0x1f, 0x20 to 0x2f)
4 x quadrature encoder counter (my designs; at 0x30 to 33, 0x34 to 0x37, 0x38 to 0x3b, 0x3c to 0x3f)
I can go into System Console and execute read and write TCL commands through the JTAG port and all the peripherals operate properly and are located at their correct addresses. I have four fixed bytes at addresses 0x00-0x03 and they show up only at addresses 0x00-0x03, as expected. When controlled through the I2C port, I see the same fixed bytes at address 0x00-0x03, but I also see them repeated every 0x10 addresses (at 0x10-0x13, 0x20-23, etc...). I can't access or control any other peripherals. [ I am using the linux i2cget and i2cset commands ] I can see the correct address being sent using an oscilloscope.The I2C signals look clean. I am using the I2C Slave in 8-bit address mode with no address bit stealing. I am using Quartus distribution 17.0.2 Build 602. The device is a 10M02SCU169I7G. Thank you in advance.