I2C Analyzer : I2C address displayed as an IC Name : Possible Or Not?

Hi,

Is it possible to assign a “name” to an I2C address ?

I’ve a lot of I2C components onto my board, and during debug session, rather than see ‘Setup Write to [0x52]’ for instance, i would prefer ‘Setup Write to [EEPROM]’.

A kind of table I2C ADDRESS <=> NAME that we can populated if needed.

Thanks.

Welcome to our forum! :slight_smile:

You can create a High-Level Analyzer that maps addresses to names.
There is a quick start guide here, and you can also ask if you need any help.

Ok thanks.

Maybe someone has already developped a High-Level Analyzer using I2C protocol ? I can then start from this … Is there any place to look for existing High-Level Analyzer ?

Rgds

Yes, in the extensions tab in the app :slight_smile:

This is a good one start from:

Many Thanks !

Being behind a firewall in my compagny, i cannot access to the extensions tab … access is denied by the firewall and then no extensions appears.

I installed manually the HLA you mentionned. And i’ve modified it to display the name. It’s OK.

I’ve another question : Sometimes, the I2C Read/Write command is NACKed (this is normal cause the IC is not available at that time). Can i display also the IC Name is such case ?

Finally, it does not work correctlty :frowning:

=> How to access the fact that the adress is NACKED ?

I understood that i need to add something in this section :

    if (frame.type == "stop" or (frame.type == "address" and XXXXXXXXXX):
        self.temp_frame.end_time = frame.end_time
        new_frame = self.temp_frame
        self.temp_frame = None
        return new_frame

XXXXXXXXXX being the NACKED condition.
If someone can help me on how to obtain this confition from the HLA “api” …

I tried this but does not work :
if (frame.type == “stop” or (frame.type == “address” and frame.data[“ack”] == FALSE)):

Thanks.

@jj_bordes , could you send us a sample capture? I don’t think I actually tested the i2c transactions hla with address NAKs, it might not handle them properly.

To access the ACK property, please check out the I2C documentation here:
https://support.saleae.com/extensions/analyzer-frame-types/i2c-analyzer

That describes the frames that the I2C analyzer produces.
frame.data["ack"] should be True or False.
If it’s not working, try printing it! Python print() statements in the HLA get printed to the console in the application. You just need to click the console icon next to the protocol analyzer results view to see them.

This is what i tried :

(frame.type == “address” and frame.data[“ack”] == FALSE)):

But there is an error during exectution. I ll try to print it . Thanks for the tips.
And ll keep you in touch.