diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2019-12-05 17:35:40 +0900 |
---|---|---|
committer | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2019-12-09 11:46:03 +0900 |
commit | 0e685e6f99571e82dc9f7d245e84b9ede4b0cb84 (patch) | |
tree | ff749845c0ebda1c70f3346be81e50977478e1f1 /wiki | |
parent | fad61965b2d81b92e53f1c7182e2734c02dfb044 (diff) |
wiki: Porting MAXIM camera board
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Diffstat (limited to 'wiki')
18 files changed, 136 insertions, 0 deletions
diff --git a/wiki/Salvator-X_MAXIM_camera_board.wiki b/wiki/Salvator-X_MAXIM_camera_board.wiki new file mode 100644 index 0000000..d2ed221 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board.wiki @@ -0,0 +1,88 @@ +h1. Salvator-X MAXIM camera board + +| J18, J19 | J17, J9 | +| !Salvator-X_MAXIM_camera_board/MAXIM_img1.jpg! | !Salvator-X_MAXIM_camera_board/MAXIM_img2.jpg! | +| !Salvator-X_MAXIM_camera_board/MAXIM_img3.jpg! | !Salvator-X_MAXIM_camera_board/MAXIM_img4.jpg! | + +h1. 8ch Camera WorkAround + +{J1, J2, J3, J4} and {J5, J10, J12, J13} are connected to each MAX9271, but these will get *%{color:#0000ff}same base address%* (= 0x80) if *%{color:#0000ff}J19%* jumper was connected when boot time. see "vin camera board2":../../wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_20160606.xlsx +If this happen, MAX9286 can't control it correctly. Thus, we need to shift Power ON timing for MAX9271. see "Poer ON order (with 8ch WorkAround)" +This WorkAround is needed if you use each MAX9271 chip in the same time. + +h1. Power ON order (with 8ch WorkAround if needed) + +# Start Salvator-X and Camera Board with Powered OFF +# (Remove Power Jumper (J19)) +# Power on Salvator-X +# Power on Camera Board +# (Reapply Power Jumper (J19)) + +h1. Note + +* Reset +** both Salvator-X and Camera Board in the same time. Here, Camera board doesn't have reset button, thus Remove/Reapply power cable for it +* Power Cable +** We can use Salvator-X / Lager power for camera board +* Salvator board SW settings +** SW29 {ON, ON} => {OFF, OFF} +** see "quick setting guide":../../wiki/Salvator-X_MAXIM_camera_board/RCARH3_camera_quick_setting_20151201.xlsx + +h1. 8ch camera demo + +Morimoto is keeping 8ch camera demo, but can't attach it to this Wiki, because of its file size. +So, you need to contact to Renesas guy if you want to receive it. +For Renesas guy's information. You can get it from "here":https://renesasgroup-my.sharepoint.com/personal/kuninori_morimoto_gx_renesas_com/Documents/OSD2/Linux-NDA/2017-04-14-8ch_camera_Environment (From Renesas only), and use HDE for them. + +h1. VIN issue + +* On *R-Car H3 (ES2.0)*, HDMI input with 640x480@60H will be blackout +* On *R-Car M3 (ES1.x)*, when CSI40 module is used as 1-Lane or 2-Lane, VIN captures incorrect data. +** This bug was caused by the ECO modification of 4Lane highest bit rate input for M3W ES1.0. CSI40 Link module violated the interface protocol with VIN. So VIN was changed to delay 1 cycle capturing timing to solve above issue because CSI40 Link holds its output 4 bytes data for 1 cycle. However, it was not true when CSI40-Phy used 1- or 2-Lane connection. This phenomenon occurs only in M3W(ES1.0 and ES1.1). +** "detail 1":../../wiki/Salvator-X_MAXIM_camera_board/R-CarM3W_CSI2_VIN_Interface_Bug_20170410.pptx +** "detail 2":../../wiki/Salvator-X_MAXIM_camera_board/Gen3_limit_RCM3W_CSI2_VIN_IF_BUG.PPT (English page p10 - p14) + +h1. Maxim board power reset automation + +We can adapt the MAXIM board to be reset at the same time as the Salvator-X using an Arduino, and powering the Arduino from the Salvator-X + +* Use a molex connector to take power from the Salvator-X CN7:ATA_PWR (red is 5v, black is GND) +* Use a data pin from the arduino connected to the center pin of J17 (The example code uses D6 on the arduino) +* Connect the Data pin connection with a *pull down* resistor. around 2kΩ should be fine. +* Use the GSML-Control.ino software delay loop to control the EN signal on the MAX16951AUE/V+ (U23) via J17 + +Hardware used: +* https://store.arduino.cc/usa/arduino-nano +** A clone is suitable (Arduino original ~ $25, Clone ~ $3, I used a clone) +* Breadboard +* 1.9k Ω resistor +* Molex connector ("I used one like this":https://www.uk.insight.com/en-gb/productinfo/system-and-power-cables/0002646789-00000001?gclid=CjwKCAjwzMbLBRBzEiwAfFz4geenUnvYI4d3sz0A_cvqo-CoReOwop3T_CzAVBbOsLuFZPcTEQyGnhoClbgQAvD_BwE) + +Software Used: +* Arduino code available at "GSML-Control.ino":../../wiki/Salvator-X_MAXIM_camera_board/GSML-Control.ino + +Overview: +* "Images of the Arduino configuration":https://photos.app.goo.gl/dpFk0CzAZS5G0Fec2 + + +h1. *%{color:#ff0000}NDA information%* + +*%{color:#ff0000}CAUTION!!%* + +"MAX9286":../../wiki/Salvator-X_MAXIM_camera_board/MAX9286-DS-1.Renesas.pdf +"MAX9286 programing guide":../../wiki/Salvator-X_MAXIM_camera_board/MAX9286_Programming_Guide_2_10.pdf +"board schematic":../../wiki/Salvator-X_MAXIM_camera_board/R-CAR_H3_Rev_P2.pdf +"R-CARH3_Rev P2_BOM":../../wiki/Salvator-X_MAXIM_camera_board/R-CARH3_Rev_P2_BOM.XLSX +"RDACM20 camera schematic":../../wiki/Salvator-X_MAXIM_camera_board/RDACM20_SCHEMATIC_DIAGRAM-20151110.pdf +"RDAMC20 camera datasheet":../../wiki/Salvator-X_MAXIM_camera_board/MC_RDACM20-01_DataSheet_02.pdf +"OV10635 datasheet":../../wiki/Salvator-X_MAXIM_camera_board/OV10635-OV10135-Product-Specification-a-CSP_Version-2-4_Renesas-Electronics.pdf + +h1. datasheet / off-tree-driver + +"OV10635 camera driver":http://git.ti.com/android-sdk/kernel-omap/blobs/eb15176df1e988393d12a2b8c2becd30078edbd8/drivers/media/i2c/ov10635.c +"Ov10635 camera driver":https://patchwork.linuxtv.org/patch/18768/ +"MAX9286 driver":https://github.com/CogentEmbedded/meta-rcar/blob/v2.12.0/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0040-H3-MAX9286-TI964-support-add-10635-10640-cameras.patch +"MAX9271 datasheet":http://datasheets.maximintegrated.com/en/ds/MAX9271.pdf +"quick setting guide":../../wiki/Salvator-X_MAXIM_camera_board/RCARH3_camera_quick_setting_20151201.xlsx +"vin camera board1":../../wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_1.xlsx +"vin camera board2":../../wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_20160606.xlsx diff --git a/wiki/Salvator-X_MAXIM_camera_board/GSML-Control.ino b/wiki/Salvator-X_MAXIM_camera_board/GSML-Control.ino new file mode 100644 index 0000000..1837025 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/GSML-Control.ino @@ -0,0 +1,48 @@ + + +// GMSL Configuration +const int MAX16951_EN = 6; + +void set_EN(int onoff) +{ + digitalWrite(MAX16951_EN, onoff); + + if (onoff) + Serial.print("Pin High\n"); + else + Serial.print("Pin Low\n"); +} + +void setup() { + pinMode(MAX16951_EN, OUTPUT); + set_EN(LOW); + + Serial.begin(115200); + Serial.print("\n"); + //Serial.setDebugOutput(true); +} + +void loop() { + int i; + // configure power-on state before delay + + set_EN(LOW); + + // blink a bit + for (i=0; i<10; i++) { + digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) + delay(50); // wait for 50 ms + digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW + delay(50); // wait for 50 ms + } + + // configure final state after delay + set_EN(HIGH); + + digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) + + while(1) { + delay(1000); + // Serial.print("Spinning\n"); + } +} diff --git a/wiki/Salvator-X_MAXIM_camera_board/Gen3_limit_RCM3W_CSI2_VIN_IF_BUG.PPT b/wiki/Salvator-X_MAXIM_camera_board/Gen3_limit_RCM3W_CSI2_VIN_IF_BUG.PPT Binary files differnew file mode 100644 index 0000000..02b86cf --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/Gen3_limit_RCM3W_CSI2_VIN_IF_BUG.PPT diff --git a/wiki/Salvator-X_MAXIM_camera_board/MAX9286-DS-1.Renesas.pdf b/wiki/Salvator-X_MAXIM_camera_board/MAX9286-DS-1.Renesas.pdf Binary files differnew file mode 100644 index 0000000..213d43e --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/MAX9286-DS-1.Renesas.pdf diff --git a/wiki/Salvator-X_MAXIM_camera_board/MAX9286_Programming_Guide_2_10.pdf b/wiki/Salvator-X_MAXIM_camera_board/MAX9286_Programming_Guide_2_10.pdf Binary files differnew file mode 100644 index 0000000..cb3f373 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/MAX9286_Programming_Guide_2_10.pdf diff --git a/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img1.jpg b/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img1.jpg Binary files differnew file mode 100644 index 0000000..913e2c9 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img1.jpg diff --git a/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img2.jpg b/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img2.jpg Binary files differnew file mode 100644 index 0000000..689d393 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img2.jpg diff --git a/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img3.jpg b/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img3.jpg Binary files differnew file mode 100644 index 0000000..8929877 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img3.jpg diff --git a/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img4.jpg b/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img4.jpg Binary files differnew file mode 100644 index 0000000..1c2841c --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/MAXIM_img4.jpg diff --git a/wiki/Salvator-X_MAXIM_camera_board/MC_RDACM20-01_DataSheet_02.pdf b/wiki/Salvator-X_MAXIM_camera_board/MC_RDACM20-01_DataSheet_02.pdf Binary files differnew file mode 100644 index 0000000..20dd7f2 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/MC_RDACM20-01_DataSheet_02.pdf diff --git a/wiki/Salvator-X_MAXIM_camera_board/OV10635-OV10135-Product-Specification-a-CSP_Version-2-4_Renesas-Electronics.pdf b/wiki/Salvator-X_MAXIM_camera_board/OV10635-OV10135-Product-Specification-a-CSP_Version-2-4_Renesas-Electronics.pdf Binary files differnew file mode 100644 index 0000000..e1563c9 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/OV10635-OV10135-Product-Specification-a-CSP_Version-2-4_Renesas-Electronics.pdf diff --git a/wiki/Salvator-X_MAXIM_camera_board/R-CARH3_Rev_P2_BOM.XLSX b/wiki/Salvator-X_MAXIM_camera_board/R-CARH3_Rev_P2_BOM.XLSX Binary files differnew file mode 100644 index 0000000..ac71da6 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/R-CARH3_Rev_P2_BOM.XLSX diff --git a/wiki/Salvator-X_MAXIM_camera_board/R-CAR_H3_Rev_P2.pdf b/wiki/Salvator-X_MAXIM_camera_board/R-CAR_H3_Rev_P2.pdf Binary files differnew file mode 100644 index 0000000..9bc6300 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/R-CAR_H3_Rev_P2.pdf diff --git a/wiki/Salvator-X_MAXIM_camera_board/R-CarM3W_CSI2_VIN_Interface_Bug_20170410.pptx b/wiki/Salvator-X_MAXIM_camera_board/R-CarM3W_CSI2_VIN_Interface_Bug_20170410.pptx Binary files differnew file mode 100644 index 0000000..216a36a --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/R-CarM3W_CSI2_VIN_Interface_Bug_20170410.pptx diff --git a/wiki/Salvator-X_MAXIM_camera_board/RCARH3_camera_quick_setting_20151201.xlsx b/wiki/Salvator-X_MAXIM_camera_board/RCARH3_camera_quick_setting_20151201.xlsx Binary files differnew file mode 100644 index 0000000..0702d89 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/RCARH3_camera_quick_setting_20151201.xlsx diff --git a/wiki/Salvator-X_MAXIM_camera_board/RDACM20_SCHEMATIC_DIAGRAM-20151110.pdf b/wiki/Salvator-X_MAXIM_camera_board/RDACM20_SCHEMATIC_DIAGRAM-20151110.pdf Binary files differnew file mode 100644 index 0000000..f8e2724 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/RDACM20_SCHEMATIC_DIAGRAM-20151110.pdf diff --git a/wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_1.xlsx b/wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_1.xlsx Binary files differnew file mode 100644 index 0000000..ee64843 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_1.xlsx diff --git a/wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_20160606.xlsx b/wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_20160606.xlsx Binary files differnew file mode 100644 index 0000000..0a6d654 --- /dev/null +++ b/wiki/Salvator-X_MAXIM_camera_board/vin_camera_board_20160606.xlsx |