W
Maybe it makes sense to start a new topic, since we have gone from Ladder Editor to homegrown PLC hardware. I propose that we spawn this new topic from the this original thread: http://www.control.com/thread/1264535992#1265998918
To summarize...
CWW said:
"Or if you can tear yourself loose from the wide bus thing and go thoroughly modern, you could now implement with a serial bus ([email protected]) and the plethora of I/O expanders from Microchip,etal. and have a very low cost backplane and still make very respectable scan rates with cool stuff like interrupt on change at the cost of software complexity"
"Even better than that from a cost standpoint is that the expanders I was looking at don't need a uP to do the interrupt on change (report on exception), and a card would need little more than a local regulator( to use 24V power), the chip and 24V interface"
"I envision PC mount wire clamp connectors for the world end ( the little blue jobs you see all over) and pin headers and sockets for the bus end."
KEJR said:
"Using an 8 bit micro (I'm partial to AVR) on the IO cards to talk to the bus is a good idea especially since you can program them to be event driven on change of state"
"Developing a backplane for a serial bus is rather easy once the mechanicals are taken care of"
M Griffin said:
"If you are looking for a design for creating your own backplane bus system you might want to look at I2C or SPI buses. There are a lot of chips which support these protocols and I can't think of a better way of getting a low package count design."
"If you are thinking of putting a microprocessor on each I/O card, then you might want to give serious thought to using USB as your I/O bus. It might not be an obvious choice at first sight, but it has a number of advantages." See this link for details: http://www.control.com/thread/1264535992#1266016850
First of all, I think this idea has merit. It would be neat if we could design and develop some open source hardware with schematics, board layouts, and firmware open to all. I would suggest that we agree on a CAD and PCB package that is freely available. I have had good luck with TinyCAD and freePCB. Then we need a simple and basic design.
We should agree on board sizes and interconnects. Some possibilities for board sizes are the ExpressPCB MiniBoard size, 2.5x3.8". This is popular do to their 3 for 51 dollar deal. Also, any board that can snap into a snapTrack might be nice, maybe 2.75 or 3" wide by x length. USB connectors or 10 pin headers are good candidates for interconnects.
We could have some very standard I/O boards and possibly more than one style of CPU, since we will probably never agree on one.
I was thinking of a serial bus also, parallel buses have numerous issues. I think most PLC's have gone from parallel memory style buses to serial backplanes long ago.
SPI is very simple, but it requires a chip select for each device. Having said that, a 10 pin ribbon could have power, ground, TX, RX, and 6 address lines for a total 64 devices. Each device can have multiple I/O points.
I2C is also practical, it uses 2 wires and has an addressing scheme. I2C is more complicated and somewhat slower, but it is also widely supported. I have used I2C on a 4 wire phone cord with modular jacks for an I/O bus.
I also like M Griffins idea of USB, it is more complicated, but I agree that the advantages are numerous. Then the I/O can be used with a PC as well as a micro-controller. Micro-controllers are commonly adding USB endpoints these days. Could we use USB connectors on a backplane? That way, our baords could be used in a backplane or standalone. Do any microcontrollers have a USB master? Maybe not... If not, then the USB would be great for PC comms from the CPU board, and maybe a serial bus still makes sense for the I/O backplane.
Bill Sturm
To summarize...
CWW said:
"Or if you can tear yourself loose from the wide bus thing and go thoroughly modern, you could now implement with a serial bus ([email protected]) and the plethora of I/O expanders from Microchip,etal. and have a very low cost backplane and still make very respectable scan rates with cool stuff like interrupt on change at the cost of software complexity"
"Even better than that from a cost standpoint is that the expanders I was looking at don't need a uP to do the interrupt on change (report on exception), and a card would need little more than a local regulator( to use 24V power), the chip and 24V interface"
"I envision PC mount wire clamp connectors for the world end ( the little blue jobs you see all over) and pin headers and sockets for the bus end."
KEJR said:
"Using an 8 bit micro (I'm partial to AVR) on the IO cards to talk to the bus is a good idea especially since you can program them to be event driven on change of state"
"Developing a backplane for a serial bus is rather easy once the mechanicals are taken care of"
M Griffin said:
"If you are looking for a design for creating your own backplane bus system you might want to look at I2C or SPI buses. There are a lot of chips which support these protocols and I can't think of a better way of getting a low package count design."
"If you are thinking of putting a microprocessor on each I/O card, then you might want to give serious thought to using USB as your I/O bus. It might not be an obvious choice at first sight, but it has a number of advantages." See this link for details: http://www.control.com/thread/1264535992#1266016850
First of all, I think this idea has merit. It would be neat if we could design and develop some open source hardware with schematics, board layouts, and firmware open to all. I would suggest that we agree on a CAD and PCB package that is freely available. I have had good luck with TinyCAD and freePCB. Then we need a simple and basic design.
We should agree on board sizes and interconnects. Some possibilities for board sizes are the ExpressPCB MiniBoard size, 2.5x3.8". This is popular do to their 3 for 51 dollar deal. Also, any board that can snap into a snapTrack might be nice, maybe 2.75 or 3" wide by x length. USB connectors or 10 pin headers are good candidates for interconnects.
We could have some very standard I/O boards and possibly more than one style of CPU, since we will probably never agree on one.
I was thinking of a serial bus also, parallel buses have numerous issues. I think most PLC's have gone from parallel memory style buses to serial backplanes long ago.
SPI is very simple, but it requires a chip select for each device. Having said that, a 10 pin ribbon could have power, ground, TX, RX, and 6 address lines for a total 64 devices. Each device can have multiple I/O points.
I2C is also practical, it uses 2 wires and has an addressing scheme. I2C is more complicated and somewhat slower, but it is also widely supported. I have used I2C on a 4 wire phone cord with modular jacks for an I/O bus.
I also like M Griffins idea of USB, it is more complicated, but I agree that the advantages are numerous. Then the I/O can be used with a PC as well as a micro-controller. Micro-controllers are commonly adding USB endpoints these days. Could we use USB connectors on a backplane? That way, our baords could be used in a backplane or standalone. Do any microcontrollers have a USB master? Maybe not... If not, then the USB would be great for PC comms from the CPU board, and maybe a serial bus still makes sense for the I/O backplane.
Bill Sturm