Pages: 1 ... 3 4 [5]   Go Down
Author Topic: Modular Stackable Microcontroller System (lots of pics)  (Read 10076 times)
0 Members and 1 Guest are viewing this topic.
Fresno, CA, USA
Offline Offline
Full Member
***
Karma: 1
Posts: 153
Arduino rocks (literally, with a WaveShield!)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You're right, I was a little hung up on the 119 addressing. I've used I2C a lot, at least in its SMBus implementation, for interfacing with laptop batteries, and spent hours looking at its timing and protocol... I've just only really dealt with one device at a time smiley-razz

Really, the 119 address would no longer be a "broadcast", it'd be the processor sending commands to the board that's holding the address line high. Maybe this could be the sequence of events at the assigning-time (after one board has picked out that it's holding the address line this "round"):
- all other devices are in "delay loop" mode while they see the address line is high, so they aren't listening
- processor sends "hey, device 119, identify yourself" (start -> address 119 -> "read" -> read expected bits of information -> stop)
- device sends "i'm a relay board, my programmed number is 32"
-- if the response is garbled, perhaps 2 modules saw the line low at the same time; simply discard the data, send an error response, and the line should go low to get another request; those erroneous boards would just get re-queued within the next few milliseconds.
- processor sends "hey, device 119, take address 2." (start -> address 119 -> "write" -> write its new address -> stop)
- processor sends "hey, device 119, did you get that?" (start -> address 119 -> "read" -> read the new address -> stop)
- processor remembers that a relay board is present with ID# 32, previously programmed to its EEPROM, and is on I2C address 2 now.
- device goes to address 2 and releases address line
- next device leaving delay loop sees that address line is free and begins the cycle again (and by holding high before the others come back from their delay, it effectively "queues" the boards to be addressed).

It should be able to address all the devices on the backplane within 1 second, even...
« Last Edit: May 31, 2011, 07:03:00 pm by FalconFour » Logged

NZ
Offline Offline
Sr. Member
****
Karma: 0
Posts: 390
Turtle in a hard shell
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the further clarification.
I understand now, and yes, by having the additional address line this sounds feasible.

It does mean having an additional line for addressing, each board would then have to isolate this line (as per my design), and it would have to be bi-directional isolation at that.

All signals going into the backbone need to be isolated, so no 1 board can blow up another board if something goes wrong.

Your proposal is a method to extract the serial number from each board while each is addressed the same on the I2C bus - which is great. Isolating this line on each board bidirectionally requires another chip on each board though.

I will have a think.

Thanks
James
Logged

NZ
Offline Offline
Sr. Member
****
Karma: 0
Posts: 390
Turtle in a hard shell
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Life got a bit busy however I have spent a bit more time on this and finally have everything to a point where I think its ready to get a few sets printed at PCBCart and get some cases made.

Here is a render of the system.
The modules which are not attached still need their PCB's updating, however the concept is right, and you cant really tell from the images. There is still 1 case I need to make a front for also, that is the Ethernet/Bluetooth module - but I dont have CAD images of the WIZNET 812MJ or the Sena Bluetooth module, so its a little harder to design a front for as I dont know their exact size.

Anyway, 2 renders attached - I havent included them to show on the forum as they are larger size.

Full Assembly
Processor Board

Cheers
James
Logged

NZ
Offline Offline
Sr. Member
****
Karma: 0
Posts: 390
Turtle in a hard shell
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Just made another Module in the last few hours, to fill a gap which I couldnt cover.

MOSFET Output Module smiley

This board has 8 MOSFETS which do High Side Switching, which are selectable in 2 groups of 4 outputs to select 5V switching or External Voltage switching. The 5V switching I have limited to 200mA shared between the outputs, however will be good for PWM'ing or switching high impedence inputs, such as Stepper Motor Drivers etc. The External Voltage switching is so you can provide it an external voltage, such as 24VDC, and the outputs will then output that voltage (minus the voltage drop), so you can therefore PWM 24V etc.
The MOSFETS I am using are IRLZ44N (http://www.irf.com/product-info/datasheets/data/irlz44npbf.pdf), which are Logic level.
I will probably limit the switching current to 1A or 2A, as I dont want to have to provide massive heatsinks, even though these things are capable of switching massive currents.

Still have checks to do to make sure I have done it right, but it could be a very handy module to have.

Today I went around to my mates place, who has a few projects for me, and we figured out the requirements of each project. Each of his projects will use 6 or 7 of the modules, so will be a good test of how they perform. 2 of the projects required this new module, hence me putting effort in this evening to make it.

Comments welcome, here is a picture.



Information was gained from this old post, so I will mention it - Thanks to those involved.
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1230677423

James
« Last Edit: July 23, 2011, 07:14:46 am by WanaGo » Logged

NZ
Offline Offline
Sr. Member
****
Karma: 0
Posts: 390
Turtle in a hard shell
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Changed my mind with the above board, after discussion with Graynomad.

Have modified it to use the L293 Half Bridge chip instead, which gives a push/pull arrangement.
It will do what I wanted the above to do, but will be able to pull to GND too.



Cheers
James
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

EY MAN!!! A GOOD OPTION IS THE EURO CARD CONECTOR AND THE EURO RACK.  CHECK IT
Logged

NZ
Offline Offline
Sr. Member
****
Karma: 0
Posts: 390
Turtle in a hard shell
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
EY MAN!!! A GOOD OPTION IS THE EURO CARD CONECTOR AND THE EURO RACK.  CHECK IT

Gee talk about digging this up from the dead

Wow alot has happened since this....

ah the memories... smiley
Logged

Global Moderator
Offline Offline
Brattain Member
*****
Karma: 503
Posts: 19089
Lua rocks!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

EY MAN!!! A GOOD OPTION IS THE EURO CARD CONECTOR AND THE EURO RACK.  CHECK IT

Explain why this isn't spam.
Logged


UK
Offline Offline
Sr. Member
****
Karma: 4
Posts: 331
Arduino - very interesting !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
EY MAN!!! A GOOD OPTION IS THE EURO CARD CONECTOR AND THE EURO RACK.  CHECK IT

Gee talk about digging this up from the dead

Wow alot has happened since this....

ah the memories... smiley

imagine digging the project back from the dead smiley-wink
Logged

Pages: 1 ... 3 4 [5]   Go Up
Jump to: