Author Topic: Low-cost wiring+connector options for multi-drop bus connecting ~100 small PCBs  (Read 847 times)

0 Members and 1 Guest are viewing this topic.

Offline mark03Topic starter

  • Frequent Contributor
  • **
  • Posts: 748
  • Country: us
I'm trying to design an array of digital (PDM) MEMS microphones, with ~ 100 elements spread over a one-square-meter aperture.  My initial thought is to produce a bunch of small PCBs, each one having a microphone and a bit of circuitry that would let me clock out samples, shift-register style.  (The 100 boards would be split into parallel chains, e.g. 10x10, to keep this workable.)  The advantage is I don't have to commit to a particular spacing or grid style (rectangular, hexagonal, polar...) ahead of time, and the boards should be cheap.

Basically, each microphone wants a (say) 2-MHz "slow" clock, so each chain of microphones needs a distributed shift register where a "fast" clock can shift out a single PDM bit from all the mics in the chain during each "slow" clock cycle.  Slow and fast clocks could be LVDS.  This is all loosey-goosey---just trying to work out the concept.

One obvious disadvantage of such an approach is the interconnect complexity.  I'm looking for an inexpensive connector solution to form the chains, where each chain could span a distance of up to three or four feet.  Something like IDC in concept, where I install connectors onto a single cable and each PCB has one mating connector.  Flat flex or anything else more compact (and better SI) than ribbon cable would be nice.  Are there such things?

My goal would be $1 per PCB for the connectors and wiring.  Not sure this is realistic, but it never hurts to ask.
 
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 4716
  • Country: nz
Have you selected what MEMS microphone chip to use? Analogue or digital? How many bits per sample? What sample rate? If digital what interface?

If the answer are not crazy then I don't know why you'd consider anything other than using a $0.10 32 bit 24-48 MHz microcontroller such as the Puya PY32f002 or WCH CH32V003 rather than some lash-up trying to build a bus using shift registers and logic. The cheapest 8 pin SOIC package might do what you want, or the only slightly more expensive 16 or 20 pin ones certainly will.

Preferably the WCH as a lot more people have experience with them now, there are lots of examples on the internet etc. They run off a wide voltage range (3.3V - 5V, plus another 0.5V either side), don't need a crystal or any other external components (just a bypass cap between GND and Vcc can be useful).

If the bit rate isn't crazy you could use an I2C bus. It's just two wires, one is clock, which is provided by a master which polls up to 127 slave devices. 400 kHz is a standard speed, but there are also 1 MHz and 3 MHz.

With a microcontroller you could collect samples (up to the 2 KB RAM size on the CH32V003) and then return them all when polled, so the polling rate can easily be 100 or 1000 times lower than the sample rate if you want.

Back in the 1980s we used low cost Apple "LocalTalk" networking between PCs (mostly Macs). This used two twisted pairs to network up to 300m at 230.4 kbps. A 3rd party vendor, Farallon, improved on this using a single pair with I think more voltage and you could network over 1800 ft with straight cable or 4500 ft with a single telephone wire pair. There was also a 1 Mbps upgrade. Each computer used a Zilog 8530 SCC (UART).  The original LocalTalk and PhoneNet boxes were transformer-coupled, but here is a plan for making compatible but cheaper connections using capacitor coupling instead: https://www.funet.fi/pub/mac/doc/phone-net-connectors.txt  The packet protocols are well documented, and I imagine there are software librareis available.

But on the scale you want, I2C should be fine. I think the I2C spec says 1m maximum, but 2-3m can work.

Note that MEMs microphones all seem to have I2S interfaces, which I think can have multiple devices (channels) on a daisy chain, but is not as flexible as I2C, which is why you need a microcontroller to convert. If microphone chips had I2C then you wouldn't need a per-microphone microcontroller at all, just one for your whole array.
« Last Edit: November 30, 2024, 07:04:18 am by brucehoult »
 

Offline mariush

  • Super Contributor
  • ***
  • Posts: 5166
  • Country: ro
  • .
Ethernet jacks without magnetics are very cheap, like 10-30 cents a piece. .. you have 8 pins, 4 twisted pairs ... use one pair for data (i2c, i2s,spi, rs485 or whatever), one pair for clock, one for power, other pairs for whatever (select active device) ... for example you could buffer 100 ms or whatever, then transfer the data from each device within 10ms

ex https://www.digikey.com/en/products/detail/adam-tech/MTJ-881X1/9832263

