I am unable to read the registers on the Audio Code (SSM2603) on the Zybo board.
I have followed all the example code I can find (Zybo_base_system). I have built the hardware in Vivado and it all builds with no errors.
In Xilinx SDK I then create a modified C program using the code "audio_demo.c" as a reference.
The C code compiles with no errors and I load the hardware and software on the Zybo. I then use an external logic analyzer to probe the i2c signal to verify it.
All the write signals match up with the i2c format outlined in the Audio Code (SSM2603) datasheet. No errors are reported it the software either.
The problem happens when I perform a read (I want to read the Audio Code (SSM2603) register values). Using the external logic analyzer again I can see that the first part of the i2c signal matches but if fails after the second device write (no ACK is given). It then returns a value of 00010111b (or 23 in decimal). No matter what register I try and read it returns 00010111b (or 23 in decimal) with no ACK.
I have done everything I can think of to solve the problem but with no luck.
Question
Lincoln
Hi All,
I am unable to read the registers on the Audio Code (SSM2603) on the Zybo board.
I have followed all the example code I can find (Zybo_base_system). I have built the hardware in Vivado and it all builds with no errors.
In Xilinx SDK I then create a modified C program using the code "audio_demo.c" as a reference.
The C code compiles with no errors and I load the hardware and software on the Zybo. I then use an external logic analyzer to probe the i2c signal to verify it.
All the write signals match up with the i2c format outlined in the Audio Code (SSM2603) datasheet. No errors are reported it the software either.
The problem happens when I perform a read (I want to read the Audio Code (SSM2603) register values). Using the external logic analyzer again I can see that the first part of the i2c signal matches but if fails after the second device write (no ACK is given). It then returns a value of 00010111b (or 23 in decimal). No matter what register I try and read it returns 00010111b (or 23 in decimal) with no ACK.
I have done everything I can think of to solve the problem but with no luck.
Any help would be great.
Thanks very much,
Lincoln
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.