Strange spikes on AIO

Topics about the Hardware of Revolution Pi
Post Reply
smilykoch
Posts: 4
Joined: 29 Nov 2017, 13:00

Strange spikes on AIO

Post by smilykoch »

Hi Kunbus.

We are experiencing some unwanted "spikes" or "outliers" in out analog measurements, done by the AIO card.
I have attached 4 images showing the same time interval of the 4 analog inputs, where there suddenly appears a spike in the data. There is no way the sensor registered this, and all the 4 sensors are 100% galvanically isolated. In spite of this the peaks appear at exactly the same time. The interval between these spikes is varying, but it happens a 5-10 times an hour roughly.

Image

Image

Image

Image

This is the config we are running with:

Code: Select all

{
  "Devices": [
    {
      "GUID": "4d23a4c0-83b1-04d0-8bcd-be26cf3eefbc",
      "id": "device_RevPiCore_20170404_1_2_001",
      "type": "BASE",
      "productType": "95",
      "position": "0",
      "name": "RevPi Core V1.2",
      "bmk": "RevPi Core V1.2",
      "inpVariant": 0,
      "outVariant": 0,
      "comment": "This is a RevPiCore Device",
      "offset": 0,
      "inp": {
        "0": ["RevPiStatus", "0", "8", "0", true, "0000", "", ""],
        "1": ["RevPiIOCycle", "0", "8", "1", true, "0001", "", ""],
        "2": ["RS485ErrorCnt", "0", "16", "2", false, "0002", "", ""],
        "3": ["Core_Temperature", "0", "8", "4", false, "0003", "", ""],
        "4": ["Core_Frequency", "0", "8", "5", false, "0004", "", ""]
      },
      "out": {
        "0": ["RevPiLED", "0", "8", "6", true, "0005", "", ""],
        "1": ["RS485ErrorLimit1", "10", "16", "7", false, "0006", "", ""],
        "2": ["RS485ErrorLimit2", "1000", "16", "9", false, "0007", "", ""]
      },
      "mem": {},
      "extend": {}
    },
    {
      "GUID": "115fc481-86a5-a7c2-9377-0dccb3ea2718",
      "id": "device_RevPiAIO_20170301_1_0_001",
      "type": "LEFT_RIGHT",
      "productType": "103",
      "position": "32",
      "name": "RevPi AIO",
      "bmk": "RevPi AIO",
      "inpVariant": 0,
      "outVariant": 0,
      "comment": "",
      "offset": 11,
      "inp": {
        "0": ["InputValue_1", "0", "16", "0", false, "0000", "", ""],
        "1": ["InputValue_2", "0", "16", "2", false, "0001", "", ""],
        "2": ["InputValue_3", "0", "16", "4", false, "0002", "", ""],
        "3": ["InputValue_4", "0", "16", "6", false, "0003", "", ""],
        "4": ["InputStatus_1", "0", "8", "8", false, "0004", "", ""],
        "5": ["InputStatus_2", "0", "8", "9", false, "0005", "", ""],
        "6": ["InputStatus_3", "0", "8", "10", false, "0006", "", ""],
        "7": ["InputStatus_4", "0", "8", "11", false, "0007", "", ""],
        "8": ["RTDValue_1", "0", "16", "12", false, "0008", "", ""],
        "9": ["RTDValue_2", "0", "16", "14", false, "0009", "", ""],
        "10": ["RTDStatus_1", "0", "8", "16", false, "0010", "", ""],
        "11": ["RTDStatus_2", "0", "8", "17", false, "0011", "", ""],
        "12": ["OutputStatus_1", "0", "8", "18", false, "0012", "", ""],
        "13": ["OutputStatus_2", "0", "8", "19", false, "0013", "", ""]
      },
      "out": {
        "0": ["OutputValue_1", "0", "16", "20", false, "0014", "", ""],
        "1": ["OutputValue_2", "0", "16", "22", false, "0015", "", ""]
      },
      "mem": {
        "0": [
          "Input1Range",
          "6",
          "8",
          "24",
          false,
          "0016",
          "You must use wire bridges for current measurement!",
          ""
        ],
        "1": ["Input1Multiplier", "1", "16", "25", false, "0017", "", ""],
        "2": ["Input1Divisor", "1", "16", "27", false, "0018", "", ""],
        "3": ["Input1Offset", "0", "16", "29", false, "0019", "", ""],
        "4": [
          "Input2Range",
          "6",
          "8",
          "31",
          false,
          "0020",
          "You must use wire bridges for current measurement!",
          ""
        ],
        "5": ["Input2Multiplier", "1", "16", "32", false, "0021", "", ""],
        "6": ["Input2Divisor", "1", "16", "34", false, "0022", "", ""],
        "7": ["Input2Offset", "0", "16", "36", false, "0023", "", ""],
        "8": [
          "Input3Range",
          "6",
          "8",
          "38",
          false,
          "0024",
          "You must use wire bridges for current measurement!",
          ""
        ],
        "9": ["Input3Multiplier", "1", "16", "39", false, "0025", "", ""],
        "10": ["Input3Divisor", "1", "16", "41", false, "0026", "", ""],
        "11": ["Input3Offset", "0", "16", "43", false, "0027", "", ""],
        "12": [
          "Input4Range",
          "6",
          "8",
          "45",
          false,
          "0028",
          "You must use wire bridges for current measurement!",
          ""
        ],
        "13": ["Input4Multiplier", "1", "16", "46", false, "0029", "", ""],
        "14": ["Input4Divisor", "1", "16", "48", false, "0030", "", ""],
        "15": ["Input4Offset", "0", "16", "50", false, "0031", "", ""],
        "16": [
          "ADC_DataRate",
          "3",
          "8",
          "52",
          false,
          "0032",
          "Use lowest value for highest precision and a maximum 50 Hz suppression",
          ""
        ],
        "17": ["RTD1Type", "0", "8", "53", false, "0033", "", ""],
        "18": [
          "RTD1Wiring",
          "0",
          "8",
          "54",
          false,
          "0034",
          "You must use wire bridges for 2-wire sensors!",
          ""
        ],
        "19": ["RTD1Multiplier", "1", "16", "55", false, "0035", "", ""],
        "20": ["RTD1Divisor", "1", "16", "57", false, "0036", "", ""],
        "21": ["RTD1Offset", "0", "16", "59", false, "0037", "", ""],
        "22": ["RTD2Type", "0", "8", "61", false, "0038", "", ""],
        "23": [
          "RTD2Wiring",
          "0",
          "8",
          "62",
          false,
          "0039",
          "You must use wire bridges for 2-wire sensors!",
          ""
        ],
        "24": ["RTD2Multiplier", "1", "16", "63", false, "0040", "", ""],
        "25": ["RTD2Divisor", "1", "16", "65", false, "0041", "", ""],
        "26": ["RTD2Offset", "0", "16", "67", false, "0042", "", ""],
        "27": ["Output1Range", "2", "8", "69", false, "0043", "", ""],
        "28": [
          "Output1EnableSlew",
          "0",
          "8",
          "70",
          false,
          "0044",
          "Enable slew rate deceleration",
          ""
        ],
        "29": [
          "Output1SlewStepSize",
          "0",
          "8",
          "71",
          false,
          "0045",
          "Slew rate step size",
          ""
        ],
        "30": [
          "Output1SlewClock",
          "0",
          "8",
          "72",
          false,
          "0046",
          "lock rate of slew rate deceleration in kHz",
          ""
        ],
        "31": ["Output1Multiplier", "1", "16", "73", false, "0047", "", ""],
        "32": ["Output1Divisor", "1", "16", "75", false, "0048", "", ""],
        "33": ["Output1Offset", "0", "16", "77", false, "0049", "", ""],
        "34": ["Output2Range", "2", "8", "79", false, "0050", "", ""],
        "35": [
          "Output2EnableSlew",
          "0",
          "8",
          "80",
          false,
          "0051",
          "Enable slew rate deceleration",
          ""
        ],
        "36": [
          "Output2SlewStepSize",
          "0",
          "8",
          "81",
          false,
          "0052",
          "Slew rate step size",
          ""
        ],
        "37": [
          "Output2SlewClock",
          "0",
          "8",
          "82",
          false,
          "0053",
          "lock rate of slew rate deceleration in kHz",
          ""
        ],
        "38": ["Output2Multiplier", "1", "16", "83", false, "0054", "", ""],
        "39": ["Output2Divisor", "1", "16", "85", false, "0055", "", ""],
        "40": ["Output2Offset", "0", "16", "87", false, "0056", "", ""]
      },
      "extend": {}
    }
  ],
  "Connections": []
}
We are very much running out of idea on what this can be caused.

Hope you can assist us.

Best regards,
Mathias
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Strange spikes on AIO

Post by dirk »

Dear Mathias,
we created a test setup with a RevPi Core 3 and an AIO module. Unfortunately we could not see any spikes. I have attached the test results to you.
Measuerement.AIO.Core3.xlsx.zip
(540.97 KiB) Downloaded 684 times
With the oscilloscope we could not detect any abnormalities with a trigger.

I still have some questions about your setup:
Are these 30 second intervals in the timelines of your plots?
We can take the high current
of 60mA in the 1st diagram with the high current ripple.
In the 2nd diagram we read 30mA.

The AIO is only designed for 24 mA.

Can you tell us more about your design? How did you measure?
Was there a shunt resistor in the circuit?

So the values are measured indirectly via a shunt.
or did you measure the values directly from the power input?
Post Reply