or https://www.lcsc.com/product-detail/Ethernet-Connectors-Modular-Connectors-RJ45-RJ11_Ckmtw-Shenzhen-Cankemeng-R-RJ45R10P-B000_C386758.html

or  https://www.lcsc.com/product-detail/Ethernet-Connectors-Modular-Connectors-RJ45-RJ11_Ckmtw-Shenzhen-Cankemeng-R-RJ45R08P-A004_C385834.html

(the last one is 12 cents each if you buy 100+)

Connectors may be relatively expensive at 10-30 cents  but you can buy ready made patch cords at various lengths in bulk, could go down to something like 50 cents for a 30 cm or 50cm patch cable with factory installed plugs. Digikey has them at 70 cents if you buy 100, and if Digikey has them so cheap, other places will be cheaper.

One other comes to mind ...  sata data connectors and sata cables.

sata data has 2 pairs and ground wires separating them and data cables are cheap in volume and come with locking clips. 
Could be enough for voltage and clock, data+ and data-, and ground.

You can get a 100 pack of 40 cm sata cables with latch for around $45 and the connectors themselves are 10-15 cents on lcsc

even plain usb could be an option but the basic type-a to type-a cable doesn't have any latch or retention mechanism

edit : sata may be a bad idea because of the relatively low insertion count rating (50-100 cycles) and because cables are relatively fixed length (usually 30-50cm lengths), with ethernet you can even make your own cables to whatever lengths you want.
« Last Edit: November 30, 2024, 08:21:25 am by mariush »
 
The following users thanked this post: Someone, mark03

Offline mark03Topic starter

  • Frequent Contributor
  • **
  • Posts: 748
  • Country: us
Have you selected what MEMS microphone chip to use? Analogue or digital? How many bits per sample? What sample rate? If digital what interface?

If the answer are not crazy then I don't know why you'd consider anything other than using a $0.10 32 bit 24-48 MHz microcontroller such as the Puya PY32f002 or WCH CH32V003 rather than some lash-up trying to build a bus using shift registers and logic. The cheapest 8 pin SOIC package might do what you want, or the only slightly more expensive 16 or 20 pin ones certainly will.

Digital microphones.  (Also, vast majority are PDM, not I2S.)

Cheap MCUs would be interesting if there was a problem here that they could solve.  But each microphone generates a ~ 2 Mbit/s stream and that needs to be passed down the line and aggregated somehow.  So we are way beyond I2C bandwidths here.  (PDM is sigma-delta modulation---noise shaping.  So if the $0.10 MCU has enough oomph to run the decimating filters, then the data rate reduces to the PCM bandwidth, e.g. 16 bits @ 20 ksps or so.  And you can then add the samples as you go down the line... as long as you make provision for two-way communication so the central controller can set the beamforming delays at each node.  But even "slow" interconnect needs to be figured out.  I don't see how even I2C vs, say, fast SPI or LVDS changes the interconnect cost that much---see @mariush's comments.)

I'll take a look at these cheapo MCUs to see how much DSP they're capable of.  I assume they don't have hardware CIC filters (aka "digital microphone peripheral").

Edit:  Thinking about this some more, there are definite pros to preserving the PDM stream from each individual microphone, because then you can do your beamforming retrospectively, form multiple beams at the same time, etc. in a PC.  So a higher-speed link (~ 20 Mbit/sec minimum for a single chain of ~ 10 microphones) would be preferred, even if it were possible to cheaply combine the microphones in a distributed fashion as suggested above.
« Last Edit: December 01, 2024, 06:14:32 pm by mark03 »
 

Offline mark03Topic starter

  • Frequent Contributor
  • **
  • Posts: 748
  • Country: us
Ethernet jacks without magnetics are very cheap, like 10-30 cents a piece. .. you have 8 pins, 4 twisted pairs ... use one pair for data (i2c, i2s,spi, rs485 or whatever), one pair for clock, one for power, other pairs for whatever (select active device) ... for example you could buffer 100 ms or whatever, then transfer the data from each device within 10ms
[...]
One other comes to mind ...  sata data connectors and sata cables.

sata data has 2 pairs and ground wires separating them and data cables are cheap in volume and come with locking clips. 
Could be enough for voltage and clock, data+ and data-, and ground.

You can get a 100 pack of 40 cm sata cables with latch for around $45 and the connectors themselves are 10-15 cents on lcsc

Thanks @mariush!  I guess cat5 could be workable and cheap, although I had really been hoping for a multidrop scheme where you only need one connector per microphone PCB, not two.  But I will think about this some more.  I wonder how short you can get patch cables?  Would look pretty funny to have 100x 10-cm long cables, but hey, whatever works.

