Other Parts Discussed in Thread: USB2ANY, ALP
I have a custom imager that has parellel CMOS out, connected to a DS90UB933 serializer. I have the camera connected to a DS90UB954 EVM. I'm communicating with the EVM with the built-in USB2ANY interface and Analog LaunchPad.
I start by powering up the EVM without the camera attached. In the scripting window, I enter the following commands
board.WriteReg(0x0C, 0x02) - Disable RX port 0, enable port 1
board.WriteReg(0xF9, 0x61) - Set up direct access to RX1 control registers
board.WriteI2C(0x61, 0x6D, 0x05) - Set Rx1 for Raw12/50Mhz
If I connect the camera before configuring these settings, APL hangs and I'm unable to control anything.
Then I plug the camera into the RX1 port. The camera's status LED indicated the camera has booted and is working. Once connect, I get the following from in information tab in ALP:
The 'Current Port Status' for port RX1 looks right, 960bytes/line and 512 lines is correct for the imager. This make me think the forward data is being transmitted correctly. (I don't have a MIPI CSI2 device on my desk, so I haven't been able to look at the image itself.)
But there a couple weird things here as well.
- The RX0 port appears to have image data as well with nothing connected to RX0. (Sometime is shows no connection on RX0)
- The Partner information is incorrect
If I go back to the scripting tab and run
board.PollRxDevices(remote=0, silent=0)
Found deserializer DS90UB954, at address 0x60
0
board.PollTxDevices(portIndex=1, remote=1, silent=0)
FAILED polling for Transmitter I2C address
1
So I can find the Rx Device (954) but not the Tx Device (933).
If I try to force the back channel on, I get:
board.ReadI2C(0x61, 0x58) - Read BCC_CONFIG Register
0
board.WriteI2C(0x61, 0x58, 0x10) – Config Back Channel always on. I’ve also tried values of 0x80 and 0x90
board.ReadI2C(0x61, 0x58)
16
board.PollTxDevices(portIndex=1, remote=1, silent=0)
FAILED polling for Transmitter I2C address
1
board.ReadI2C(0x61, 0x58) - Back channel always on is reset by PollTxDevices call.
0
And same if I just try to read a register on the 933 (or try to read a reg on the other side of the link)
board.WriteI2C(0x61, 0x58, 0x80)
board.ReadI2C(0xB4, 0x0C)
0
hex(board.ReadI2C(0x61, 0x58))
'0x0'
I also tried to follow the directions in this document changing the registers for the 954 instead of the 914, also without any sign of communications.
Any suggestions on how to get that link working?
Thanks
Ethan