Streszczenie treści zawartej na stronie nr. 1
TSerial Interface Developers Guide
Tfor the
TECS-320A
Embeddable Camera Electronics System
(Document Number 700-00000040-R10)
10503 Timberwood Circle
Suite 120
Louisville, KY 40223
(502) 423-7225
Streszczenie treści zawartej na stronie nr. 2
SERIAL INTERFACE DEVELOPERS GUIDE 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. and its licensors. Claim of copyright does not imply waiver of Lumitron’s or its licensor’s other rights in the work. See the following Notice of Proprietary Rights. NOTICE OF PRO
Streszczenie treści zawartej na stronie nr. 3
SERIAL INTERFACE DEVELOPERS GUIDE TTable of ContentsT TU1 INTRODUCTIONUT......................................................................................................... 1 TU2 GENERAL REQUIREMENTSUT ..................................................................................... 1 TU3 CAMERA BOOT SEQUENCEUT .................................................................................... 1 TU3.1 Communication ConfigurationUT ................................................
Streszczenie treści zawartej na stronie nr. 4
SERIAL INTERFACE DEVELOPERS GUIDE TU5.3.16 CMD_NUC_FLASH_RAMPUT........................................................................................................11 TU5.3.17 CMD_NUC_FLASH_MEMORYUT..................................................................................................11 TU5.3.18 CMD_NUC_FLASH_TEST_PATTERNUT......................................................................................12 TU5.3.19 CMD_TEC_DRV_ENABLEUT.....................................
Streszczenie treści zawartej na stronie nr. 5
SERIAL INTERFACE DEVELOPERS GUIDE TU6.2.13 CameraConfig.agcLowIntensityUT..................................................................................................23 TU6.2.14 CameraConfig.agcHighIntensityUT.................................................................................................23 TU6.2.15 CameraConfig.actOpName[4]UT ....................................................................................................23 TU6.2.16 CameraConfig.actNucName[4]UT...
Streszczenie treści zawartej na stronie nr. 6
SERIAL INTERFACE DEVELOPERS GUIDE TU6.9.1 FPA Processor Operational Control Register LowUT .......................................................................37 TU6.9.2 FPA Processor Operational Control Register HighUT ......................................................................37 TU6.9.3 FPA Processor User Mode Control RegisterUT................................................................................37 TU6.9.4 ATC Offset Coefficient RegisterUT........................
Streszczenie treści zawartej na stronie nr. 7
SERIAL INTERFACE DEVELOPERS GUIDE 1 Introduction This guide has been written to help the developer become acquainted with and be able to develop around the Serial Interface Protocol requirements for the Embeddable Camera Electronics System hardware. An overview of the system requirements and a detailed description of the protocol are provided. This guide also provides information on how the Lumitron Operational Manager Application software interacts with the ECS-320A hardware during sy
Streszczenie treści zawartej na stronie nr. 8
SERIAL INTERFACE DEVELOPERS GUIDE used for text/file transfer. The bootloader is JTAG loaded into the DSP boot flash, typically during the production of the camera electronics. After the bootloader has configured the serial port it will output some text messages informing the host of its status and go into a wait state (approximately 5 seconds). During the wait state the host can initiate a file upload. Once a file upload is complete or the wait state times out, then execution is tran
Streszczenie treści zawartej na stronie nr. 9
SERIAL INTERFACE DEVELOPERS GUIDE When the trigger occurs the host application can begin writing the file data to the COM port. The bootloader receives the incoming data stream, converts the text data, and writes the executable to the proper location in DSP program and data flash. Once the file transfer is complete execution is transferred to the embedded application that was just loaded. Lumitron v0003 Bootloader Version: The latest bootloader version no longer uses a ‘Xon/Xoff’ proto
Streszczenie treści zawartej na stronie nr. 10
SERIAL INTERFACE DEVELOPERS GUIDE possible baud rates (9600, 38400, 115200) and verifying communication status. The remainder of the settings are automatically configured by the communications library. 5 Host Side Interface 5.1 Baud Rate The baud rate of the host side can be fixed to the configuration of the camera electronics or it can be designed to detect the active baud rate. When opening the port on the host application side the function requires a baud rate parameter. See funct
Streszczenie treści zawartej na stronie nr. 11
SERIAL INTERFACE DEVELOPERS GUIDE 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 entire block. This function can also be used to read registers or a block of registers that are mapped into the DSP data memory space. Function Definition: MCBCOM MCBCOM_API DWORD McbReadDataMem(HMCBCOM hCom, LPVOID dest, DWORD addr, WORD size); Note that the function parameter
Streszczenie treści zawartej na stronie nr. 12
SERIAL INTERFACE DEVELOPERS GUIDE … // 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.Format(IDS_PC_MSTR_ERROR, retVal); DoMessageBox(tStr, MB_OK, 0); } … Notes: • The third argument of the call ‘McbSendAppCmd’ is set to zero and the fourth argument is NULL.
Streszczenie treści zawartej na stronie nr. 13
SERIAL INTERFACE DEVELOPERS GUIDE 5.3.2 CMD_PROG_SFLASH_FULL Description: Program a full page to serial flash. The data to be programmed will need to be written to the scratch pad (DSP memory location 0x00C0) before initiating this command. The offset for the write into serial flash will be 0 regardless of the structure value. Command Code: Enumeration for CMD_PROG_SFLASH_FULL Argument Size: size of flash_XFER Argument: See below. struct _flash_XFER { WORD eraseFlag; // Statu
Streszczenie treści zawartej na stronie nr. 14
SERIAL INTERFACE DEVELOPERS GUIDE 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.3.5 CMD_READ_PRODUCT_ID Description: Read Product ID from DSP Data flash and place into the scratch pad buffer. Command Code: Enumeration for CMD_READ_PRODUCT_ID Argument Size: 0 Argument: Null Note: Use the McbReadDataMem function
Streszczenie treści zawartej na stronie nr. 15
SERIAL INTERFACE DEVELOPERS GUIDE 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. Command Code: Enumeration for CMD_READ_STATIC_CFG Argument Size: 0 Argument: Null Note: Use the McbReadDataMem function to read data from scratch pad. See data structures above. 5.3.8 CMD_GET_CAMERA_TIME Description: Read the Real Time Cloc
Streszczenie treści zawartej na stronie nr. 16
SERIAL INTERFACE DEVELOPERS GUIDE 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 data from scratch pad. The offset term in the data structure determines the offset address relative to the NVM part. This command allows the host to retrieve any portion or all of the current NVM contents. Do not confuse access to this mem
Streszczenie treści zawartej na stronie nr. 17
SERIAL INTERFACE DEVELOPERS GUIDE 5.3.14 CMD_IMAGE_GRAB Description: Perform an image grab into one of the utility memory buffers. Command Code: Enumeration for CMD_IMAGE_GRAB Argument Size: UWord16 Argument: Buffer to be selected (0 – data placed in image grab buffer A, and 1 - data placed in image grab buffer B). Note: This command was included for debug and development and should not be used for normal operation since a write operation takes place. Buffers may be in use by real
Streszczenie treści zawartej na stronie nr. 18
SERIAL INTERFACE DEVELOPERS GUIDE 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 WORDS (Limit to 160) }; typedef struct _NUC_MEM_XFER NUC_MEM_XFER, *PTR_NUC_MEM_XFER; Note: Use the McbReadDataMem function to read data from scratch pad. Multiple calls of this function would allow the host to read an entire set of NUC coefficients. 5.3.18 CMD_NUC_FLASH_TEST_PATTERN Des
Streszczenie treści zawartej na stronie nr. 19
SERIAL INTERFACE DEVELOPERS GUIDE struct _SERVO_MODE { UWord16 mode; /* Mode of Servo: Open, Closed, Factor */ UWord16 factor; /* PWM Factor for user specified setting */ }; typedef struct _SERVO_MODE SERVO_MODE, *PTR_SERVO_MODE; /* Servo Mode Enumeration */ enum { SERVO_OPEN = 0, SERVO_CLOSE, SERVO_FACTOR }; Note: This command is to be used for test purposes. Once configured the servo will be controlled by the embedded application during normal operation 5.3.22 CM
Streszczenie treści zawartej na stronie nr. 20
SERIAL INTERFACE DEVELOPERS GUIDE 5.3.24 CMD_TWO_PT_NUC Description: Initiates a 2-point calibration. The host is required to check/update the status of a global associated with the calibration process. Command Code: Enumeration for CMD_TWO_PT_NUC Argument Size: UWord16 Argument: 0 – external reference, 1 – internal reference Note: Since the 2 point calibration requires placement of hot and cold sources it is necessary to implement this command in ‘sub-protocol’ form. See paragraph