EMBIR-JX


38 posts   Page 1 of 2   1, 2
by Pepito » Wed Jun 27, 2012 5:31 pm
I'm working on a new IO card. Prototype is already done.
Description:
Name: EMBIR-JX
Size: same as Raspberry PI
IO's: 32, programmable in groups of 4 equal
a.) digital in ( 12V - 36V DC )
b.) analog in ( 10 bit resolution )
c.) digital out ( 12V - 36V 150mA / 500mA peak each )
any combination is possible ( e.g. 2 x 4 analog in, 1 x 4 digital in, 5 x 4 digital out = 32 IO's )
Interface: SPI and optional 2 inputs for interrupts ( interrupt on change, power fail, burst on power, etc )
2 x 26 pin flat cable connectors for IO's, Vb1, IO_1, IO_2, IO_3, IO_4, GND, Vb2, IO_5 ......
Optional:
1.) up to 32 LED's, one 4+1 SIP resistor array for each group of 4 LED's
2.) 2.5V Reference for AD converter ( for 99% not required, internal reference is good )
3.) Oscillator, in case 100% sync of both IO interfaces is required ( only a possibility )
4.) possible to stack another EMBIR-JX on top ( without any cable ) to get 64 IO's

Circuit is robust, IO chip is designed for industrial applications ( robotics ).

Question: is anybody interested on that? My interest is NOT to sell it. But I can't spent endless time on that for support etc. because I have to do my work. Can provide the Target File. But I can't provide any parts, I'm not a distributor or dealer.
Is somebody able to help on interrupt driven SPI driver for RPI / EMBIR-JX?

Pepito
Attachments
EMBIR-JX-s.jpg
EMBIR-JX prototype
EMBIR-JX-s.jpg (62.16 KiB) Viewed 21596 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by mjtessmer » Thu Jun 28, 2012 2:30 am
Will you make a block diagram or schematic available?
Posts: 22
Joined: Sun Nov 20, 2011 12:50 am
by rurwin » Thu Jun 28, 2012 6:41 am
I does sound interesting; that is a decent I/O spec, the only thing you are missing is anti-alias filtering on the AIs but that could be added externally.

Any possibility of analogue outputs?

The important question of course is price.
User avatar
Forum Moderator
Forum Moderator
Posts: 2933
Joined: Mon Jan 09, 2012 3:16 pm
by Pepito » Thu Jun 28, 2012 8:08 am
Filtering is implemented, programmable, also blink function. Analog out is a good idea ..... for version 2.0 :D
And a lot more:
– Short-circuit-proof highside drivers with diagnosis function
– Active clamp circuit for use with inductive loads
– Load diagnosis for driver current, output voltage and impedance (cable fractures, load resistance and short circuits)
– Pull-up/Pull-down current sources (0.2, 0.6, 2 mA) configurable
– 10-bit A/D converter for sensing and diagnosis measurement
– Safety features: voltage and ground monitor, temperature sensor with warning and shutdown features, power output enable
– Programmable interrupt generation with event storage
– Variable digital filters for the debouncing of I/O signals

I want to provide the schematic / layout data in Target PCB & Gerber format. For free of course.
But let me work a little bit more on documentation and Linux driver.
Final solution should work interrupt driven ( C / C++ ).
My Raspberry is still not arrived, was expected last week, can test only with other SPI source.

Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Thu Jun 28, 2012 9:45 am
If you need filter in front of the analog inputs, ok, there is still some space on the pcb.
Will provide the Target PCB & Gerber sources, for free of course. Then you can add what you need.
Analog out is a good idea. Space for AD converter is available, but not for additional connector.
Think it's better to design EMBIR-AD, same size, with good AD on it.

Some more Information out of my spec ( still working on it ):

