BASIL_NETWORKS


Banner_Txt_I2C_Protocol

 

HomeABOUTPRODUCTSSERVICESSUPPORTCONTACTARTICLESBLOG
SystemsPeripheralsInstrumentsResearchNetworksSoftwareProgrammersOEM
IBPD-I2C CtrlrIBPD-I2C SlaveIBPD-SPI CtrlrIBPD-SPI-SlaveMore Protocols
 
I2C Main MenuI2C ProgrammersI2C Device DatabaseI2C Device DebugI2C GPIO DebugI2C Hex Block DebugI2C Program DeviceI2C Cmd File ConfigureI2C  Directories

Banner_I2C_Protocol_Hex_Block_Debug

The I²C Hex Block Debugger is a good starting point for testing and troubleshooting an I²C BUS device software protocol.  This Dialog is used after the I²C BUS hardware has been tested and operating.  The next step is to test the software protocol handling.  This dialog allows the user to send a single Hex Block of data to the device selected.  The user selects a hex file and loads it to the listbox to start the session.  All the setup parameters for the selected device from the device database are transferred to this dialog for convenience.  The dialog has four section:

The Main Menu (1)_ contains the main navigation for quickly changing the setup.  It includes the following Dialog navigation selections.

    Select Programmer Type - This is the Programmer Device Select dialog that scans and shows the available I²C Controllers connected to the system.

    Open Device DB - This is the Device Database Dialog for changing the device on the fly.

    Modify / Create Hex Block - This will allow the user to modify a block of data via the Modify/Create hex Block dialog and will automatically transfer the current data to that dialog.

    I2C GPIO Setup & Debug - This function allows the user to control the General Purpose I/O BUS on the I²C IBPD-xxx controller.  The bits may be programmed as Inputs or outputs.  The user may Write and Read from the GPIO BUS independently of the device selected.  Once setup the configuration is rippled through the I²C Debug dialogs.
     

Programmer Device Information (2)_ This is information on the current Programmer Controller and I²C device being addressed.

Hex Block EDIT (3)- to (6)- Allows the user to quick edit a block of hex data of a file to send to the device.

Send BUS Control (7)- to (15)- allows the user to setup the I²C BUS control parameters to send the data to the device.

Save Block (16)- to (20)- Allows the user to save the edited hex block or the entire file.

HexBlockDebugDialog

I2C_Hex+Block_Debug

Top

 

[1]Main Menu

The Main Menu section contains navigation for quickly changing the setup and advanced editing.  It includes the following Dialog navigation selections.

    Select Programmer Type - This is the Programmer Device Select dialog that scans and shows the available I²C Controllers connected to the system.  The user may change the I²C BUS Programmer at any time.  The programmer must be re-initialize to change the BUS parameters that are displayed. The BUS Parameters are fixed at the time the programmer is initialized for the selected device.

    Open Device DB - This is the Device Database Dialog for changing the device on the fly.  This allows the user to change devices on the fly and return to this dialog for continued editing.

    Modify / Create Hex Block - This will allow the user to perform advanced editing and modifications a block of data via the Modify/Create hex Block dialog and will automatically transfer the edited data on return to the dialog.

    I2C GPIO Setup & Debug - This function allows the user to control the General Purpose I/O BUS on the I²C IBPD-xxx controller.  The bits may be programmed as Inputs or outputs.  The user may Write and Read from the GPIO BUS independently of the device selected.  Once setup the configuration is rippled through the I²C Debug dialogs.

[2]Programmer & Device Information

This is information on the current Programmer Controller and I²C device being addressed since these may be changed at any time the current selected device and programmer are transmitted to each dialog.

[3]Hex Filename Active

This is the active hex file being displayed in the listbox for editing and programming.  The user has the options of using the Browse button or the Display File Data button to browse the system for a hex file.  The default directory will be displayed that has been setup in the Default Directories Dialog.  If this field is blank then the Browse System for File dialog will be displayed.

[4]Hex Data File List - This is the Active File Data displayed in Intel Hex Format for the user to edit.  To edit a line of data the user just clicks on a line in the listbox.  The data for that line is displayed in the Edit Block data (6) hex fields 16 bytes at a time.

[5]Edit Block Data

This is where the editing of the block data takes place.  The block regardless of the size 1 to 255 bytes is edited 16 bytes at a time.  The user may change the block bytes and Update the block buffer by clicking on the Update Hex Block button.  Specific information about the hex block is shown below the edit session in the Selected ASCII Hex Block Format Parameters.  The checksum for the Hex block is automatically recalculated on the fly as each byte is changed.  The listbox displays both ASCII Hex data and the printable ASCII character it represents.  If the byte is not within the printable range then a "." is printed.

[6]Send Selected Block

