Author Topic: RP2040 Controlling MT8808 Crosspoint  (Read 3577 times)

0 Members and 3 Guests are viewing this topic.

Offline sonicblazeTopic starter

  • Contributor
  • Posts: 12
  • Country: us
RP2040 Controlling MT8808 Crosspoint
« on: September 20, 2022, 12:00:20 am »
I have a self-designed PCB, based on the RP2040 as the core of the system, running C++.  The primary function I'm working on is the control of an MT8808 8x8 Crosspoint IC (https://www.microsemi.com/product-directory/analog-cross-point-switches/4915-mt8808)

Everything looks like it should be functioning to me, but I'm not seeing the connections happening on the MT8808.  I've connected a logic analyzer and I see the data/pulses happening at what appears to be in-spec timings, but I don't see the actual closure of the switches. Hoping someone sees something I don't or can ask the right questions to help me dig to a result here.

Per datasheet, "To write to a location, RESET
must be low while the address and data are set up. Then the STROBE input is set high and then low causing the
data to be latched. The data can be changed while STROBE is high, however, the corresponding switch will turn on
and off in accordance with the DATA input. DATA must be stable on the falling edge of STROBE in order for correct
data to be written to the latch."

I only have an 8 channel logic analyzer, so I've left RESET off the analyzer.  I've confirmed by multimeter that it is indeed LOW as expected.

I uploaded a basic program to walk the outputs I have configured, to make sure I'm actually writing DATA to the DATA pin, AY2 to AY2, and so on:


So the mappings seem correct to me.  I've also validated +5v on VDD, GND (0V) on VSS and VEE.

Per the truth table in the datasheet, all AY/AX pins low strobed should connect X0 and Y0, yet I get no continuity between those two pins.  Here's the logic capture:


Any ideas or guidance would be greatly appreciated!
 

Online ledtester

  • Super Contributor
  • ***
  • Posts: 4224
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #1 on: September 20, 2022, 12:35:58 am »
Are you holding RESET low throughout the entire test? Once it goes high all of the switches are deactivated (all switches turned off).

This procedure should set all of the switches:

Code: [Select]
    set RESET LOW
    set DATA to HIGH
    set STROBE to LOW
    for A from 0 to 63:
        present A on the GPIO pins for AX0-AX2, AY0-AY2
        set STROBE to HIGH
        wait a couple of microseconds
        SET STROBE to LOW
 

Offline sonicblazeTopic starter

  • Contributor
  • Posts: 12
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #2 on: September 20, 2022, 12:45:17 am »
Yes, RESET is being kept low the whole time.  I stuck that pin onto my oscilloscope just to make sure and it indeed stays low.
 

Online ledtester

  • Super Contributor
  • ***
  • Posts: 4224
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #3 on: September 20, 2022, 01:22:06 am »
What voltages are you using for VDD, VEE and VSS?
 

Offline sonicblazeTopic starter

  • Contributor
  • Posts: 12
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #4 on: September 20, 2022, 01:24:30 am »
+5vdc on VDD, GND (0V) on VSS and VEE
 

Online ledtester

  • Super Contributor
  • ***
  • Posts: 4224
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #5 on: September 20, 2022, 01:37:50 am »
I would try testing the switches by having the RP2040 continuously toggle one of the X I/O pins and see if you can detect anything on the Y pins with the scope.
 

Offline eutectique

  • Frequent Contributor
  • **
  • Posts: 638
  • Country: be
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #6 on: September 20, 2022, 01:45:59 am »
Where the X pins are connected? The Y pins? Are they grounded or kept at any constant level by any chance?
 

Offline sonicblazeTopic starter

  • Contributor
  • Posts: 12
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #7 on: September 20, 2022, 01:48:34 am »
Right now they're connected to nothing as I'm trying to figure out why it's not making switch connections.  Prior, X was connected to an audio source, Y connected to output device.
 

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3671
  • Country: gb
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #8 on: September 20, 2022, 09:52:14 am »
The datasheet gives two values for VIH(min): 2.0+VSS and 3.3v, but doesn't give any notes to explain when the 3.3v level applies.  This may give the minimum possible threshold (i.e. with VSS=0v) in which case do you have suitable level translation between the RP2040 and the MT8808?
 

Offline sonicblazeTopic starter

  • Contributor
  • Posts: 12
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #9 on: September 20, 2022, 02:49:02 pm »
The datasheet gives two values for VIH(min): 2.0+VSS and 3.3v, but doesn't give any notes to explain when the 3.3v level applies.  This may give the minimum possible threshold (i.e. with VSS=0v) in which case do you have suitable level translation between the RP2040 and the MT8808?
Above that table it mentions:
"Voltages are with respect to VEE = VSS = 0 V, VDD = 12 V unless otherwise stated."

So for VIH(min): 2.0+VSS, that row is talking about when VSS is at 6.5v per the test conditions column on that row (last column); so when VSS is driven non-ground, the minimum for logic 1 looks to be 2volts over VSS.

However when VEE/VSS is at 0v/grounded (per the comment above the table), the minimum is 3.3v without any formulas.  With VDD having a range of 4.5v - 13.2v, my assumption is 3.3v is the logic 1 level necessary for anytime VEE/VSS is at 0v/grounded and VDD is within range. (And my VDD is being driven at 5v, so within that range spec).
« Last Edit: September 20, 2022, 02:52:39 pm by sonicblaze »
 

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3671
  • Country: gb
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #10 on: September 20, 2022, 07:42:55 pm »
However when VEE/VSS is at 0v/grounded (per the comment above the table), the minimum is 3.3v without any formulas.  With VDD having a range of 4.5v - 13.2v, my assumption is 3.3v is the logic 1 level necessary for anytime VEE/VSS is at 0v/grounded and VDD is within range. (And my VDD is being driven at 5v, so within that range spec).

So a voltage translator will be needed to reliably drive it from 3.3v logic.

 

Offline sonicblazeTopic starter

  • Contributor
  • Posts: 12
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #11 on: September 20, 2022, 08:38:45 pm »
Maybe I'm not following, but the rp2040 outputs 3.3v on its GPIO pins.  Why is a voltage translator needed for voltage when it's driving exactly what is needed?
 

Offline eutectique

  • Frequent Contributor
  • **
  • Posts: 638
  • Country: be
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #12 on: September 20, 2022, 10:12:21 pm »
Could you do the following:
  • Set X and Y addresses (can be 0, so X0 is routed to Y0)
  • Assert STB
  • Assert DATA
  • Deassert STB
Any difference?
 

Offline sonicblazeTopic starter

  • Contributor
  • Posts: 12
  • Country: us
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #13 on: September 21, 2022, 10:25:01 pm »
Zero change when trying what you suggested.

However I got fed up and just removed the IC itself and flowed in a new one, and everything is working exactly as expected now.  My only guess is heat damage from the reflow oven, or static damage at some point during handling.

Thanks everyone for bouncing ideas around, glad I wasn't missing anything myself, I was starting to go a bit nuts  |O
 
The following users thanked this post: ledtester, eutectique

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3671
  • Country: gb
Re: RP2040 Controlling MT8808 Crosspoint
« Reply #14 on: September 23, 2022, 06:56:09 am »
Maybe I'm not following, but the rp2040 outputs 3.3v on its GPIO pins.  Why is a voltage translator needed for voltage when it's driving exactly what is needed?

If the minimum level required to signal a logic 1 on the MT8808 is 3.3v, and the maximum logic 1 level the RP2040 can output is 3.3v then you have zero margin.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf

 

-->