News:

PROTON pic BASIC Compilers for PIC, PIC24, dsPIC33

Main Menu

Logic Analyzer

Started by tolyan249, Aug 18, 2026, 02:29 PM

Previous topic - Next topic

tolyan249

I analyzed the I2C data from the device that controls the APW9 power supply unit, obtained the data, wrote a program to scan the device's address, and got 10 — which matches the logic analyzer. However, the data includes address 8, to which the APW9 returns a NACK. I'm trying to transmit the data obtained from the logic analyzer to my own device, but the APW9 doesn't change the voltage. The device from which the data was collected by the logic analyzer was set to 15 V, and it works.
Maybe I didn't understand something and made a mistake in analyzing the logic analyzer data; I'm attaching the logic analyzer file — maybe someone can help me figure it out.

The program used for the analysis: https://discuss.saleae.com/t/logic-2-4-45/3788

And here, the I2C is operating at a frequency of 330 Hz, as shown by the logic analyzer.

Thank you.

JackB


I reviewed the salea file

from AI

(In computer networking and message queues, ACK (Acknowledgement) is a positive response showing data was received successfully, while NACK (Negative Acknowledgement) is an error signal telling the sender that data is missing, corrupted, or failed to process)

when transmitting either first or last byte sent return an error (NACK)

it will help if you can post your code to transfer the I2C
and verify the polarity eg: starting from an High or Low when transmitting.

if this is any help, let us know.





tolyan249

#2
The logic analyzer file contains 9 packages, and only in package 3 does it return NASK, but there is no such address 8 during scanning, and here it returns the NASK register; in package 6, it also returns NASK in the data. But in package 4, strangely, this address is present. I don't understand anything. Maybe it's transmitted in words here, not bayte.

It's strange that, despite the same set voltage of 15 V, the data from the logic analyzer differs.

If you analyze it in bit format, it doesn't match what the logic analyzer provides — it says C8, but if you analyze it, you get D0; it's unclear.

If you analyze it in bit format, it doesn't match what the logic analyzer provides — it says C8, but if you analyze it, you get D0 — it's unclear. The second screenshot also doesn't show what you expect, or am I calculating it wrong?

Or is there only one address here, and the rest are registers and data, and also I2C_ReStart() is used here?