– Short-circuit-proof highside drivers with diagnosis function
– 500 mA pulse and 150 mA permanent load driving capability
– Active clamp circuit for use with inductive loads
– Load diagnosis for driver current, output voltage and impedance (cable fractures, load resistance and short circuits)
– Pull-up/Pull-down current sources (0.2, 0.6, 2 mA) configurable
– 10-bit A/D converter for sensing and diagnosis measurement
– Safety features: voltage and ground monitor, temperature sensor with warning and shutdown features, power output enable
– Programmable interrupt generation with event storage
– Variable digital filters for the debouncing of I/O signals

Thinking about optocoupler for SPI, makes sense?

Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Sat Jul 07, 2012 6:04 pm
Made some final tests with my driver, now it works stable. Written in C, together with a
little program to send and receive data from EMBIR-JX..
The driver is verifying each sent / received data byte. It's a secure protocol.
But very fast. If I use the 2. SPI channel, it is possible to
use 4 EMBIR-JX at the same time ( 128 IO's ).
Remember, EMBIR-JX is not designed to switch only LED's on and off,
they are normally not required.
It's possible to check for open's or short's on the outputs,
so if you want to control a CNC machine, mill machine, alarm system of your home, washing machine, switch relays, lamps, solenoids etc. read and compute lot's of analog inputs, then EMBIR-JX is the right one.
Especially in case you are interested on enhanced diagnostics and safety.

Somebody interested on that?

Pepito
Attachments
2xEMBIR_JX_3_s.jpg
2 EMBIR-JX on RPI GPIO connector
2xEMBIR_JX_3_s.jpg (62.91 KiB) Viewed 21353 times
2xEMBIR_JX_4_s.jpg
2 EMBIR-JX on RPI GPIO connector
2xEMBIR_JX_4_s.jpg (62.23 KiB) Viewed 21353 times
2xEMBIR_JX_5_s.jpg
2 EMBIR-JX on RPI IO connectors
2xEMBIR_JX_5_s.jpg (63.92 KiB) Viewed 21353 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Sun Jul 08, 2012 9:27 am
mjtessmer wrote:Will you make a block diagram or schematic available?


Idea is to provide all sources, schematic, layout and driver code for free.
At the moment I'm working on human readable documentation. :oops:

Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by mjtessmer » Mon Jul 09, 2012 3:51 am
Could you post a large high-resolution photo of the
top side of the board and if there any components
on the bottom side? It would help to determine what
chips you are using. I assumed, that when you
started your project, you created some block diagram
of what chips you planned to use and how they were
interconnected. I wasn't expecting the details of a
schematic.
Posts: 22
Joined: Sun Nov 20, 2011 12:50 am
by Pepito » Mon Jul 09, 2012 12:38 pm
mjtessmer wrote:Could you post a large high-resolution photo of the
top side of the board and if there any components
on the bottom side? It would help to determine what
chips you are using. I assumed, that when you
started your project, you created some block diagram
of what chips you planned to use and how they were
interconnected. I wasn't expecting the details of a
schematic.


Yes, that's fine for me. And there is nothing on the bottom side. All optional stuff ( Oscillator, 2.5V Reference, LED's, Resistors ) is THD, so it's possible to solder that by hand. At the moment the SMD components are also soldered by hand, you need some experience for that.

Still working on documentation, without it's hard to understand. With the driver it's very simple and easy to use.

Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Mon Jul 09, 2012 2:26 pm
here is a simple block diagram of EMBIR-JX.
Opto couplers are currently not on the PCB, if required, an option for the future.
The component name is iC-JX, 2 of them are on one EMBIR-JX board.
Datasheet is here http://www.ichaus.de/jx ( English and German ).

Pepito
Attachments
EMBIR-JX_on_Datasheet.jpg
EMBIR-JX block diagram
EMBIR-JX_on_Datasheet.jpg (56.32 KiB) Viewed 21273 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Wed Jul 11, 2012 7:10 pm
here is a picture of the latest EMBIR-JX PCB ( top ).
The oscillator, the 2.5V diode and the LED's are optional, in normal case not required.
Have to find a good place to save all that stuff.
My account is space and volume limited.

