1. Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
    Dismiss Notice

Debugging shift register output with a logic analyzer

Discussion in 'Microcontrollers' started by Salsa Stint, Feb 16, 2017.

  1. Salsa Stint

    Salsa Stint New Member

    Joined:
    Jan 6, 2017
    Messages:
    5
    Likes:
    1
    Hi,

    I have a knock-off saleae 16 logic analyzer hooking up to an MM5451 (datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/mm5450.pdf). I'm driving it via the SPI pins on an arduino. Connected to the data pins of the MM5451 are the cathode pins of an RGB LED (the common anode of which is connected to +5V).

    The code and the appearance of the LED is correct, I can control the duty cycle and dim the color components, no problem.

    However, the logic analyzer is not showing what I expect to see when I connect it to the cathode pins/MM5451 output pins. See attached pictures.

    Here is the decoded SPI protocol going into the IC, which is correct:

    screenshot1.png

    I'm using the shift register to control the duty cycle on the "green" pin. After the last data (all zeroes) is shifted in, I expect the "green" pin (pin 17 in the case, on the MM5451) to go change. (I don't have a screenshot of what the LED is doing, but I can promise you that it is dimming.) Zooming out, you can see the green pin never goes low:

    screenshot2.png

    It doesn't matter how I vary the duty cycle, from 0% to 100% (full brightness), the logic analyzer always shows high.

    What am I missing here? Is it because the MM5451 acts as a common-anode sink?

    If my understanding is correct, the LED is only "on" when there is a potential difference across the common anode pin of the LED and the cathode pin connected to the MM5451 pin. If that's the case, I would expect the "green" signal to actually go from low (LED is "on", because anode - cathode = +V) to high (LED is "off", because anode - cathode = 0).

    Thansk!
     

Share This Page