This *would* double or triple the area of each microphone PCB, just to have mounting space for the RJ45s.  That could be the biggest cost driver of this solution, right there.  I guess SATA would be smaller.
 

Offline mariush

  • Super Contributor
  • ***
  • Posts: 5166
  • Country: ro
  • .
If you want inline, you could just do a 2x5 header (mass produced as its used on computer motherboards for usb 2.0 headers)

Then you could use 2x5 connectors and 10 wire ribbon cables and you just press the ribbon cable on the connectors

connector with walls and key  : https://www.lcsc.com/product-detail/IDC-Connectors_BOOMELE-Boom-Precision-Elec-2-54-2-5P_C5665.html

plug : https://www.lcsc.com/product-detail/IDC-Connectors_BOOMELE-Boom-Precision-Elec-2-54-2-5P_C8373.html

ribbon cable : https://www.digikey.com/short/zmz3zbzw

works out to around 1$ a meter. cheaper if you get a large spool from lcsc or aliexpress or somewhere.

Probably would still be a good idea to have two connectors , one on each side of the board, as would make it easier to make custom length cables and reuse cables.

one concern with the ribbon cables is that they're not shielded, at least with ethernet you get twisted pairs. also being so flat and wide, if you install this in the air and wind catches and blows on the ribbon cable isn't that gonna make some noise that could affect the microphones?

You can get really thin ethernet cable and also you can get plugs with open holes at the ends to make it easy to crimp the wires in connectors, so you could make custom lengths really fast and easy.


 

Offline mark03Topic starter

  • Frequent Contributor
  • **
  • Posts: 748
  • Country: us
Perhaps I should be looking at ribbon cable.  It makes me nervous trying to run clocks over a meter or two, no twisted pairs, and ~10 stubs along the way, although I should be able to keep the stubs pretty short (1 cm?).  Maybe with the right layout of ground pins.

Considering the cat5 / RJ45 alternative, if I were to use those cheap connectors (w/o magnetics), how do you think the signal integrity would compare?  In that scenario I have cat5 to connector to PCB traces to connector to cat5, repeated ten times down the line.  I would worry about the connector discontinuities.  (I can certainly figure out the trace differential impedance with Saturn PCB etc.)

I did see some cheap USB C to USB C cables on aliexpress, which got me wondering I could use that instead of cat5 and RJ45 connectors.  The problem is I don't actually know how many pins are connected through... it depends on the type of cable and the sellers generally aren't providing that information.  Cat5 is nice as you know exactly what you have.  (I never realized you could buy patch cables that short, but indeed you can :)
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 4716
  • Country: nz
Cheap MCUs would be interesting if there was a problem here that they could solve.  But each microphone generates a ~ 2 Mbit/s stream

It would have helped IMMENSELY if you had specified such parameters at the outset. That's 50% more than a stereo CD data stream!
 

Offline mark03Topic starter

  • Frequent Contributor
  • **
  • Posts: 748
  • Country: us
Cheap MCUs would be interesting if there was a problem here that they could solve.  But each microphone generates a ~ 2 Mbit/s stream
It would have helped IMMENSELY if you had specified such parameters at the outset. That's 50% more than a stereo CD data stream!
I did say "each microphone wants a 2-MHz clock".  I assumed familiarity with PDM digital MEMS microphones and sigma-delta modulators generally.
 

Offline Scrts

  • Frequent Contributor
  • **
  • Posts: 800
  • Country: lt
Look up TE Micro-Match connectors: https://www.te.com/en/products/brands/micro-match/miniature-ribbon-cable-connectors.html
They've been used in industrial and medical devices as well.
 

Offline Simmed

  • Contributor
  • Posts: 44
  • Country: 00
in a 10x10 cm grid
if the pcb is made 14 cm long
the pcb could form up a nice grid diagonally
so the ends, top could be male pin ? bottom could be female ?
so some clever arrangement ? each end will just plug the next end ?
something to that effect ? you get the idea ?
« Last Edit: December 02, 2024, 06:33:18 am by Simmed »
So much spam, so little time.
 

Offline nali

  • Frequent Contributor
  • **
  • Posts: 730
  • Country: gb
I've seen a similar-ish interconnect scheme done with fibreoptic cable, in this case for LED matrix panels. It'll add a layer of complexity and cost  to your design e.g. CPLD but make the actual deployment pretty simple and interconnect length isn't a problem (also EMC friendly).
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf