cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

dawa_2529456
Contributor

Dear Sir,

My CX3 board can connect different camera head board(different image sensor), I have to write unique camera driver for all of them, but it is difficult to integrate them all together into one firmware. CX3 firmware shall be programmed specifically while a specific camera head is attached. it is not convenient for my customer.

So, I have to use usb-boot to download a specific firmware into internal SRAM and re-enumerate  it as an UVC device.

rom boot loader is not suitable for my case, I will use 2-stage boot loader( provided by SDK 1.33 ) to finish this task by adding image sensor probe code.

1:  add sensor probe code 

second-stage boot loader will read chip-id from image sensor register by i2c bus

2: add new vendor request for reading image sensor TYPE

3: get img file from usb host and download them into internal SRAM

4:  jump xx_ ENTRY address

APP down loader  on host:

1: read sensor TYPE by vendor request cmd

2: download the specific .img file to CX3 internal SRAM

3: send JUMP cmd to 2-stage boot loader

4: UVC device will be found

Is it reasonable and practicable ?

Best regards.

0 Likes
1 Solution
SrinathS_16
Moderator
Moderator

Hello,

- Both the suggested methods are feasible.

- In the first method, the jump to the start of the code need not be sent by the host code. Instead, it should be performed in the FX3 firmware.

- In the second method, the host application can monitor the attachment of a new device using an event handler and can download the IMG file based on the PID of the device.

Please let me know if you need further information.

Best regards,

Srinath S

View solution in original post

0 Likes
2 Replies
dawa_2529456
Contributor

Dear  Sir,

I will show another simple method to distinguish the attached camera head:

1: add camera probe code in 2-stage bootloader

2: download 2-stage bootloader into internal SRAM

3: 2-stage bootloader read image sensor ID before enumeration

4: replace PID by image sensor ID

5: feedback this new PID while enumerate

6: wait for specific firmware image file download process

//////////////////////

App on USB host will get this PID and download a specific firmware img to drive the dedicated camera head.

Is it practicable?

Best regards.

0 Likes
SrinathS_16
Moderator
Moderator

Hello,

- Both the suggested methods are feasible.

- In the first method, the jump to the start of the code need not be sent by the host code. Instead, it should be performed in the FX3 firmware.

- In the second method, the host application can monitor the attachment of a new device using an event handler and can download the IMG file based on the PID of the device.

Please let me know if you need further information.

Best regards,

Srinath S

View solution in original post

0 Likes