Pepito
Attachments
EMBIR_JX_2.0_s.jpg
EMBIR-JX PCB
EMBIR_JX_2.0_s.jpg (53.07 KiB) Viewed 10931 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Thu Jul 12, 2012 6:05 pm
the latest version of EMBIR-JX is ready for download.
It's made with TARGET-PCB.
A free viewer is available here:
http://www.target-3001.de/target/v15/english/tarv15viewer_e.exe
Think that one is very easy to use.
The Schematic/PCB ( one file contains everything ) is available here:
http://dl.dropbox.com/u/38387544/EMBIR_2.0_MF.T3001
Please let me know in case the download doesn't work.
Please give me some time for documentation.

Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Thu Jul 12, 2012 10:58 pm
I made an adapter board to make it more easy to connect on EMBIR-JX.
Available for download: http://dl.dropbox.com/u/38387544/EMBIR_Adapter.T3001
It's TARGET PCB format.
Flat cable connection to EMBIR-JX.
Then you need only a screw driver to connect your lamps, relays, solenoids, potentiometer or whatever it is.
Pepito
Attachments
EMBIR_Adapter.jpg
Adapter for EMBIR-JX
EMBIR_Adapter.jpg (58.94 KiB) Viewed 10132 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Sun Jul 15, 2012 11:20 pm
I'm going to add resistors and caps for analog inputs.
So in case input voltage exceed the limit, it's possible to justify.

Thinking also about opto coupler for digital inputs.
Does it make sense? Better to isolate the SPI interface?
There is some space on the board..... but:
Currently it's a one layer board, would like to keep it with only 1 layer.

Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Tue Jul 17, 2012 11:20 pm
here is the new Breakout Adapter Board for EMBIR-JX.
Flat cable connection to EMBIR-JX,
screw type connector to connect on cable without burning fingers :D

Especially for analog inputs it's possible to use a resistor voltage divider to have best fit
to your requirements, also possible to add capacitors.
Digital inputs do not need a filter, the IO chips contain programmable digital filters for that.

Please use 0 Ohm resistors or wires for RN1, RN2, RN3, RN4, RN5, RN6, RN7, RN8 if the divider is not required. Use resistor networks in DIL8 ( 4 resistors ) or DIL16 ( 8 resistors ) or single 125mW
resistors. Do not connect directly on 220V or 110V. For that you need capacitive divider and optocouplers.

Schematic / PCB ( Target PCB format ) is ready for download here:
http://dl.dropbox.com/u/38387544/EMBIR_Adapter_2.0.T3001

High res picture is here:
http://dl.dropbox.com/u/38387544/EMBIR_Adapter_V2.0.jpg

A free Target PCB viewer is available here:
http://www.target-3001.de/target/v15/english/tarv15viewer_e.exe

Pepito
Attachments
EMBIR_Adapter_s_V2.0.jpg
new EMBIR-JX Breakout Board
EMBIR_Adapter_s_V2.0.jpg (53.08 KiB) Viewed 7952 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Wed Jul 18, 2012 8:49 am
here is a 3D picture of the new Breakout Board.
http://dl.dropbox.com/u/38387544/Adapterboard_V2_3D.png
BTW ..... concerning the analog inputs, I read the datasheet :oops: again ......
as long the input voltage is < 36V ..... there is no voltage
divider required for the analog inputs.

Pepito
Attachments
Adapterboard_s_V2.jpg
3D view of the Breakout Board V2
Adapterboard_s_V2.jpg (60.28 KiB) Viewed 7934 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Wed Jul 18, 2012 2:30 pm
going to test the driver today on the brand new Raspbian distribution.
I expect it works, will see. :D

Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Wed Jul 18, 2012 6:30 pm
Recompile all sources, everything is fine.
Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Wed Aug 01, 2012 3:22 pm
Here is the driver for EMBIR-JX.
Hope it's easy to use, at the moment only from Linux command prompt.
Goal was to hide the complicated stuff, but use the mechanism for secure data exchange
between Raspberry and EMBIR-JX. It works without kernel modifications.

