Imaging solutions with Free Software & Open Hardware

Who's online

There are currently 0 users online.

12/27/13 [EclipseVDT] By Oleg Dzhimiev: initial commit - cloned from sf.net/projects/excelsior-vdt

Elphel GIT logs - Fri, 12/27/2013 - 18:58
Oleg Dzhimiev committed changes to the Elphel GIT project EclipseVDT:
initial commit - cloned from sf.net/projects/excelsior-vdt

Eclipse/ExDT/VDT plugins

Elphel Wiki - Thu, 12/26/2013 - 18:49

Where to Get?:

← Older revision Revision as of 01:49, 27 December 2013 Line 10: Line 10: == Where to Get? == == Where to Get? == The first more or less functional version is available at  SoureForge: The first more or less functional version is available at  SoureForge: -[https://sourceforge.net/project/showfiles.php?group_id=105686&package_id=184538 Eclipse/ExDT/VDT sources, work files and documentation]+[http://sourceforge.net/p/excelsior-vdt/wiki/Home/ Eclipse/ExDT/VDT sources, work files and documentation] == Invitation for Discussion == == Invitation for Discussion == You are welcome to try the product and to discuss all issues of its concepts, current state and usage techniques with its developers! You are welcome to try the product and to discuss all issues of its concepts, current state and usage techniques with its developers! Do it right here, in discussion section! Do it right here, in discussion section! Andrey.filippov

[eyesis4pi_gui] By Oleg Dzhimiev: 1.fixed Parameters page links not matching the camera rows

Elphel GIT logs - Mon, 12/23/2013 - 18:46
Oleg Dzhimiev committed changes to the Elphel GIT project eyesis4pi_gui:
1.fixed Parameters page links not matching the camera rows

[eyesis4pi_gui] By Oleg Dzhimiev: fracpix default value changed to 90%

Elphel GIT logs - Mon, 12/23/2013 - 17:49
Oleg Dzhimiev committed changes to the Elphel GIT project eyesis4pi_gui:
fracpix default value changed to 90%

[eyesis4pi_gui] By Oleg Dzhimiev: 1. saving recording mode: pc or camogm 2. resyncing after boot

Elphel GIT logs - Mon, 12/23/2013 - 16:50
Oleg Dzhimiev committed changes to the Elphel GIT project eyesis4pi_gui:
1. saving recording mode: pc or camogm 2. resyncing after boot

[meta-elphel393] By Andrey Filippov: adding data for the elphel393_pwr driver

Elphel GIT logs - Sun, 12/22/2013 - 01:41
Andrey Filippov committed changes to the Elphel GIT project meta-elphel393:
adding data for the elphel393_pwr driver

[meta-elphel393] By Andrey Filippov: including CONFIG_ELPHEL393 in defconfig

Elphel GIT logs - Fri, 12/20/2013 - 23:01
Andrey Filippov committed changes to the Elphel GIT project meta-elphel393:
including CONFIG_ELPHEL393 in defconfig

[meta-elphel393] By Andrey Filippov: adding drivers/elphel

Elphel GIT logs - Fri, 12/20/2013 - 22:37
Andrey Filippov committed changes to the Elphel GIT project meta-elphel393:
adding drivers/elphel

[meta-elphel393] By Oleg Dzhimiev: added support for new folders

Elphel GIT logs - Fri, 12/20/2013 - 17:34
Oleg Dzhimiev committed changes to the Elphel GIT project meta-elphel393:
added support for new folders

[meta-elphel393] By Andrey Filippov: Adding support for the ltc3589

Elphel GIT logs - Thu, 12/19/2013 - 21:59
Andrey Filippov committed changes to the Elphel GIT project meta-elphel393:
Adding support for the ltc3589

[meta-elphel393] By Oleg Dzhimiev: Merge branch 'master' of ssh://git.code.sf.net/p/elphel/meta-elphel393

Elphel GIT logs - Wed, 12/18/2013 - 20:49
Oleg Dzhimiev committed changes to the Elphel GIT project meta-elphel393:
Merge branch 'master' of ssh://git.code.sf.net/p/elphel/meta-elphel393

[meta-elphel393] By Oleg Dzhimiev: special developer's folder with sources safe from cleaning

Elphel GIT logs - Wed, 12/18/2013 - 20:37
Oleg Dzhimiev committed changes to the Elphel GIT project meta-elphel393:
special developer's folder with sources safe from cleaning

NC393 development progress – the initial software

Elphel Development Blog - Tue, 12/17/2013 - 00:41

The software used in the previous Elphel cameras was based on the GNU/Linux distribution supported By Axis Communications for their ETRAX processors. Of course it was heavily modified, we developed new code and ported many applications to run in the camera. Over the years we worked on making it easier to install, use and update, provided customized Live GNU/Linux distributions so those with zero experience with this operating system can still use the camera development software. Originally we used Knoppix-based CD, then DVD, then switched to Kubuntu when it became available and stable. And DVDs were eventually replaced by the USB flash drives.

Knoppix and Kubuntu are for the host computer, the cameras themselves used the same non-standard, mostly home-brewed distribution, that became more and more difficult to maintain especially when Axis abandoned their processors. So even during the first attempt to move to a new platform we really hoped to be able to use modern distribution for the embedded systems. And get rid of the nightmare of porting ourselves such applications as PHP and then doing mostly the same all over again when the new revisions became available. To be able to use the latest Linux kernel and not to spend time modifying the IDE driver myself to provide support for the large block hard drives when most manufacturers abandoned 512 byte ones – 2.6.19 kernel does not have it and there is not easy to use the later drivers.

Oleg is now working on adapting the OpenEmbedded distribution and the work flow for the new camera distribution, and while embracing the power of “bitbaking” we are trying to preserve the features we implemented in the NC353 camera software. And while the OpenEmbedded-based Yocto Project is for embedded system developers, we need the software for Elphel camera users – software that can be easily installed by a single script (at least on a particular GNU/Linux distribution) or come pre-installed on a flash media. It should work “out of the box” for the users with no prior GNU/Linux experience – most of the camera users have different OS on their computers. We would also like to keep what we believe has an important practical use – a feature behind our /*source is inside*/ logo on the cameras. Each camera keeps the source code of the modifications archived in the internal flash file system, so running the downloaded from the camera script by the user results in virtually identical binary image, even if some software in the camera was custom-modified from the official (supported through Elphel git repositories) distribution.

There is still a lot left in the OE that we do not fully understand, but we are trying to do it right from the very beginning, understanding how important it is from our experience of making some major re-organizing code for the previous products. And Oleg is doing a good progress, there is a wiki page and Git repositories: meta-elphel393, meta-ezynq that document our work on this.

I did not succumb to a temptation to start working on the FPGA code immediately – there are some new ideas we want to try as well as some left for a future major “revolution” when updating the existing cameras FPGA code for the new sensors and applications. Anyway – we are not under pressure to demonstrate images from the new camera and we are confident that this job will be done in the expected time and will have the NC393 operational by the second half of the 2014. And the time is working for us – there are many people working now with Xilinx Zynq, and the active development weeds out bugs at a high rate. Failing to upgrade to the latest version already took a whole week of development time – the bug in the Xilinx Ethernet driver turned out to be already fixed.

While Oleg was immersing himself into the OpenEmbedded I was looking into the kernel driver development, what changed since the 2.6.19 era I dealt with when working on the previous camera software. There turned out to be quite a few changes and I decided to learn the new features working on a simpler drivers that we needed for the new boards. First of all I was pleased to find out that of the 7 of the I²C chips used on the 10393+10389 boards 3 were supported by the available kernel drivers – had just to specify them in the Device Tree and the supercap-powered real time clock was immediately recognized by the system – so did the temperature sensor/EEPOM and GPIO ports. Of the remaining ones with no available drivers the most challenging turned out to be SI5338 (clock generator) and I tried to add support for this device, using sysfs to control it, Device Tree (DT) to initialize it, and dynamic debug to facilitate development – none of these interfaces were used in the previous cameras.

The SI5338 had all the needed documentation available on the manufacturer’s web site, ready for download. But the device itself turned out not to be to so easy to control, and the recommended procedure included generation of the register map with the ClockBuilder software (for MS Windows), then loading the data to the device registers and initializing it with rather simple code, for which Silicon Labs provides the source. That did not seem very convenient so I tried to implement the driver that can be controlled at run time directly, calculating the particular register values from the high-level data on the fly. Most features are now supported in the si5338.c driver, it is also possible to load the register data generated by the ClockBuilder software (it is possible to run it with Wine) after converting the file with the Python script. It took me more time than I expected to develop this driver to the usable state, but I hope this work will be useful for others too. SI5338 is an excellent device that deserves better support in the Linux kernel. And having the driver working – it eliminates the last remaining obstacle to start working on the FPGA code. Or one of the last remaining – there are still a few minor ones left.

Si5338 driver

Elphel Wiki - Mon, 12/16/2013 - 14:50

Sample configuration of the si5338 using Device Tree:

← Older revision Revision as of 21:50, 16 December 2013 (4 intermediate revisions not shown)Line 5: Line 5: ==Reference Documentation== ==Reference Documentation== This driver is developed using very good and detailed documentation provided by the chip manufacturer: This driver is developed using very good and detailed documentation provided by the chip manufacturer: -[http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5338-RM.pdf] - detailed description of the device registers+[http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5338-RM.pdf Si5338-RM.pdf] - detailed description of the device registers -[http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5338.pdf] - overall chip documentation including configuration procedure+[http://www.silabs.com/Support%20Documents/TechnicalDocs/Si5338.pdf Si5338.pdf] - overall chip documentation including configuration procedure  +This documentation is strongly recommended to use when interfacing si5338.c driver.  +==Sample configuration of the si5338 using shell commands/script==  + SI5338="/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070" # device sysfs root directory in elphel393 camera  + echo "0" > $SI5338/pre_init_clear # prepare for configuration, clear all input/output routing  + echo "25000000" > $SI5338/input/in_frequency3 # set input clock 25.0 MHz applied to a single-ended input "IN3"  + echo "150000000" >$SI5338/pll/pll_by_out_int # find integer dividers to set PLL for generation of the 150MHz with low jitter, setup PLL analog parameters  + echo "150000000" >$SI5338/output_clocks/out3_freq_int # route output3 to the MultiSynth divider MS3, set the MS3 and output divider  + echo "15000000" >$SI5338/output_clocks/out2_freq_fract # set 15MHz output frequency for channel 0, enable fractional divider  + echo "in3/2/32" >$SI5338/output_drivers/out2_route # route output2 to the in3 input, bypassing PLL, use divider by 2 in the input stage and divider by 32 in the output stage  + echo "1 2" > $SI5338/output_drivers/2V5_LVPECL # set outputs 1 and 2 to 2.5V LVPECL differential standard  + echo "3" > $SI5338/output_drivers/1V8_LVDS # set output 3 to 1.8V LVDS differential standard  + echo "0" > $SI5338/output_drivers/1V5_HSTL_A+ # set output 3 to 1.5V HSTL single-ended standard, no inversion on "A" out, disabled "B" output  + echo "0 1 2 3" > $SI5338/output_drivers/dis_hi-z # set all outputs to be in hi-Z state when disabled  + echo "1 50 31500"> $SI5338/spread_spectrum/ss3_values /* Set spread spectrum for channel3 : enabled, 0.5%, 31.5KHz */  + echo "1 500 31500"> $SI5338/spread_spectrum/ss0_values /* Set maximal spread spectrum for channel0 : enabled, 5%, 31.5KHz */  + echo "0" > $SI5338/post_init # configure and calibrate PLL, initialize device.  +As long as the PLL frequency is not changed it is now possible to modify other parameters (output routes, output frequencies, spread spectrum) "on the fly" without re-initialization of the device. If programming was performed by loading complete register map and later modifications are required, input frequency and spread spectrum parameters need to be specified - they are stored in the driver variables, not in the device registers.  +   +==Sample configuration of the si5338 using Device Tree==  + si5338@70 {  + compatible = "sil,si5338";  + reg = <0x70>;  + si5338,init="always"; /* initialize PLL, wait for lock. Other option is 'if off' */  + /* low-level masked register writes, may be used to load frequency plan */  + /*si5338,configuration_data=< 0x1ffcf0 >;*/ /* just for testing: write data 0xfc with write enable mask 0xf0 to register 0x01f */  + si5338,in_frequency3= < 25000000>; /* 25MHz on input 3 (other inputs are '12",'4','56' and '12xo' */  + /* PLL may be set either directly (pll_freq_fract,pll_freq_int) or to match some output (pll_by_out_fract, pll_by_out_int)  + * _int suffix forces to find integer divisors, _fract - allows fractional ones */  + si5338,pll_by_out_int=<150000000>;  /* 150Mhz May have 3 values: integer, nominator and denominator */  + si5338,out3_freq_int= <150000000>;  /* 150Mhz. May have 3 values: integer, nominator and denominator */  + si5338,out2_select= "in3/2/32";  /* connect out2 to IN3, divided by 2 (input stage) and then by 32 (output stage)*/  + si5338,2V5_LVPECL=  <1 2>; /* set output standard for channels 1 and 2 */  + si5338,1V5_HSTL_A+= <0>;  /* set output standard for channel 0, only A output is used (noninverted) */  + si5338,1V8_LVDS=    <3>;  + /* Disabled state for outputs:  */  + si5338,dis_hi-z=    <0 1 2 3>; /* Disabled state for listed outputs, also possible: "dis_hi-z","dis_low","dis_high","dis_always_on" */  + si5338,output_en=  < 3>; /* Which outputs should be initially enabled */  + si5338,spread_spectrum_3= <1 50 31500>; /* Set spread spectrum for channel3 : enabled, 0.5%, 31.5KHz */  + si5338,out0_freq_int= <15000000>;  /* 15Mhz to output 0 */  + si5338,spread_spectrum_0= <1 500 31500>; /* Set spread spectrum for channel0 : enabled, 5%, 31.5KHz - high value, for testing */  + }; ==sysfs interface == ==sysfs interface == Line 402: Line 443:   140: 00 01 00 00 90 31 00 00 01 00 00 00 00 00 00 01   140: 00 01 00 00 90 31 00 00 01 00 00 00 00 00 00 01   150: 00 00 00 00 60 4a 20 00 35 1b 00 00   150: 00 00 00 00 60 4a 20 00 35 1b 00 00 -====raw/hex_adwe (read only) ====+====raw/hex_adwe==== Setting up a single or multiple registers with mask. Each item 0xAAADDMM is a hex number (with optional "0x" prefix), combining register 9 bit address AAA (shifted left by 16 bits), 8-bit register data DD (shifted left by 8 bits) and 8-bit write enable mask MM where "1" enables modification, "0" - keeps the old value. , can be used to load full register map generated by external software: Setting up a single or multiple registers with mask. Each item 0xAAADDMM is a hex number (with optional "0x" prefix), combining register 9 bit address AAA (shifted left by 16 bits), 8-bit register data DD (shifted left by 8 bits) and 8-bit write enable mask MM where "1" enables modification, "0" - keeps the old value. , can be used to load full register map generated by external software:   echo "0x6081d 0x1b7080 0x1c0bff 0x1d08ff 0x1eb0ff 0x1fe3ff 0x20e3ff 0x21e3ff \   echo "0x6081d 0x1b7080 0x1c0bff 0x1d08ff 0x1eb0ff 0x1fe3ff 0x20e3ff 0x21e3ff \ Line 434: Line 475:   0x15100ff 0x15200ff 0x15300ff 0x15490ff 0x15531ff 0x15600ff 0x15700ff 0x15801ff \   0x15100ff 0x15200ff 0x15300ff 0x15490ff 0x15531ff 0x15600ff 0x15700ff 0x15801ff \   0x15900ff 0x15a00ff 0x15b000f" > /sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070/raw/hex_adwe   0x15900ff 0x15a00ff 0x15b000f" > /sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070/raw/hex_adwe -  Reading this node outputs current register data in the same format, using masks specified in the Reference Manual. Reading this node outputs current register data in the same format, using masks specified in the Reference Manual.  + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# cat raw/hex_adwe  + 0x6001d 0x1b7080 0x1c0bff 0x1d08ff 0x1ea0ff 0x1fc0ff 0x20e3ff 0x21e3ff  + 0x22c0ff 0x2397ff 0x24011f 0x25041f 0x26041f 0x27061f 0x281fff 0x29427f  + 0x2a243f 0x2dc5ff 0x2e01ff 0x2f143f 0x3038ff 0x3180ff 0x32c4ff 0x3307ff  + 0x3414ff 0x3500ff 0x3653ff 0x3700ff 0x3800ff 0x3900ff 0x3a00ff 0x3b01ff  + 0x3c00ff 0x3d00ff 0x3e003f 0x3f10ff 0x4000ff 0x4100ff 0x4200ff 0x4300ff  + 0x4400ff 0x4500ff 0x4600ff 0x4700ff 0x4800ff 0x49003f 0x4a10ff 0x4b00ff  + 0x4c00ff 0x4d00ff 0x4e00ff 0x4f00ff 0x5000ff 0x5100ff 0x5200ff 0x5300ff  + 0x54003f 0x5514ff 0x5680ff 0x5706ff 0x5800ff 0x5900ff 0x5a00ff 0x5b00ff  + 0x5c01ff 0x5d00ff 0x5e00ff 0x5f003f 0x6100ff 0x6231ff 0x6300ff 0x6400ff  + 0x6500ff 0x6600ff 0x6701ff 0x6800ff 0x6900ff 0x6a80bf 0x6b00ff 0x6c00ff  + 0x6d00ff 0x6e00ff 0x6f00ff 0x7000ff 0x7100ff 0x7200ff 0x7300ff 0x7480ff  + 0x7500ff 0x7600ff 0x7700ff 0x7800ff 0x7900ff 0x7a00ff 0x7b00ff 0x7c00ff  + 0x7d00ff 0x7e00ff 0x7f00ff 0x8000ff 0x81000f 0x82000f 0x8300ff 0x8400ff  + 0x8500ff 0x8600ff 0x8700ff 0x8800ff 0x8900ff 0x8a00ff 0x8b00ff 0x8c00ff  + 0x8d00ff 0x8e00ff 0x8f00ff 0x9000ff 0x9800ff 0x9900ff 0x9a00ff 0x9b00ff  + 0x9c00ff 0x9d00ff 0x9e000f 0x9f000f 0xa000ff 0xa100ff 0xa200ff 0xa300ff  + 0xa400ff 0xa500ff 0xa600ff 0xa700ff 0xa800ff 0xa900ff 0xaa00ff 0xab00ff  + 0xac00ff 0xad00ff 0xae00ff 0xaf00ff 0xb000ff 0xb100ff 0xb200ff 0xb300ff  + 0xb400ff 0xb5000f 0xb600ff 0xb700ff 0xb800ff 0xb900ff 0xba00ff 0xbb00ff  + 0xbc00ff 0xbd00ff 0xbe00ff 0xbf00ff 0xc000ff 0xc100ff 0xc200ff 0xc300ff  + 0xc400ff 0xc500ff 0xc600ff 0xc700ff 0xc800ff 0xc900ff 0xca00ff 0xcb000f  + 0xcc00ff 0xcd00ff 0xce00ff 0xcf00ff 0xd000ff 0xd100ff 0xd200ff 0xd300ff  + 0xd400ff 0xd500ff 0xd600ff 0xd700ff 0xd800ff 0xd900ff 0xf20002 0x11f01ff  + 0x12000ff 0x12100ff 0x12200ff 0x12300ff 0x12470ff 0x12507ff 0x1266cff 0x12700ff  + 0x12885ff 0x12900ff 0x12a04ff 0x12b000f 0x12f00ff 0x13000ff 0x13101ff 0x13200ff  + 0x13300ff 0x13490ff 0x13531ff 0x13600ff 0x13700ff 0x13801ff 0x13900ff 0x13a00ff  + 0x13b000f 0x13f00ff 0x14000ff 0x14101ff 0x14200ff 0x14300ff 0x14490ff 0x14531ff  + 0x14600ff 0x14700ff 0x14801ff 0x14900ff 0x14a00ff 0x14b000f 0x14f01ff 0x15000ff  + 0x15100ff 0x15200ff 0x15300ff 0x15460ff 0x1554aff 0x15620ff 0x15700ff 0x15835ff  + 0x1591bff 0x15a00ff 0x15b000f  +====raw/invalidate_cache====  +The driver caches the register data except for the volatile registers (like status register) to reduce number of i2c data sent to and received from the device. For debugging purposes (maybe some of the registers can change that are not specified as being volatile in the driver), there is an explicit command to invalidate the current cache and force driver to read actual device registers next time.  + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# echo "0" > raw/invalidate_cache  +Driver support dynamic debug, it can be activated with teh following command:  + echo "file si5338.c +flmpt" > /sys/kernel/debug/dynamic_debug/control Andrey.filippov

Si5338 driver

Elphel Wiki - Mon, 12/16/2013 - 13:46

← Older revision Revision as of 20:46, 16 December 2013 Line 436: Line 436: Reading this node outputs current register data in the same format, using masks specified in the Reference Manual. Reading this node outputs current register data in the same format, using masks specified in the Reference Manual.  + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# cat raw/hex_adwe  + 0x6001d 0x1b7080 0x1c0bff 0x1d08ff 0x1ea0ff 0x1fc0ff 0x20e3ff 0x21e3ff  + 0x22c0ff 0x2397ff 0x24011f 0x25041f 0x26041f 0x27061f 0x281fff 0x29427f  + 0x2a243f 0x2dc5ff 0x2e01ff 0x2f143f 0x3038ff 0x3180ff 0x32c4ff 0x3307ff  + 0x3414ff 0x3500ff 0x3653ff 0x3700ff 0x3800ff 0x3900ff 0x3a00ff 0x3b01ff  + 0x3c00ff 0x3d00ff 0x3e003f 0x3f10ff 0x4000ff 0x4100ff 0x4200ff 0x4300ff  + 0x4400ff 0x4500ff 0x4600ff 0x4700ff 0x4800ff 0x49003f 0x4a10ff 0x4b00ff  + 0x4c00ff 0x4d00ff 0x4e00ff 0x4f00ff 0x5000ff 0x5100ff 0x5200ff 0x5300ff  + 0x54003f 0x5514ff 0x5680ff 0x5706ff 0x5800ff 0x5900ff 0x5a00ff 0x5b00ff  + 0x5c01ff 0x5d00ff 0x5e00ff 0x5f003f 0x6100ff 0x6231ff 0x6300ff 0x6400ff  + 0x6500ff 0x6600ff 0x6701ff 0x6800ff 0x6900ff 0x6a80bf 0x6b00ff 0x6c00ff  + 0x6d00ff 0x6e00ff 0x6f00ff 0x7000ff 0x7100ff 0x7200ff 0x7300ff 0x7480ff  + 0x7500ff 0x7600ff 0x7700ff 0x7800ff 0x7900ff 0x7a00ff 0x7b00ff 0x7c00ff  + 0x7d00ff 0x7e00ff 0x7f00ff 0x8000ff 0x81000f 0x82000f 0x8300ff 0x8400ff  + 0x8500ff 0x8600ff 0x8700ff 0x8800ff 0x8900ff 0x8a00ff 0x8b00ff 0x8c00ff  + 0x8d00ff 0x8e00ff 0x8f00ff 0x9000ff 0x9800ff 0x9900ff 0x9a00ff 0x9b00ff  + 0x9c00ff 0x9d00ff 0x9e000f 0x9f000f 0xa000ff 0xa100ff 0xa200ff 0xa300ff  + 0xa400ff 0xa500ff 0xa600ff 0xa700ff 0xa800ff 0xa900ff 0xaa00ff 0xab00ff  + 0xac00ff 0xad00ff 0xae00ff 0xaf00ff 0xb000ff 0xb100ff 0xb200ff 0xb300ff  + 0xb400ff 0xb5000f 0xb600ff 0xb700ff 0xb800ff 0xb900ff 0xba00ff 0xbb00ff  + 0xbc00ff 0xbd00ff 0xbe00ff 0xbf00ff 0xc000ff 0xc100ff 0xc200ff 0xc300ff  + 0xc400ff 0xc500ff 0xc600ff 0xc700ff 0xc800ff 0xc900ff 0xca00ff 0xcb000f  + 0xcc00ff 0xcd00ff 0xce00ff 0xcf00ff 0xd000ff 0xd100ff 0xd200ff 0xd300ff  + 0xd400ff 0xd500ff 0xd600ff 0xd700ff 0xd800ff 0xd900ff 0xf20002 0x11f01ff  + 0x12000ff 0x12100ff 0x12200ff 0x12300ff 0x12470ff 0x12507ff 0x1266cff 0x12700ff  + 0x12885ff 0x12900ff 0x12a04ff 0x12b000f 0x12f00ff 0x13000ff 0x13101ff 0x13200ff  + 0x13300ff 0x13490ff 0x13531ff 0x13600ff 0x13700ff 0x13801ff 0x13900ff 0x13a00ff  + 0x13b000f 0x13f00ff 0x14000ff 0x14101ff 0x14200ff 0x14300ff 0x14490ff 0x14531ff  + 0x14600ff 0x14700ff 0x14801ff 0x14900ff 0x14a00ff 0x14b000f 0x14f01ff 0x15000ff  + 0x15100ff 0x15200ff 0x15300ff 0x15460ff 0x1554aff 0x15620ff 0x15700ff 0x15835ff  + 0x1591bff 0x15a00ff 0x15b000f Andrey.filippov

Adjust focal and sensor planes

Elphel Wiki - Mon, 12/16/2013 - 13:45

← Older revision Revision as of 20:45, 16 December 2013 Line 5: Line 5: {| {| |- |- -|[[File:Stereo camera sfes2.jpeg|700px|thumb|Fig.1 Stereo Camera Front End holding screws]]+|[[File:Stereo camera sfes2.jpeg|500px|thumb|Fig.1 Stereo Camera Front End holding screws]]  +|[[File:Stereo camera cables.jpeg|500px|thumb|Fig.2 Stereo Camera Front End unscrewed]] |- |- -|[[File:Stereo camera cables.jpeg|700px|thumb|Fig.2 Stereo Camera Front End unscrewed]]+|[[File:Sfe screws.jpeg|500px|thumb|Fig.3 Sensor Front End back showing adjustment screws]] -|-+ -|[[File:Sfe screws.jpeg|700px|thumb|Fig.3 Sensor Front End back showing adjustment screws]]+ |} |} Oleg

Si5338 driver

Elphel Wiki - Mon, 12/16/2013 - 13:44

← Older revision Revision as of 20:44, 16 December 2013 Line 364: Line 364: ====raw/address==== ====raw/address==== ====raw/hex_address==== ====raw/hex_address==== -Address of the register to read/write data form, this is a full 9-bit register of the si5338 (not the 8-bit i2c register address), the page switching is handled by the driver. Silicon Labs documentation references registers by decimal address, this is why both hex and decimal versions are implemented+Address of the register to read/write data form, this is a full 9-bit register of the si5338 (not the 8-bit i2c register address), the page switching is handled by the driver.    + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# echo "218" > raw/address  + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# cat raw/address  + 218  + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# cat raw/hex_address  + 0x0da  +====raw/data====  +====raw/hex_data====  +Read/write register pointed by address    + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# cat raw/data  + 8  + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# cat raw/hex_data  + 0x08  +====raw/hex_all (read only) ====  +Dump all si5338 registers:  + root@elphel393:/sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070# cat raw/hex_all  + 000: 01 08 26 10 00 00 00 1d 40 f2 0e c7 00 10 00 00  + 010: 00 00 00 00 00 00 00 00 00 00 00 70 0b 08 a0 c0  + 020: e3 e3 c0 97 01 04 04 06 1f 42 24 00 00 c5 01 14  + 030: 38 80 c4 07 14 00 53 00 00 00 00 01 00 00 00 10  + 040: 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00  + 050: 00 00 00 00 00 14 80 06 00 00 00 00 01 00 00 00  + 060: 10 00 31 00 00 00 00 01 00 00 80 00 00 00 00 00  + 070: 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00  + 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  + 090: 00 00 d7 00 00 00 00 00 00 00 00 00 00 00 00 00  + 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  + 0b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  + 0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  + 0d0: 00 00 00 00 00 00 00 00 00 00 08 00 00 0d 00 00  + 0e0: f4 f0 00 00 00 12 00 00 00 00 00 c5 01 00 14 00  + 0f0: 40 65 00 f0 00 00 00 1d 00 a8 00 80 00 00 00 00  + 100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  + 110: 00 01 00 00 90 31 00 00 01 00 00 00 00 00 00 01  + 120: 00 00 00 00 70 07 6c 00 85 00 04 00 00 00 00 00  + 130: 00 01 00 00 90 31 00 00 01 00 00 00 00 00 00 00  + 140: 00 01 00 00 90 31 00 00 01 00 00 00 00 00 00 01  + 150: 00 00 00 00 60 4a 20 00 35 1b 00 00  +====raw/hex_adwe (read only) ====  +Setting up a single or multiple registers with mask. Each item 0xAAADDMM is a hex number (with optional "0x" prefix), combining register 9 bit address AAA (shifted left by 16 bits), 8-bit register data DD (shifted left by 8 bits) and 8-bit write enable mask MM where "1" enables modification, "0" - keeps the old value. , can be used to load full register map generated by external software:  + echo "0x6081d 0x1b7080 0x1c0bff 0x1d08ff 0x1eb0ff 0x1fe3ff 0x20e3ff 0x21e3ff \  + 0x22c0ff 0x2380ff 0x24001f 0x25001f 0x26001f 0x27061f 0x2863ff 0x290c7f \  + 0x2a243f 0x2d00ff 0x2e00ff 0x2f143f 0x302fff 0x3110ff 0x32c5ff 0x3307ff \  + 0x3410ff 0x3580ff 0x36feff 0x3703ff 0x3800ff 0x3900ff 0x3a00ff 0x3b01ff \  + 0x3c00ff 0x3d00ff 0x3e003f 0x3f10ff 0x4080ff 0x41feff 0x4203ff 0x4300ff \  + 0x4400ff 0x4500ff 0x4601ff 0x4700ff 0x4800ff 0x49003f 0x4a10ff 0x4b80ff \  + 0x4cfeff 0x4d03ff 0x4e00ff 0x4f00ff 0x5000ff 0x5101ff 0x5200ff 0x5300ff \  + 0x54003f 0x5510ff 0x5600ff 0x5706ff 0x5800ff 0x5900ff 0x5a00ff 0x5b00ff \  + 0x5c01ff 0x5d00ff 0x5e00ff 0x5f003f 0x6100ff 0x622eff 0x6300ff 0x6400ff \  + 0x6500ff 0x6600ff 0x6701ff 0x6800ff 0x6900ff 0x6a80bf 0x6b00ff 0x6c00ff \  + 0x6d00ff 0x6e40ff 0x6f00ff 0x7000ff 0x7100ff 0x7240ff 0x7300ff 0x7480ff \  + 0x7500ff 0x7640ff 0x7700ff 0x7800ff 0x7900ff 0x7a40ff 0x7b00ff 0x7c00ff \  + 0x7d00ff 0x7e00ff 0x7f00ff 0x8000ff 0x81000f 0x82000f 0x8300ff 0x8400ff \  + 0x8500ff 0x8600ff 0x8700ff 0x8800ff 0x8900ff 0x8a00ff 0x8b00ff 0x8c00ff \  + 0x8d00ff 0x8e00ff 0x8f00ff 0x9000ff 0x9800ff 0x9900ff 0x9a00ff 0x9b00ff \  + 0x9c00ff 0x9d00ff 0x9e000f 0x9f000f 0xa000ff 0xa100ff 0xa200ff 0xa300ff \  + 0xa400ff 0xa500ff 0xa600ff 0xa700ff 0xa800ff 0xa900ff 0xaa00ff 0xab00ff \  + 0xac00ff 0xad00ff 0xae00ff 0xaf00ff 0xb000ff 0xb100ff 0xb200ff 0xb300ff \  + 0xb400ff 0xb5000f 0xb600ff 0xb700ff 0xb800ff 0xb900ff 0xba00ff 0xbb00ff \  + 0xbc00ff 0xbd00ff 0xbe00ff 0xbf00ff 0xc000ff 0xc100ff 0xc200ff 0xc300ff \  + 0xc400ff 0xc500ff 0xc600ff 0xc700ff 0xc800ff 0xc900ff 0xca00ff 0xcb000f \  + 0xcc00ff 0xcd00ff 0xce00ff 0xcf00ff 0xd000ff 0xd100ff 0xd200ff 0xd300ff \  + 0xd400ff 0xd500ff 0xd600ff 0xd700ff 0xd800ff 0xd900ff 0xf20002 0x11f00ff \  + 0x12000ff 0x12101ff 0x12200ff 0x12300ff 0x12490ff 0x12531ff 0x12600ff 0x12700ff \  + 0x12801ff 0x12900ff 0x12a00ff 0x12b000f 0x12f00ff 0x13000ff 0x13101ff 0x13200ff \  + 0x13300ff 0x13490ff 0x13531ff 0x13600ff 0x13700ff 0x13801ff 0x13900ff 0x13a00ff \  + 0x13b000f 0x13f00ff 0x14000ff 0x14101ff 0x14200ff 0x14300ff 0x14490ff 0x14531ff \  + 0x14600ff 0x14700ff 0x14801ff 0x14900ff 0x14a00ff 0x14b000f 0x14f00ff 0x15000ff \  + 0x15100ff 0x15200ff 0x15300ff 0x15490ff 0x15531ff 0x15600ff 0x15700ff 0x15801ff \  + 0x15900ff 0x15a00ff 0x15b000f" > /sys/devices/amba.0/e0004000.ps7-i2c/i2c-0/0-0070/raw/hex_adwe  +   +Reading this node outputs current register data in the same format, using masks specified in the Reference Manual. Andrey.filippov

Adjust focal and sensor planes

Elphel Wiki - Mon, 12/16/2013 - 13:44

Created page with "==Stereo camera== * Remove the screws (Fig.1) * Gently take out the front end (Fig.2) in order not to damage the cable or get it disconnected in the inside - the cable's length i..."

New page

==Stereo camera==
* Remove the screws (Fig.1)
* Gently take out the front end (Fig.2) in order not to damage the cable or get it disconnected in the inside - the cable's length is enough
* Adjust the screws shown on Fig.3 - this can be done with the front end still connected to the cable and while the camera is powered on - do it carefully.
{|
|-
|[[File:Stereo camera sfes2.jpeg|700px|thumb|Fig.1 Stereo Camera Front End holding screws]]
|-
|[[File:Stereo camera cables.jpeg|700px|thumb|Fig.2 Stereo Camera Front End unscrewed]]
|-
|[[File:Sfe screws.jpeg|700px|thumb|Fig.3 Sensor Front End back showing adjustment screws]]
|} Oleg

File:Stereo camera sfes2.jpeg

Elphel Wiki - Mon, 12/16/2013 - 13:31

uploaded "[[File:Stereo camera sfes2.jpeg]]"

Oleg

Si5338 driver

Elphel Wiki - Mon, 12/16/2013 - 13:21

← Older revision Revision as of 20:21, 16 December 2013 Line 360: Line 360:   2: 2V5_SSTL_A+B+, output frequency: 200219-169/199 Hz, output route: MS2:32, ms_power_up, disabled state: dis_low, output_power_down, output_en, Spread spectrum is OFF, down amplitude= 50 ( *0.01%), spread rate= 31500 Hz   2: 2V5_SSTL_A+B+, output frequency: 200219-169/199 Hz, output route: MS2:32, ms_power_up, disabled state: dis_low, output_power_down, output_en, Spread spectrum is OFF, down amplitude= 50 ( *0.01%), spread rate= 31500 Hz   3: 1V8_LVDS, output frequency: 150000000 Hz, output route: MS3:1, ms_power_up, disabled state: dis_hi-z, output_power_down, output_en, Spread spectrum is ON, down amplitude= 50 ( *0.01%), spread rate= 31500 Hz   3: 1V8_LVDS, output frequency: 150000000 Hz, output route: MS3:1, ms_power_up, disabled state: dis_hi-z, output_power_down, output_en, Spread spectrum is ON, down amplitude= 50 ( *0.01%), spread rate= 31500 Hz  +===raw/ folder===  +Nodes in this directory provide low-level access to the chip registers, allow loading of the complete register map generated by the Silicon Labs ClockBuilder software as well as to generate the loadable register map from the current state of the chip.  +====raw/address====  +====raw/hex_address====  +Address of the register to read/write data form, this is a full 9-bit register of the si5338 (not the 8-bit i2c register address), the page switching is handled by the driver. Silicon Labs documentation references registers by decimal address, this is why both hex and decimal versions are implemented Andrey.filippov

Pages

Subscribe to www3.elphel.com aggregator