Max 7219 Issue (5V Leak)

KICAD.zip (66.5 KB)

I have an issue on a MAX 7219 Project I cant find (MAX7219EWG Chip)

I have used MAX chip for multiple project, however have recently switched to SMD Chip and am having the below issue

I have a “Leak” of voltage, that I cant find, if someone can run their eyes over the attached and below and tell me what I am doing wrong

The Issue

I have a PCB that controls a Caution Panel on my Simulator, this functions correctly.

The issue is on the PCB where I get a 3.5V leak to (or from) the MAX Chip

Symptom

I have 3 LEDS on the PCB to confirm correct voltage

1 = 5 V USB (Internal Arduino) INT

2 = 5 V External 5 V EXT

3 = 12 V DC Externals (for other functions)

When I connect each power source, the corresponding LED will light correctly

There is no connection between the 5V INT, 5V EXT and 12V (all grounds are connected)

The MAX Chip is supposed to be powered from the 5V EXT (PIN 19)

When I install the MAX 7219 Chip the same is correct, BUT when the CODE is loaded

The 5V USB LED will light, AND the 5V EXT LED will light “Dim” measured voltage is 3.5 V

I suspect this is coming from the LOAD PIN, the MAX will function, however it will not function from the 5V EXT at all, it fails to work

I suspect there is a leak (back feed)

Now the checks, I have belled out the PCB, also a blank PCB with 100v MEGA test, there is no fault on the PCB, I have changed chips, I have changed ARDUINO, I have changed Power supplies, I have changed the PINS

What have I missed, what’s wrong, never seen this before

All the chips can’t be faulty

to further Isolate this, I have only installed the MAX7219EWG its power Circuit, and Status LEDS

I only have a conection via the Shield to arduino PINS 46, 47, 48, also 5V and GND


// Test Harness for Max7219 
#include "LedControl.h"
// NEED TO SWAP COLS and ROWs to match PCB
/*
 Now we need a LedControl to work with.
 ***** These pin numbers will probably not work with your hardware *****
 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to LOAD 
 We have only a single MAX72XX.
 */

// Single Max7219
//LedControl lc=LedControl(9,8,7,1);  

//Two Max7219
//LedControl lc=LedControl(9,8,7,4); //
// A10 Right Output
LedControl lc=LedControl(48, 47, 46, 0);

char receivedChar;
boolean newData = false;
/* we always wait a bit between updates of the display */
unsigned long delaytime=100;

int devices = 1;

void setup() {
  Serial.begin(115200);
  Serial.setTimeout(30000);

  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */

  devices=lc.getDeviceCount();
  
  for(int address=0;address<devices;address++) {
    /*The MAX72XX is in power-saving mode on startup*/
    lc.shutdown(address,false);
    /* Set the brightness to a medium values */
    lc.setIntensity(address,15);
    /* and clear the display */
    lc.clearDisplay(address);
  }
}

void recvOneChar() {
    if (Serial.available() > 0) {
        receivedChar = Serial.read();
        newData = true;
    }
}

void showNewData() {
    if (newData == true) {
        Serial.print("This just in ... ");
        Serial.println(receivedChar);
        newData = false;
    }
}

void single() {
  for(int address=0;address<devices;address++) {
    for(int row=0;row<8;row++) {
      for(int col=0;col<8;col++) {
        delay(delaytime);
        Serial.println("Press Enter to Continue");
  
        newData = false;
        while (newData == false) {
          recvOneChar();
          delay(10);  
        }
        
  
        lc.clearDisplay(address);
        Serial.println("Device:" + String(address));
        Serial.println("Col   :" + String(col));
        Serial.println("Row   :" + String(row));

        lc.setLed(address,col,row,true);
  //      delay(delaytime);
  //      for(int i=0;i<col;i++) {
  //        lc.setLed(0,row,col,false);
  //        delay(delaytime);
  //        lc.setLed(0,row,col,true);
  //        delay(delaytime);
  //      }
      }
    }
  }
}

void AllOn() {
  for(int address=0;address<devices;address++) {  
    for(int row=0;row<8;row++) {
      for(int col=0;col<8;col++) {
        lc.setLed(address,col,row,true);
      } 
    }
  }
}

void AllOff() {
  for(int address=0;address<devices;address++) {  
    for(int row=0;row<8;row++) {
      for(int col=0;col<8;col++) {
        lc.setLed(address,col,row,false);
      } 
    }
  }
}

void loop() { 
  Serial.println("There are " + String(devices) + " devices");
  Serial.println("All Leds on");
  AllOn();
  Serial.println("Press Enter to Continue");

  delay(3000);

  newData = false;
  while (newData == false) {
    recvOneChar();
    delay(1000);  
  }
  AllOff();     
  single();
}



Would you care to elaborate, please?

yes, somehow the text was deleted, when I uploaded the KI CAD, I have just re wrote the issue

Did you ever run ERC? ERC shows 9 errors and 71 warnings. Warnings are reduced to 52 after updating the symbols (common when you open a file made with an older KiCAD. Some of the warnings can be solved easily by adding PWR_FLAG.

I found one of these errors are where you connect two nets.

Another remark, I don't know what monitor you're using, but for me with a old fashioned 1920x1080p 24" monitor, having a schematic done on A3 (!!) will simply wear out my scrollwheel. In this case, use 2 or 3 A4 sheets.

You probably correct these kind of errors in the PCB, but it's easier to just get rid of those errors at early stage so your schematics can pass ERC:

Not connected at all.

Use the keyboard :rofl:

I will wear out my keyboard! I'm not made of money! :slightly_smiling_face: :upside_down_face:

Actually I have never investigated in kbd shortcuts for zoom and move. I'll take a look, thanks!

Not all of us have the necessary version of KiCAD.
If you want additional help post your schematics.

Hi, @jabmel

Can you please post EXPORTED images of your schematic?

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

Yes all the errors are not an issue, as stated, there is no physilcal conection between the 3 power lines, I have tested this also with a multi meter, there is only the leak when the LOAD PIN is called in the sketch

sorry, yes,I added that post the PCB making, Work in progress, not applicable to this PCB as it stands

can you post this, I dont get that error

EXT_5V+ is connected to J4 and J32, what are those?

J4 is the barrel Jack. That connects the 5v

J34 is a set of Pins for testing the 5v external.

Both are ground. No issues.