Load the attached tar file into /home/pi
then unpack the tar file:
tar -xvzf EMBIR_JX_Driver_1.0.tgz
Now you have a new directory tree, change working directory to the driver files.
cd EMBIR_JX/Driver/1.0
Here you have the examples and some directories containing the driver.
The driver is based on the Broadcom BCM 2835 library, with a little patch.
What do we have now?
pi@raspberrypi ~/EMBIR_JX/Driver/1.0 $ ls -als
insgesamt 56
4 drwxrwxr-x 6 pi root 4096 Aug 1 14:35 .
4 drwxrwxr-x 5 pi root 4096 Aug 1 14:33 ..
4 drwxrwxr-x 2 pi root 4096 Jul 18 19:40 Get_Status
4 drwxrwxr-x 2 pi root 4096 Aug 1 15:55 lib
20 -rw-r--r-- 1 pi root 18009 Aug 1 14:30 Read.me
8 -rwxr-xr-x 1 pi root 7388 Aug 1 12:03 run_test_1
4 -rwxr-xr-x 1 pi root 3568 Aug 1 14:35 run_test_2
4 drwxrwxr-x 2 pi root 4096 Jul 18 19:45 Set_Config
4 drwxrwxr-x 2 piroot 4096 Jul 18 19:44 Set_Port
pi@raspberrypi ~/EMBIR_JX/Driver/1.0 $


Let's start with the Read.me file.
This file is also attached.
It's a description what EMBIR-JX can, how to put it together,
and how to use.
I recommend to have also a hard copy of the iC-JX data sheet http://www.ichaus.de/JX_datasheet_en on the desk, start with page 13,
programming. Then it's more easy to understand.

And we have 2 files called
run_test_1
run_test_2

Both are bash script files, you can open with a text editor.
It makes only sense to execute in case the EMBIR-JX board is connected.
Otherwise you get only an error message.

run_test_1 is an example how to use output ports,
initialize as outputs, write pattern to the outputs, enable the hardware blink functionality.

run_test_2 is an example of an binary up and down counter .... one 4 bit up counter and one 4 bit down counter.

Both are made to demonstrate possibilities how to set outputs.
Execute
./run_test_1
or
./run_test_2
to see what happens ( remember, works only with connected EMBIR-JX board )

We have some sub directories, here you can find the driver stuff ( C language ) and Makefiles to compile.
1.) lib
here is a copy of the Broadcom BCM 2835 library with a little patch
and jx_transfer.c, the driver for EMBIR-JX. You can open with a text editor.

2.) Get_Status
here is a simple C program to read the registers of the iC-JX chips on the EMBIR-JX board.
It's called get_status.c. The compiled executable is called EMBIR_get_status

3.) Set_Config
here is a simple C program to change the configuration of the iC-JX chips on the EMBIR-JX board.
You can define what are the outputs, what are the analog inputs, start analog measurement, blink
and diagnostic stuff. Hard copy of the data sheet will definitely help.
It's called set_config.c. The compiled executable is called EMBIR_set_config

4.) Set_Port
here is a simple C program to write pattern to the output ports.
It's called set_port.c . The compiled executable is called EMBIR_set_port

In Get_Status, Set_Config and Set_Port are Makefiles to recompile ( if you made changes in the .c files ). Just cd to the directory and type make.
I was using ddd for debug, It's a easy to use UI around gdb, you can single step, watch variables, change variable values etc. It's not installed by default, if you need it, execute
sudo apt-get install ddd

There is a lot of room for enhancements. This is a starting point to make things work in
a very short time.

Pepito

PS die Beschreibung gibt es auch auf Deutsch
Attachments
Read_me.txt.gz
Read.me file with more information
(3.2 KiB) Downloaded 156 times
EMBIR_JX_Driver_1.0.tgz
EMBIR-JX Driver Sources and Examples
(58.99 KiB) Downloaded 194 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Fri Aug 03, 2012 9:18 am
working on a little PCB with 4 small relays ( Panasonic DE Relays 440V/2000VA ).
Can be directly connected via 6 wire ribbon cable to EMBIR-JX.
Size of the PCB is just the area of the relays and the connectors.
One EMBIR-JX can drive 8 of them ( 32 relays ).

