Instruction/ maintenance manual of the product ECS-320A IBM
Go to page of 63
T Serial Interface Developers Guide T for the T ECS-320A Embeddable Camera Electronics System (Document Number 700-00000040-R10) 10503 Timberwood Circle Suite 120 Louisville, KY 40223 (502) 423-7225.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Serial Interface Developers Guide Document Number 700-00000040 April 2003 Copyright Lumitron 2003 All Rights Reserved. DISCLAIMER All copyrights in this manual, and the hardware and software described in it, are the exclusive property of Lumitron, Inc.
S ERIAL I NTERFAC E D EVELOPERS G UIDE T Table of Contents T TU 1 INTRODUCTION UT ......................................................................................................... 1 TU 2 GENERAL REQUIREMENTS UT ................................
S ERIAL I NTERFAC E D EVELOPERS G UIDE TU 5.3.16 CMD_NUC_FLASH_RAMP UT ........................................................................................................ 11 TU 5.3.17 CMD_NUC_FLASH_MEMORY UT ......................................
S ERIAL I NTERFAC E D EVELOPERS G UIDE TU 6.2.13 CameraConfig.agcLowIntensity UT .................................................................................................. 23 TU 6.2.14 CameraConfig.agcHighIntensity UT .........................
S ERIAL I NTERFAC E D EVELOPERS G UIDE TU 6.9.1 FPA Processor Operati onal Control Regi ster Low UT ....................................................................... 37 TU 6.9.2 FPA Processor Operati onal Control Regi ster High UT ..............
S ERIAL I NTERFAC E D EVELOPERS G UIDE 1 Introduction This guide has been writte n to help the develop er become acquai nted with an d be able to develop around the Serial Interface Protocol requirement s for the Embedda ble Camera Electronics System hardware.
S ERIAL I NTERFAC E D EVELOPERS G UIDE used for text/file transfer. The bootloader is JTAG loaded into the DSP boot flash , typically during the production of the camera electro nics.
S ERIAL I NTERFAC E D EVELOPERS G UIDE When the trigger occurs the host application ca n beg in writing the file data to the COM port. The bootloader receives the incoming data stream, convert s the text data, and writes the executable to the proper location in DSP program and dat a flash.
S ERIAL I NTERFAC E D EVELOPERS G UIDE possible baud rates (96 00 , 38400, 115200) and verifying com muni cation status. The remain der of the settings are automatically configur ed by the communi cations library.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 5.2.5 McbReadDataMem Call this function to read a block of memory from the DSP. At the lower level the call may be broken into several calls to the DSP controller to read the ent ire block.
S ERIAL I NTERFAC E D EVELOPERS G UIDE … // Wait until DSP is ready for next command status = GetPCMStatus(m_hComPCM); // Send Focus Motor Far Command retVal = McbSendAppCmd( m_hComPCM, (BYTE)CMD_FOCUS_MOTOR_FAR, 0, NULL ); // If failed we need to break if (FAILED(retVal)) { tStr.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 5.3.2 CMD_PROG_SFLASH_FULL Description: Program a full page to seri al flash. The data to be progra mmed will need to be written to the scratch pad (DSP memory location 0x00C0 ) bef or e initiating this command. The offset for the write into serial flash will be 0 r egardless of the structure value.
S ERIAL I NTERFAC E D EVELOPERS G UIDE COMP_SER_NUM fpaSupportBD; COMP_SER_NUM calFlagAssy; COMP_SER_NUM peripheral[4]; COMP_SER_NUM fpa; UWord16 ReserveBlk_A[2]; }; /* Size = 32 Words */ typedef struct _PRODUCT_ID PRODUCT_ID, *PTR_PRODUCT_ID; 5.
S ERIAL I NTERFAC E D EVELOPERS G UIDE LENS_CFG lens[4]; }; typedef struct _STATIC_CFG STATIC_CFG, *PTR_STATIC_CFG; 5.3.7 CMD_READ_STATIC_CFG Description: Read Static Configuration from DSP Data flash and place into the scratch pad buffer.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Argument: See below. struct _NVM_XFER { UWord16 offset; // Offset from byte 0 UWord16 size; // Size in bytes }; typedef struct _NVM_XFER NVM_XFER, *PTR_NVM_XFER; Note: Use the McbReadDataMem function to read dat a from scratch pad.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 5.3.14 CMD_IMAGE_GRAB Description: Perform an image grab into one of the ut ility memory buffers. Command Code: Enumeration for CM D_IMAGE_GRAB Argument Size: UWord16 Argument: Buffer to be selected (0 – data place d in image grab buff er A, and 1 - data placed in image grab buffer B).
S ERIAL I NTERFAC E D EVELOPERS G UIDE Argument Size: size of NUC_MEM_XFER Argument: See below. struct _NUC_MEM_XFER{ UWord32 addr; // Address in NUC flash memory to read UWord16 size; // Size in WORD.
S ERIAL I NTERFAC E D EVELOPERS G UIDE struct _SERVO_MODE { UWord16 mode; /* Mode of Servo: Open, Closed, Factor */ UWord16 factor; /* PWM Factor for user specified setting */ }; typedef struct _SERVO.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 5.3.24 CMD_TWO_PT_NUC Description: Initiates a 2-point calibration. The host is required to check/upd ate the status of a global associated with the calibration pro ce s s.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 5.3.29 CMD_GET_ADC_VALUES Description: Command to retrieve the current value of all active ADC value s. The data is placed into the scratch pad buffer. Command Code: Enumeration for CM D_GET _ADC_VALUES Argument Size: 0 Argument: Null Note: Use the McbReadDataMem function to read data from scratch pad.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Command Code: Enumeration for CM D_WRITE_VID_ENC_REG Argument Size: size of 2 * UWord16 Argument: 1 P st P UWord16 – offset, 2 P nd P UWord16 – data. The offset term is relative to the video encoder mode 0 register.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Note: Since the defective pixel requires placem ent of reference sources it is necessary to implement this command in ‘sub-protocol’ form. See paragraph X 7.7 X for details. 5.3.38 CMD_IRCON_LOAD_LUT Description: Custom LUT tabl e creation for radiometry.
S ERIAL I NTERFAC E D EVELOPERS G UIDE }; typedef struct _UTIL_MEM_XFER UTIL_MEM_XFER, *PTR_UTIL_MEM_XFER; Note: Use the McbWriteDataMem fun ctio n to move data into scrat ch pad. 5.3.44 CMD_ADV_DETECT_BAD_PIXELS Description: Command no longer u se d.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Note: Once the command has b een sent the embedded appli catio n will set the status code to BEGIN_PROCESS. The host can monitor this c ode until it is returned to HOST_READY which indicates the routine has completed co mpiling the defects.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Argument: None Note: Use of this command assumes that the host kn ows the curren t state of the shadow register in the global configuration structure 6 Camera El.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Any portion up to the entire structure can be r ead using the ‘McbReadDataMem’ routine. For example, if the host wanted to retrieve the curr ent embedded app lication version, a read of the data member at address 0x0040 + offset of the ‘swVersion’, member could be p erformed.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 6.2.6 CameraConfig.camErrors Type: CAMERA_ERRORS /* Camera Error Code Structure */ struct _CAMERA_ERRORS { UWord16 ErrorCode; /* Error Code */ UWord16 ErrorSubCo.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Description: Software build ID of the l oaded embedd ed application. Read only data membe r. 6.2.11 CameraConfig.fpgaVersion[2] Type: UWord16 Size: 2 Words Description: Xilinx FPGA versio n code of the stored configuratio n file.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Size: 1 Word Description: The member is divided into the following bit fields. Fan Speed Index: (Bits 0 - 2) Current inter nal fan speed index. Re ad only data member. Base NUC table: (Bits 3 - 8) Current base NUC index.
S ERIAL I NTERFAC E D EVELOPERS G UIDE FPA Sub-type Identifier: (Bits 4 – 7) Range Reticle Enable: (Bit 8) Reserved: (Bits 9 – 14) Lock Memory Mirro r Bit: (Bit 15) The following enumerations are .
S ERIAL I NTERFAC E D EVELOPERS G UIDE Index [3]: DSP Channel B3 6.2.24 CameraConfig.btnPanel Type: BTN_PANEL /* Button Panel State Structure */ struct _BTN_PANEL { unsigned menuUpdate:1; /* Set if button was pressed and menu needs update. Should only be set by Host and only cleared by camera.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 6.3.3 nvmData.ActMode Type: UWord16 Size: 1 Word Description: See X Appendix E X for specifics on this value. 6.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 6.3.9 nvmData.RtclXPos Type: NVM_RETICLE_POS /* Reticle Position & Emissivity */ struct _NVM_RETICLE_POS { unsigned RtclHorPos:9; /* Reticle Horizontal Posit.
S ERIAL I NTERFAC E D EVELOPERS G UIDE typedef struct _NVM_AGC_LIMITS NVM_AGC_LIMITS, *PTR_NVM_AGC_LIMITS; Size: 2 Words Description: See X Appendix E X for specifics on this value. 6.3.14 nvmData.LinearMap Type: UWord16 Size: 1 Word Description: See X Appendix E X for specifics on this value.
S ERIAL I NTERFAC E D EVELOPERS G UIDE opportunity. In other words if the host intend s on changing the current AGC mode and have that mode restored on subsequent boots – then two writes are requi red. The first to change the global data structure and then a second to forc e an update o f the nonvolatile RAM.
S ERIAL I NTERFAC E D EVELOPERS G UIDE It is also recommended that the host che ck regularly (including the boot sequence) for the UNCONFIGURED_CO NTROLLER and the FAULT_ DETECTED codes.
S ERIAL I NTERFAC E D EVELOPERS G UIDE ERR_CAM_SPRT_BD_MISMATCH, ERR_SUBCODE_UNDEFINED }; ErrorCount: a count of the total number of erro rs since boot. ErrorData [0] Value stored in configuration flash. ErrorData [1] Value read from the ADC. ErrorData [2] – [4] Not used.
S ERIAL I NTERFAC E D EVELOPERS G UIDE For SubCode ERR_CROSSTALK: ErrorData [0] Address of register being written to. ErrorData [1] Address of regist er b eing tested for crosstalk. ErrorData [2] Crosstalk regi ster value. ErrorData [3] Cross talk register test ma sk.
S ERIAL I NTERFAC E D EVELOPERS G UIDE ErrorData [1] Value read back. ErrorData [2] Test mask. ErrorData [3] Lower 16 bits of memory addre s s. ErrorData [4] Upper 16 bits of memory a ddre ss. 6.6.6 Force ‘1’ Test This error is set during ope rational tests.
S ERIAL I NTERFAC E D EVELOPERS G UIDE ErrorData [4] Upper 16 bits of memory a ddre ss. 6.6.9 Histogram Data Grab Test This error is set during ope rational tests. Data from CameraConfig.camErrors: ErrorCode: ERR_HISTO_GRAB define. ErrorSubCode: No subcod e.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 6.7 Command Polling During normal operatio n of the embed ded application, a poll is don e to check for user defined commands that have been issued by the host. When a command is detected the appropriate action is taken.
S ERIAL I NTERFAC E D EVELOPERS G UIDE There are only a couple of regi sters that the host will typically modify . They are listed in the fol lowing paragraphs. 6.9.1 FPA Processor Operational Control Register Low Address: 0x4000 Bit 0 (Unit Gain): 0 – Use NUC Coefficient Memo ry Gain; 1 – Force NUC Gain to Unity (1.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Bits 10-11 (Pfv Src Sel): Processed FPA Video Source Select: 0 – Digital FPA Video; 1 – NUC Corrected Video; 2 – Pixel Replaced Video; 3 – ITT Video 6.
S ERIAL I NTERFAC E D EVELOPERS G UIDE /* Calibration and Defect Communication Status Enumerations */ enum { HOST_READY = 0xFFFF, BEGIN_PROCESS = 0, CAL_PLACE_COLD_REF, CAL_COLD_REF_IN_PLACE, CAL_PLAC.
S ERIAL I NTERFAC E D EVELOPERS G UIDE (E) Calibration is complete. 7.4 One Point Update Calibration (External Flag): (A) Send CMD_ONE_PT _UPDATE command with a rgu ment for using external calibration flag. (B) Embedded application will se t the status code to BEGIN_PRO CESS, and then begin executi on of the calibration.
S ERIAL I NTERFAC E D EVELOPERS G UIDE (O) Host will monitor the status code data memb er until it is set by the embedded a p plication to CAL_CALC_COEFFICIENTS or CAL_ D E LTA_TO O_ SMALL. If the CAL_DELTA_TOO_SMALL code is received then the e m bedd ed application has aborted the cal ibration.
S ERIAL I NTERFAC E D EVELOPERS G UIDE for each pixel in the entire array. The NUC data w ill also need to be formatted for use in the hardware (see X Appendi x F X ). It will also be necessary to save NUC mode data to serial data flash that corresponds to the uploade d NUC data (see p aragraph X 5.
S ERIAL I NTERFAC E D EVELOPERS G UIDE (B) Send CMD_DO WNLOAD_NUC comm and with the arguments se t for ‘gain terms’ and desired NUC base. This will instruct the cam era to r ead the NUC flash and store the gain terms in utility memory (at base of MAR_IMAGE_GRAB_B).
S ERIAL I NTERFAC E D EVELOPERS G UIDE Appendix A - Camera Configuration Dat a S tructures /* Current Camera Configuration Information Structure: This structure will contain information about the camera that will be useful for standard operation as well as for the remote user to have access.
S ERIAL I NTERFAC E D EVELOPERS G UIDE /* Cal-flag Settings data */ UWord16 calFlagRefs; /* 1 Word */ // coldRef:8; /* Cold Ref Setting, (Bits 0 - 7) */ // hotRef:8; /* Hot Ref Setting, (Bits 8 - 15) .
S ERIAL I NTERFAC E D EVELOPERS G UIDE /* Partial Camera Dynamic Configuration Info Structure – matches what is stored in global memory. */ struct _NVM_GLOBAL_CFG { UWord16 CamMode; /* Cast to/from .
S ERIAL I NTERFAC E D EVELOPERS G UIDE Appendix B - Xilinx Register/Dat a S tructure /* Xilinx FPGA Register Map Structure */ typedef struct { UWord16 OpCtrlRegLo; /* Map to 0x4X00 */ UWord16 OpCtrlRe.
S ERIAL I NTERFAC E D EVELOPERS G UIDE UWord16 MarAMemAcc; /* Map to 0x4XA0 */ UWord16 MarAMemAccInc; /* Map to 0x4XA1 */ UWord16 MarAMemAccClr; /* Map to 0x4XA2 */ UWord16 MarAMemAccClrInc; /* Map to.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Appendix C - Camera Command Enumerations /* PC Master Command Code Enumerations */ enum { CMD_FPGA_UPDATE_AVAILABLE = 1, CMD_COPY_SFLASH_PAGE, /* Copy a page of .
S ERIAL I NTERFAC E D EVELOPERS G UIDE Appendix D - Mapping of Serial Non-V olatile Memory /* Complete Camera Dynamic Configuration Info Structure */ struct _NVM_DYN_CFG { UWord16 CamMode; /* Cast to/.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Appendix E - Dynamic Memory Definitions Note: The address (Adr) listed in the tables that follow refer to the RAM offset address inside the Real Time Clock/NVM RAM part.
S ERIAL I NTERFAC E D EVELOPERS G UIDE 1 – Enable Temperature Excursion Based 1-Pt Refresh Rfsh On Boot 0 – Disable 1-Pt Refresh on Bootup; 1 – Enable 1-Pt Refresh on Bootup (Camera waits until .
S ERIAL I NTERFAC E D EVELOPERS G UIDE Factor y Bit Fi e l d s Adr Entry N ame Mod e In itialize 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 50 A uto Ref r esh Sho rt 0x0258 Ti m e R/ W Per io d 52 A uto Re.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Factor y Bit Fie ld s Adr Entry N ame Mod e Initialize 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 66 Re ticle B Sho rt 0x00D C Horizon tal R/W Pos it io n 68 Re ticle.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Factor y Bit Fie ld s Adr Entry N ame Mod e Initialize 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 82 AGC Hi gh Sh ort 0x3 F FF Limit R/W Intensity 84 A GC Shor t 0x00.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Fa c to ry Bit F i e l d s Ad r Ent r y Name Mode I n it ia l iz e 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 10 4 L en s I D B y te 0x 0 5 Co nt rol R/ W 1 05 Re ser.
S ERIAL I NTERFAC E D EVELOPERS G UIDE Appendix F – NUC Coefficient Format NUC Ga in C oeffici ent ( for Valid Pix el) Bit Fi el d s 15 14 13 12 11 10 9876543210 Frc t NUC O f fse t Coefficient (for Valid Pi xe l i.
An important point after buying a device IBM ECS-320A (or even before the purchase) is to read its user manual. We should do this for several simple reasons:
If you have not bought IBM ECS-320A yet, this is a good time to familiarize yourself with the basic data on the product. First of all view first pages of the manual, you can find above. You should find there the most important technical data IBM ECS-320A - thus you can check whether the hardware meets your expectations. When delving into next pages of the user manual, IBM ECS-320A you will learn all the available features of the product, as well as information on its operation. The information that you get IBM ECS-320A will certainly help you make a decision on the purchase.
If you already are a holder of IBM ECS-320A, but have not read the manual yet, you should do it for the reasons described above. You will learn then if you properly used the available features, and whether you have not made any mistakes, which can shorten the lifetime IBM ECS-320A.
However, one of the most important roles played by the user manual is to help in solving problems with IBM ECS-320A. Almost always you will find there Troubleshooting, which are the most frequently occurring failures and malfunctions of the device IBM ECS-320A along with tips on how to solve them. Even if you fail to solve the problem, the manual will show you a further procedure – contact to the customer service center or the nearest service center