Question on TICS pro.
Anyway to verify the I2C address (Set the I2C address by clicking “Set I2C Address” on TICS pro) by using TCS pro?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Question on TICS pro.
Anyway to verify the I2C address (Set the I2C address by clicking “Set I2C Address” on TICS pro) by using TCS pro?
Choon Kong Yong,
Clicking the "Set I2C Address" button, or typing enter key in the address box, should attempt to update the I2C interface addressing parameters. If you close and reopen the usb communications dialog, and the new I2C address persists, you know the application has updated its I2C address for this device.
For a practical verification, you could try reading back the read-only registers in any of R0-R3. If the read completes successfully, and produces the expected result, you have the correct I2C address. If the I2C address is wrong, the readback should fail and report as much in the status bar.
Note that updating the GUI's I2C address does not update the I2C address on the device, just the address that TICS Pro will use to attempt to interface with the device. To update device I2C address you must do at least one of the following:
The device's current I2C address is always available as a read-only value in R9[7:1], which is read from EEPROM and pin states on startup. This is sort of redundant because you can't read back this value unless the I2C address is correct, but it may be useful to compare perceived address and EEPROM-programmed values in some cases.
Regards,
Derek Payne
Hi Derek Payne,
Thank you for detail explanation.
The TI part able to set to correct address through the "Set I2C Address" button and typing enter key in the address box in TICS pro.
I am still new on the TICS pro.
Can you help to explain more on sentences as listed below? Is the TICS pro uses to achieve the verification as listed below? If yes, please explain and show some diagram how to do it?
1) "try reading back the read-only registers in any of R0-R3. If the read completes successfully, and produces the expected result, you have the correct I2C address. If the I2C address is wrong, the readback should fail and report as much in the status bar"
2) "I2C address is always available as a read-only value in R9[7:1]"
Thank you.
Regards,
Yong ChoonKong
Yong,
Once I2C address is set, you can navigate to the Raw Registers page, find a register with read-only values in it, and click the "Read Register" button.
TICS Pro's Raw Registers page holds a set of all bit values the GUI can program to, or read from, the device. These register maps are typically pre-loaded with some default values that make evaluation with an EVM easier, so that users can write all registers using one of the available methods ("Write All Registers" button in register map, command in the USB communications top menu, or global hotkey Ctrl+L).
Depending on the I2C address given to TICS Pro, you may see success and readback XOR of software, or an error on readback (implying an incorrect I2C address). Images below show an example for successful and failed readback of R2.
Success:
Fail:
It occurs to me that we document R9 in the register map, but TICS Pro does not include this field in the available registers for writing or reading. So my advice about R9[7:1] is inapplicable in TICS Pro. Please disregard.
Regards,
Derek Payne
Hi Derek,
Thank you for the detail step on how to verify on the I2C address.
Question on the "Read Register" button Step.
"No differences" as shown on diagram mean I2C address match with "I2C address box in TICS pro" ?
Just want to double confirm.
Any method to use check/decode the I2C address devices with TICS pro?
Answer is No.
Yong,
For the "Read Register" question: no difference means the readback value from the device is the same as the value already in TICS Pro's register map.
According to the register documentation, R0 through R3 are read-only constants in this device. The LMK05318B profile loads with these addresses in the software register map pre-defined to the same values as stated in the documentation.
If you click "Read Register" while one of these addresses is selected in the register map, and the readback is successful (because you have the correct I2C address for the device), the status bar will be updated with confirmation readback has been performed, the address of the register that was read, and the contents of that register on the device, XOR'd with the previous contents stored in TICS Pro's software register map. Since TICS Pro pre-loads the software register map with the same values that are in the device, this XOR should be 0x000000, as shown in the success image.
If the readback fails instead (because you do not have the correct I2C address for the device), the status bar will indicate an error trying to read that register, as shown in the failure image.
Technically the readback could also succeed, but return a value that differs from the pre-loaded constants for that device. This would indicate the I2C address on the bus is valid, but does not belong to the LMK05318B.
---
For your second question:
TICS Pro has the above indirect mechanism of checking the I2C address is valid for the device. I think we could design a more direct way to check the full I2C address space and list every device found by trying to read some of these read-only constants and matching to a lookup table of TI devices, but that capability is not supported today.
If LMK05318B is the only device on the I2C bus, you can click the "Scan I2C Bus" function, and the I2C address used by TICS Pro will automatically be updated with the first address that responds. But there is no "validation" performed - if there are two devices, and one of them is at an address that is less than LMK05318B address, this function would pick the wrong device.
or
Regards,
Derek Payne
Hi Derek Payne,
FYI, On my board design, the I2C chain is connect to 2 units of I2C parts (one of the part is LMK05318B).
To ensure readback is belong to the correct part LMK05318B (By referring to register document R2 Register (Address = 0x2) [Reset = 0x35]).
Question: is it mean I will get value R2= 0X35 after clicking "Read Register"?
About the statement "This would indicate the I2C address on the bus is valid, but does not belong to the LMK05318B".
Question: How to know which I2C address selected for the "Read Register"?
is it the last I2C address set during "Set I2C Address"?
Yong,
Yes, if you read R2 of LMK05318B and you have the correct address, you should see 0x35 data returned. It might report this as 0x000235, since the address is included with the data during transactions.
The I2C address selected for "Read Register" will be whichever address is in the box in the "USB Communication -> Interface" dialog, next to the "Set I2C Address" button.
Thank you Derek Payne for answering all my questions on the I2C address. I will go in to product next week to verify on the I2C and let you know if still face any issues and questions.
Besides that, I still have another questions "Is TICS pro able to perform Checksum?
Yong,
CRC of EEPROM? We don't disclose some of the EEPROM mappings as they are obfuscated variables related to DPLL computation; additionally several EEPROM fields included in the CRC calculation correspond to part-specific identifier data that does not get written or updated after production. TICS Pro doesn't include a facility to directly calculate a CRC at this time, but for reference here is the calculation process:
Confirming a valid CRC is on the backlog of things to do for this device profile, and would likely look like:
Regards,
Derek Payne
Hi Derek Payne,
I able to verify the I2C address by readback on R2 Register.
About the CRC
Have question on the "If comparison is needed, subsequently write EEPROM and compare against NVMSCRC value after programming is complete".
is it mean if able to get R135= 0X9D mean programmed successfully?
If get R135=0XBD (Bit 5 of R157 set to 1), is it mean programmed unsuccessfully (Register wrote/burn on LMK05318BRGZR is not same with Image file)?
Yong,
I agree with your conclusion. If bit 5 of R157 is zero after POR, the stored CRC matches the loaded CRC, so the EEPROM image is loaded successfully. And if bit 5 of R157 is ever set, there's a mismatch between stored CRC and loaded CRC, which indicates EEPROM programming did not complete successfully (perhaps programming was interrupted mid-way through).
Regards,
Derek Payne