element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Experts, Learning and Guidance
  • Technologies
  • More
Experts, Learning and Guidance
Ask an Expert Forum Design suggestion for a bus
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Experts, Learning and Guidance to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 33 replies
  • Subscribers 318 subscribers
  • Views 2874 views
  • Users 0 members are here
Related
See a helpful answer?

Be sure to click 'more' and select 'suggest as answer'!

If you're the thread creator, be sure to click 'more' then 'Verify as Answer'!

Design suggestion for a bus

amgalbu
amgalbu over 10 years ago

Hello

I need to develop a custom board (hardware + software) to drive a set pneumatic valves. The requirements are

  • the boards can be stacked (up to 18 boards can be stacked, but I expect this number to be increased in the future)
  • the boards must be configuration-free (no dip-switches to set the board address)
  • the bus must be fault-tolerant: if a board in the stack breaks, the other boards should continue to work properly
  • pneumatic valves are "digital", so the bus must convey only on/off commands

An external board communicates with the stacked boards through the bus and drives each pneumatic valve indivudually

 

The only solution I can think of is to have two serial buses: the first one is an in-out bus used only to configure the address of each board in the stack and is used only when the system is switched on. The second bus connects all the boards in parallel, thus providing the required fault-tolerance

 

However, this solution is far from being elegant... Does somebody have a better idea?

 

Cheers

Ambrogio

  • Sign in to reply
  • Cancel

Top Replies

  • crjeder
    crjeder over 10 years ago in reply to Robert Peter Oakes +1
    I2C adressability is an issue. E. g. a suitable device could be TPS22993 Quad Channel Load Switch with GPIO and I2C Control but it features only 3 adress pins for a max of 8 devices. But each can operate…
  • Robert Peter Oakes
    Robert Peter Oakes over 10 years ago +1
    Then by that measure, using a device like a 23017 http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf would give 16 valves on a board and re duce the count of boards considerably and only needs…
Parents
  • crjeder
    crjeder over 10 years ago

    A purely electrical solution is hard to imagine because of the fault tolerance. If you could lift that requirement than you could have an enable signal line for each module and the position in the stack would determine the "address" of the module by connecting it to a different signal. But if the fault tolerance means an other board should immediately take over the faulty ones function - the only solution I could come up with is dynamic address allocation. Think of something like DHCP running on the bus. Every module on connection asks for an address. A broker assigns the next free adress and if a moule fails the broker will (have to) detect this and reassign the address of the failed module to one of the previously unused ones. For the control software this would be transparent, it will always talk to the same address.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 10 years ago in reply to crjeder

    Taking this idea a little further - use Ethernet - 1 controller to switch, as many driver boards as you like connected to other ports, one dead driver board can't bring the whole system down.  If you need fault tolerance on each drive board you need very careful design, and two Ethernet ports per board and two separate networks. Similar things are done on aircraft.

     

    You could use CAN, still with 2 buses and dual ports on every board. The problem with mere duality is that you never know which of two systems is correct.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • crjeder
    crjeder over 10 years ago in reply to michaelkellett

    Would work but ethernet is orders of magnitude more expensive than e. g. I2C

    CAN is popular choice in those environments.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 10 years ago in reply to crjeder

    Ethernet comes into its own when you want the star connection with off the shelf cheap switch - add on cost of 100M Ethernet port to something with an ARM Cortex M3 or 4 on it is about £5, £2 for the Ethernet enabled micro, £1 for the PHY, £1 for the connector and £1 for luck ! If your cables might be longer than a couple of meters it's hard to beat on cost.

     

    If you don't need speed, or the switch, CAN or even RS232 or 4xx might be OK.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • crjeder
    crjeder over 10 years ago in reply to michaelkellett

    RS232 is point to point. 4xx might work, though.

    You are right, prices for ethernet have come donwn recenly. Still can't beat I2C on very short distances. The question was about stacking PCBs, that's the domain of I2C.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • crjeder
    crjeder over 10 years ago in reply to michaelkellett

    RS232 is point to point. 4xx might work, though.

    You are right, prices for ethernet have come donwn recenly. Still can't beat I2C on very short distances. The question was about stacking PCBs, that's the domain of I2C.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • michaelkellett
    michaelkellett over 10 years ago in reply to crjeder

    The problem with I2C is that it's one down/all down but it's certainly cheap.

    If you want to avoid that (ie one failure kills the bus) you need a switch, or you can mitigate the problem by using several redundant buses or there may be I2C isolators.

    'RS232' doesn't have to be point to be point, although you could argue that it isn't strictly RS232 if used this way. Thurlby Thandar instruments used to be fitted with an 'RS232' port which supported having several instruments in parallel - it's very cheap especially for short runs at logic levels (which isn't RS232 either but there isn't a good name for it - logic level asynchronous NRZ serial doesn't mean a lot to most people.)

    To come up with a real solution for the OP we would need to know a lot more about numbers, costs and the level of integrity required.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • amgalbu
    amgalbu over 10 years ago in reply to michaelkellett

    Hi Michael!

    definitely the solution should be based on a RS485 bus to simplify wiring

    The customer just requires that, in case the board does not power on due to -typically- board's power supply failure, the communication continue to work.There is no safety-critical concerns there. I don't have an idea of the price he expects, but the production volume is about 20k pieces/year

     

    Cheers

    Ambrogio

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube