SPI register read debug

Many logic level translators have limitations and might not be compatible even though the signals are getting translated. If you test your system and code with an 84MHz/3.3V Arduino DUE, you could eliminate the logic level translators.

ameenuvm:
It is custom board and working properly.

Post picture of your custom board. How have you checked its functionality? Now, you want to interface with which Arduino?

Hi,

Yes. it is working and tested successfully. The issue is only to write/Read the value to/From the register.
Here As shown in picture, GSPI interface are connected to level translator and then Arduino UNO.

This is HDMI to SDI conversion. Using ADV7611, parallel data from HDMI is connected to GS2972. That is the application. We are getting video data from SDI
Still, I think The issue is on GSPI interface to write value to register
Do you have any suggestion?

what are those grey wires? feels pretty messy and long unshielded wires for communication at 6MHz (if that's what they are for)

@OP

Use sound mode of AVM/DVM and check the continuity of the SPI lines between ATmega32P's Pins and the 5V-side of level sifter at the GS2972 side. Also check the continuity of GND connection between GS2972 pin and ATmega328P's pin.

Do the above between GS2972 pins and the 3.3V side of level sifter.

You need to be sure, through measurements, that there are no problems at the hardware side.

4 grey wires are SPI wires and are taken to connect with Arduino UNO. Green wire is connecting ground to red wire from Arduino.

I have confirmed continuity of wires from Arduino to 5V side of GS2972.
I am sure that Hardware side is pretty much good. But I am not sure about the code.

The board has Atmege2560 and SPI pins are connected to this 5V side of Level translator. Can we debug and program using on-board Atmega2560 MCU so that the wires can be removed.?

Do you mean that the GS2972 Custom Board has an on-board ATmega2650 MCU and the SPI-pins of this MCU are connected with the 5V side of the on-board level sifter?

Can you tell us the pupose of this MCU?

To me here lies the interfacing problem -- the SPI connection is being made between on-board ATmega2650 MCU and your Arduino.

If it would be my project, I would buy another custom board, cut the SPI PCB tracks between on-board ATmega2650 and the 5V side of level sifter. After that I would solder short wires at the 5V side of level sifter when the other sides of the wires would go to the Arduino UNO/MEGA/NANO side.

However, the above approach will work if the PCB is a two-layer board. For multi-layer board, do not try my prescribed method; because, the lines could not be visible.

Yes, Exactly

This PCB is made by us. This MCU has not only GS2972, but also other peripherals to controls.

Yes, That was we did as shown in that picture. we removed the jumper which is connecting between 5V side of level shifter and on-board Atmega2560, and connected with external Arduino UNO. Then programed and tried to communicate with GS2972 through level translator. But it did not work here in my case.

We tried the same with GS2972 eval board, But it did not work in this case also. We are getting same value(0xFFFFh) that is on custom board. Therefore i think the issue is on code.

May i ask you that can we debug using IAR or something through on-board Atmega2560 MCU?

Hi Al,

I interacted with SEMTECH to know why we are not able to do the writing and reading the concerned registers.
Their reply was as follows:
"Please note that GSPI is not same as SPI Interface.
You cannot use the SPI interface on the Arduino board as is, you need to use MCU GPIOs for this interface."
Also, they have attached the flow chart and Application note to implement GSPI.(Attached in first post).

How can we create GSPI library for that? Do you have any insights?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.