This will send the selected hex block of data to the device.  There are several send data options to sending the data.  These options are in items (9) through (15) and will be detailed following.  There are several [x]checkbox options as follows. The Device Parameter Information to the left of the checkboxes show Byte Size, Page Size and Write Timing of the device from the device database.

    [x]Page Write Data - This flag set the Write to Device in Page Write mode.  The size of the page is identified in the Device Parameter Information section left of the checkboxes.  The number of bytes specified will be sent to the data in stream mode without waiting for each Write Time.  The single Write Time is applied after the page buffer is full, then repeats the process until the data selected is sent to the device.

    [x]Block Binary Format - This flag will send the data in binary byte format but maintain the Intel Hex format by sending a ":" for each hex block but send the data in 8 bit binary format and not two ASCII Hex digits per byte,  This is to accommodate the several formats for the interpreters for the data transfers in the embedded systems.  There is also a transfer speed increase as well as conversion time when sending binary bytes in Intel Hex format.

    [x]Block ASCII Hex Format - This flag will send the data in true Intel ASCII Hex format as defined in the Intel Hex Format Specification.  This is to accommodate the older interface system that have an ASCII to Binary conversion in their data transfer sequence.  

    [x]Binary Data Bytes Only - This flag will send the binary data only stripping it of all Intel Hex formats.  It only sends the Data portion of the Intel Hex Format data block.

 

[7]BUS Parameters

The BUS parameters are transferred from the Programmer Selection and Initialization dialog and are fixed once initialized.  The user may change these parameters by calling the Select Programmer Type from the Main Menu (1) section of the Dialog.

[8]BUS Commands

These are Initial Start BUS commands for the I²C protocol that are executed initially when the Send Selected Block function is executed.  Each protocol has a set of BUS commands associated with it.  The user has full override control of these parameters.

    (X)Start Command - Executes an I²C Start command on the BUS then waits for the data or next command.

    (X)Stop Command - Executes an I²C Stop command on the BUS releasing the devices and goes into an IDLE state.

    (X)FAST Xfer Bits - This function will send the bits at a faster clock rate and allows the user to set the initial Start/Stop times for very fast transfers.  It is only implemented in the IMP[N]I² interfaces

    (X)Fast Xfer Bytes - This function will send the bytes at a faster clock rate and allows the user to set the initial Start/Stop times for very fast transfers.   is only implemented in the IMP[N]I² interfaces

    (X)Rx Break On Ack - This flag will break the receive bytes process if the ACK at the end of the byte is active.

    (X)Tx Break On Ack - This flag will terminate the sending of bytes if the received ACK bit is active.

 

    (X)Sync/Trig 0 Start - This flag will set the Sync/Trig line at the initial Start of the Frame.

    (X)Sync/Trig 0 Stop - This flag will set the Sync/Trig line at the Stop Command of the Frame.

    (X)Pulse 0 - This flag will set the state of the Sync/Trig line to either a pulse if set or a steady state if cleared.

Top

[9]Device Command

The device commands are transferred from the device database for the selected device.  This allows the user to execute series of User Commands with single select from the drop menu.

[10]GPIO Data

This is the GPIO configuration (Direction, Data) that will be sent to the port prior to sending the I²C data if the [x]checkbox is checked.  If the not checked it is assumed that the port has already been setup and no GPIO commands will be issued.  This allows the user to either preset the GPIO or initialize it with each frame being debugged.

11_BUS Delay Control

These are delay time between groups of date.  The Send Frame and the Delay Times are shown in the diagram below.

SendFrame_Delays

 

12_Synch & Trigger 1 Control

These are the Sync & trigger controls that are sent when entering the Cmd & Ctrl Byte[1-8] sequence.  They are separate from the Initial Start Sync/Trig controls.

    (X)Sync/Trig 1 Start - This flag will set the Sync/Trig line at the initial Start of the Frame.

    (X)Sync/Trig 1 Stop - This flag will set the Sync/Trig line at the Stop Command of the Frame.

    (X)Pulse 1 - This flag will set the state of the Sync/Trig line to either a pulse if set or a steady state if cleared.
     

13_Byte Enables

These flags allow the user to select which bytes to incorporate into the data flow to the device.  The enable flags are setup when the user selects a Device Command (10) from the drop menu.

14_Device Slave Address

This is the selected device slave address that is transferred from the device database.

15_Cmd & Ctrl Bytes

These Bytes [1-8] are transferred to the I²C BUS as shown above in item 11_. They are automatically transferred from the device database each time the user selects a command from the drop menu.  Once setup the user has full override control of these bytes.

16_File Size of Save File

This is the size calculated of the Save File of the block the user selected to save.  This section is where the user setups up to save the edited hex data to a file.

17_Save Data Filename

This is the user created filename to save the edited hex data to.  The user may browse the system for a directory to put the file in.

18_Save File Type

The user also has the option of saving the data in either Intel ASCII Hex format or Binary Byte format.  When saving the data in binary format all the Intel ASCII Hex formatting are removed. and the data is sent to the file starting at 0x0000.  Only DAT blocks are sent , all other blocks are omitted.

19_Block Save Conditions

This is an advanced section for saving the selected data block.  The user may add the Address / Command & Control header to the file and may just save the selected block or the entire file.  The Intel Hex Format File has an added header to address the IBPD-SYS that will override the Cmd&Ctrl Setup when these are added to the save file.  The addition of the command and control header to the Intel ASCII Hex Formatted file will not interfere or change the Intel formatting parameters in the file.

20_Create Program File

This will execute the process to save the file with the user parameters selected.

21_Status

This is the common Status bar that displays the status of the last function executed.

22_Help - This Page.

 
Top
Copyright© 1990-2018 BASIL Networks, PLLC. All rights reserved
webmaster