ADS1248 Notes

Handling multiple SPI devices including ethernet adapter, SD card, and several ADCs

Ask QuestionAsked todayActive todayViewed 6 times1

I’d like to connect multiple different SPI devices to a Raspberry Pi Zero W (at least 5), with a few specific requirements. The devices would be, if possible:

As I understand, the Pi Zero has one main, and one auxiliary SPI interface, with 2 CS pins on the former and 3 on the latter.

Using device tree, I’ve attempted to configure and enable the interfaces for this, though it’s still not working properly. I’ve done the following to enable the interfaces, using default pin-outs for the wiring:


In /dev/, I can then see spidev0.1, 1.1, 1.1, and 1.2 all visible – 0.0 is not visible but I presume this is being used for Ethernet. I have confirmed that all 5 CE pins are being pulled high by default.

Currently, the Ethernet and MicroSD adapters are on SPI0, with CE0 for ethernet and CE1 for MicroSD. The Ethernet adapter works perfectly, so good start there. I can’t see or mount any SD card volume, though, and I’ve had trouble finding how to do so – does anyone know how to fix this and use the SD as redundant storage?

Additionally, is it even possible to maintain uninterrupted (or at least always contactable) Ethernet connection despite sharing a bus while possibility simultaneously writing to the SD card? Would the OS handle this, or is this a bad idea? The Ethernet adapter’s interrupt pin is connected, if that helps.

For the ADCs, I was intending to have them all on SPI1 (or 2 here, and the SD card adapter if I can’t share it with Ethernet on SPI0), using CE0, CE1, CE2, and DRDY pins as required by the datasheet. We are able to get these working individually currently using the busio Python library and board to provide an SPI interface handle on a separate Pi, but this does not work with the Ethernet adapter (I assume as board looks for spidev0.0 by default?). Either way, I would rather convert this to work with SPI1, or bit-banged separately if I really need (especially if we need >4 ADCs), either way using the pigpio Python library as I’ve previously used it to solve I2C issues with great success, and I would like to keep consistency across the platform and stick to one major library where possible to avoid any conflicts. Does this approach sound sensible, or am I making some flawed assumptions that means this cannot work?

Summary of key questions, as there’s a fair bit of text:

  • How do I use make the SD card available?
  • Is it possible to share SPI0 with continuous Ethernet and intermittent SD card use?
  • Is my described approach for the 3+ ADCs sound, or likely to cause major issues?

Thanks very much for any advice, it is greatly appreciated!sd-cardpi-zerospipigpiodevice-treeshareedit  follow  closeflag asked 2 hours agoTheFaustie1333 bronze badges

  • Hi #TheFaustie, Welcome and nice to meet you. Ah, let me see. Your question is very good, concise and detailed descriptions on user requirements and progress status, problems encounter so far. I am drafting an answer, with information you provided. Please let me know if I am misunderstanding or missing something. Please feel free to always comment and make counter suggestions. I will wait for your confirmation before I move on, suggesting approaches etc. Have a nice project, Cheers. – tlfong01 13 secs ago   Edit   

add a comment

1 Answer



Question in short

How can RpiZW talk to 5 SPI guys, including the following:

  1. 1 x Ethernet adapter
  2. 1 x Micro SD card adapter
  3. 3 x ADS1248, hopefully 3+

Progress and problems encountered so far

  1. Successfully setting up spidev 0.1, 1.0, 1.1, 1.2.
  2. Ethernet card adapter on SPI 0.1 CE0 set up and tested OK, but problem with busIO python, might consider bit banging to workaround.
  3. Micro SD card on SPI 0.1 CE1 setup unsuccessful, of course not yet tested.

Specific requirements

  1. Ethernet adapter preferably working non stop, at least communication non stop.
  2. All 3 ADCs on single bus, hopefully SPI 1, CE0, CE1, CE2, and and GPIO x 1


Short answer

/ to continue, …

Long answer

/ to continue, …


(1) ENC28J60 SPI Ethernet Controller Data Sheet – Microchip

(2) ENC28J60 Controller Board US$4 – AliEXpress

(3) MicroSD Card Productsheet – Diligent Pmod

(4) MicroSD Card Reference Manual – Diligent Pmod

(5) ADS1248 24-Bit, 2-kSPS, ADC – TI

(6) ADS1248 Technical Documentation – TI

(7) ADS1248 14 Channel ADC Module – AliExpress

/ to continue, …


/ to continue, …

End of answershareeditdeleteflagedited 6 mins agoanswered 29 mins agotlfong013,28733 gold badges77 silver badges2121 bronze badgesadd a comment


Categories: Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.