Think the PCB is available for download on Saturday or Sunday ( Target PCB format ).

Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Fri Aug 03, 2012 11:36 am
here is EMBIR at work
little video.
It's a self test, made with a simple bash shell while loop
http://dl.dropbox.com/u/38387544/video-2012-08-03-13-27-21.3gp
Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Sat Aug 04, 2012 12:37 am
hi, here is the relays board for EMBIR-JX.
4 Panasonic relays ( 440V 8A / 16A peak ) with 2 contacts each.
EMBIR-JX is able to drive 8 of this relays boards, that means 32 relays.
Not enough, ok .... use 2 EMBIR-JX Boards and drive 64 Relays.
EMBIR_JX_Relays.jpg
EMBIR-JX Relays Board
EMBIR_JX_Relays.jpg (62.63 KiB) Viewed 7180 times


Split the 26 wire flat cables beginning from 1 in slices of 6, Cut the last 2 wires ( 25 and 26 ) because thats +5V from Raspberry PI, not required here.
Press on each 6 wire slice a 6 pin ribbon connector. That's it .... connect to the relay board,
check connections ( GND -> GND, VB -> VB, no shorts, no opens ) ..... power on and it works.

Pepito

Board is made with Target PCB, the free version. You can very easy modify the board in case you have different relays, other requirements or what ever.
Think on clearance in case you plan to work with high voltage.
It's very dangerous, be careful. Think of fuses. Isolate all high voltage areas
Best is to be below 24V ......
Attachments
EMBIR_JX_Relays.T3001.gz
EMBIR-JX Relay Board
(12.16 KiB) Downloaded 145 times
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by Pepito » Tue Aug 07, 2012 8:11 am
Kabelbaum.T3001.gz
EMBIR-JX Relays board cable
(6.4 KiB) Downloaded 136 times
Hi,
here the information how the cable between EMBIR-JX and Relays PCB boards should be.
You need 26 wire flat cable, a 26W flat cable connector ( EMBIR-JX side ) and 4 x 6W flat cable connectors, to connect on Relays PCB boards.
2 cables if you have 8 Relays PCB boards to connect ( 32 relays ).
Picture of the cable, left side EMBIR-JX, right side 4 Relays PCB boards.
EMBIR_JX_Ralays_Cable.jpg
EMBIR-JX to Relays PCB board connection
EMBIR_JX_Ralays_Cable.jpg (61.51 KiB) Viewed 7026 times


And here is the Target PCB source file for the picture
Kabelbaum.T3001.gz
EMBIR-JX Relays board cable
(6.4 KiB) Downloaded 136 times

All GND pins are connected together on the EMBIR-JX board. There is nothing to do.

Hope it's useful.
Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm
by scifilink » Tue Aug 21, 2012 5:20 pm
I am looking to devise like you have devised. I need 75 DIGITAL inputs at 5vdc.

Also need 75 outputs. For small relays.

All on one PCB. With phoenix connectors on the back edge for inputs and outputs. Wow that's a tall order but I got excited to start based on your recent work.

Chris
Posts: 1
Joined: Mon Aug 20, 2012 9:23 pm
by Pepito » Tue Aug 21, 2012 8:19 pm
Hi,
use the EMBIR-JX schematic as starting point. You need 5 iC-JX for 96 IO's. 4 on CS0 and 1 on CS1.
VB mut be 12V min. 5V input is possible, if the input is declared as analog.
Driver modification is done in 1line to differentiate between CS0 and CS1. But you need a smart version of Target PCB because the demo version is limited. Expect 2 or 3 days of work. Then you can send the PCB data to manufactoring.
Pepito
Posts: 41
Joined: Wed Jun 27, 2012 4:53 pm