8255 Based IO cards
20 Sep 2013 03:20 #39039
by macona
8255 Based IO cards was created by macona
I am setting up IO for my laser welder, the laser itself wants about 30 inputs to make it work and runs on 15v logic so I am looking at using some of the opto-22 modules I have. To drive that I have a Advantech PCL-722 ISA card that has the 50 pin headers that will hook right up to it.
I looked up support for it under linuxcnc and didnt find anything specific. I see there is support for the AX5214H board which is listed as a ISA 8255 Mode 0 board and one site lists the ACL-7122 as a replacment for that. The ACL-7122 is what appears to be another brand's version of the PCL-722. Both these boards are 8255 Mode 0 boards.
So, can the AX5214H driver run these boards? Also in some of the documentation I saw a reference to a "generic8255" hal driver. Any ideas?
I looked up support for it under linuxcnc and didnt find anything specific. I see there is support for the AX5214H board which is listed as a ISA 8255 Mode 0 board and one site lists the ACL-7122 as a replacment for that. The ACL-7122 is what appears to be another brand's version of the PCL-722. Both these boards are 8255 Mode 0 boards.
So, can the AX5214H driver run these boards? Also in some of the documentation I saw a reference to a "generic8255" hal driver. Any ideas?
Please Log in or Create an account to join the conversation.
20 Sep 2013 04:25 - 20 Sep 2013 04:26 #39040
by andypugh
Have you seen: www.linuxcnc.org/docs/html/man/man9/pcl720.9.html
Replied by andypugh on topic 8255 Based IO cards
I am setting up IO for my laser welder, the laser itself wants about 30 inputs to make it work and runs on 15v logic so I am looking at using some of the opto-22 modules I have. To drive that I have a Advantech PCL-722 ISA card that has the 50 pin headers that will hook right up to it.
Have you seen: www.linuxcnc.org/docs/html/man/man9/pcl720.9.html
Last edit: 20 Sep 2013 04:26 by andypugh.
Please Log in or Create an account to join the conversation.
20 Sep 2013 06:17 #39051
by macona
Replied by macona on topic 8255 Based IO cards
Yes, I did. The 720 is based of a 8254 instead of a 8255. Even though the driver does not support the timer functions os the 8254 I am not sure if the driver will run it.
Please Log in or Create an account to join the conversation.
20 Sep 2013 07:08 #39053
by andypugh
I think the chances are extremely good that it will.
Why not try it? It only takes a few minutes to find out.
The driver component is ver simple, even if it isn't quite right I suspect that a few changes to register addresses in the .comp file will make it work.
Have you looked at the driver file? It is very short:
git.linuxcnc.org/gitweb?p=linuxcnc.git;a...f91d011eb2db;hb=HEAD
You can ignore the reset function, that is just for software step generation.
Replied by andypugh on topic 8255 Based IO cards
Yes, I did. The 720 is based of a 8254 instead of a 8255. Even though the driver does not support the timer functions os the 8254 I am not sure if the driver will run it.
I think the chances are extremely good that it will.
Why not try it? It only takes a few minutes to find out.
The driver component is ver simple, even if it isn't quite right I suspect that a few changes to register addresses in the .comp file will make it work.
Have you looked at the driver file? It is very short:
git.linuxcnc.org/gitweb?p=linuxcnc.git;a...f91d011eb2db;hb=HEAD
You can ignore the reset function, that is just for software step generation.
Please Log in or Create an account to join the conversation.
23 Sep 2013 13:36 #39126
by macona
Replied by macona on topic 8255 Based IO cards
I will give it a try. I have had a cold since friday and have not felt like doing anything but sleep. Ugh.
I need to rig up power to the external I/O Boards I got with the PCL-722, it wants +5 and 12, I should have a brick around that can put that out.
What is the best way to toggle an output to the board through the HAL to see if it works?
-Jerry
I need to rig up power to the external I/O Boards I got with the PCL-722, it wants +5 and 12, I should have a brick around that can put that out.
What is the best way to toggle an output to the board through the HAL to see if it works?
-Jerry
Please Log in or Create an account to join the conversation.
23 Sep 2013 17:41 #39131
by andypugh
I do all this sort of stuff from the halcmd interface (command line). It removes a lot of the other variables.
open a terminal window, and typeThis will start the realtime environment and the command prompt will change.
Hal functions need to be added to a thread before anything happens, so first start a thread..You can check that has worked:Now you need to load the PCL720 driver, and this probably requires you to know the port used by the board.Then the read/write functions need to be added to the threadNow you can try reading pins. To list them allAnd to see a particular pinTo set the value of a pinWhen you have finished in the halcmd prompt
The PCL720 is a 32 bit input + 32 bit output board, with a single port, whereas the PCL722 has 6 x 24-bit ports that appear to be configurable at the port level for input or output.
Looking at the manuals and the PCL720 driver, you should be able to treat the PCL722 as a set of 6 pcl720 boards. However you can't use pins >23 for IO, those become config setting pins.
Specifically, on any one port setp pcl720.N.pin-24-out 1 sets pins 16 to 19 as input (setp ... 0 for output). pin-25-out controls the direction of pins 8 to 15. pin-27-out controls pins 20 to 23, and pin-28-out sets the direction of pins 0 to 7. (I might have pins 24 and 27 switched, there is a typo in the documentation....)
So, if the code above worked for a single port on the board, you should be able to access all the other ports by pretending they are multiple pcl720s.
It wouldn't be hard to modify the pcl720.comp file to be specific to the pcl722. The only difficulty I see is that the code would have to be rather clever to remove the output pins in HAL when the ports were set to input. (outputs can still be read as inputs, so those pins would stay).
Replied by andypugh on topic 8255 Based IO cards
What is the best way to toggle an output to the board through the HAL to see if it works?
I do all this sort of stuff from the halcmd interface (command line). It removes a lot of the other variables.
open a terminal window, and type
halrun
Hal functions need to be added to a thread before anything happens, so first start a thread.
loadrt threads
start
show thread
loadrt pcl720 ioaddr=0x200
addf pcl720.0.read thread1
addf pcl720.write thread1
show pin
getp pcl720.0.pin-00-in
setp pcl720.0.pin-00-out 1
exit
The PCL720 is a 32 bit input + 32 bit output board, with a single port, whereas the PCL722 has 6 x 24-bit ports that appear to be configurable at the port level for input or output.
Looking at the manuals and the PCL720 driver, you should be able to treat the PCL722 as a set of 6 pcl720 boards. However you can't use pins >23 for IO, those become config setting pins.
Specifically, on any one port setp pcl720.N.pin-24-out 1 sets pins 16 to 19 as input (setp ... 0 for output). pin-25-out controls the direction of pins 8 to 15. pin-27-out controls pins 20 to 23, and pin-28-out sets the direction of pins 0 to 7. (I might have pins 24 and 27 switched, there is a typo in the documentation....)
So, if the code above worked for a single port on the board, you should be able to access all the other ports by pretending they are multiple pcl720s.
loadrt pcl20 ioaddr=0x200,0x204,0x208,0x20c,0x210,0x214
It wouldn't be hard to modify the pcl720.comp file to be specific to the pcl722. The only difficulty I see is that the code would have to be rather clever to remove the output pins in HAL when the ports were set to input. (outputs can still be read as inputs, so those pins would stay).
Please Log in or Create an account to join the conversation.
30 Sep 2013 11:49 #39378
by macona
Replied by macona on topic 8255 Based IO cards
OK, I finally got around to trying it. The 720 driver did nothing. I decided to try the ax5214h driver since it is supposed to be a 8255 compatible card. I coudnt get that working either. I just set everything to output but never got any response out of the relay card for the board.
Here is my terminal stuff, I had to guess on the commands, maybe I got them wrong?
-Jerry
Here is my terminal stuff, I had to guess on the commands, maybe I got them wrong?
-Jerry
macona@laser-welder:~$ halrun
halcmd: loadrt threads
halcmd: start
halcmd: show thread
Realtime Threads:
Period FP Name ( Time, Max-Time )
999967 YES thread1 ( 0, 0 )
halcmd: loadrt hal_ax5214h cfg="0x200 OOOOOOOO"
halcmd: addf ax5214h.0.write thread1
halcmd: show pin
Component Pins:
Owner Type Dir Value Name
5 bit IN FALSE ax5214h.0.out-00
5 bit IN FALSE ax5214h.0.out-01
5 bit IN FALSE ax5214h.0.out-02
5 bit IN FALSE ax5214h.0.out-03
5 bit IN FALSE ax5214h.0.out-04
5 bit IN FALSE ax5214h.0.out-05
5 bit IN FALSE ax5214h.0.out-06
5 bit IN FALSE ax5214h.0.out-07
5 bit IN FALSE ax5214h.0.out-08
5 bit IN FALSE ax5214h.0.out-09
5 bit IN FALSE ax5214h.0.out-10
5 bit IN FALSE ax5214h.0.out-11
5 bit IN FALSE ax5214h.0.out-12
5 bit IN FALSE ax5214h.0.out-13
5 bit IN FALSE ax5214h.0.out-14
5 bit IN FALSE ax5214h.0.out-15
5 bit IN FALSE ax5214h.0.out-16
5 bit IN FALSE ax5214h.0.out-17
5 bit IN FALSE ax5214h.0.out-18
5 bit IN FALSE ax5214h.0.out-19
5 bit IN FALSE ax5214h.0.out-20
5 bit IN FALSE ax5214h.0.out-21
5 bit IN FALSE ax5214h.0.out-22
5 bit IN FALSE ax5214h.0.out-23
5 bit IN FALSE ax5214h.0.out-24
5 bit IN FALSE ax5214h.0.out-25
5 bit IN FALSE ax5214h.0.out-26
5 bit IN FALSE ax5214h.0.out-27
5 bit IN FALSE ax5214h.0.out-28
5 bit IN FALSE ax5214h.0.out-29
5 bit IN FALSE ax5214h.0.out-30
5 bit IN FALSE ax5214h.0.out-31
5 bit IN FALSE ax5214h.0.out-32
5 bit IN FALSE ax5214h.0.out-33
5 bit IN FALSE ax5214h.0.out-34
5 bit IN FALSE ax5214h.0.out-35
5 bit IN FALSE ax5214h.0.out-36
5 bit IN FALSE ax5214h.0.out-37
5 bit IN FALSE ax5214h.0.out-38
5 bit IN FALSE ax5214h.0.out-39
5 bit IN FALSE ax5214h.0.out-40
5 bit IN FALSE ax5214h.0.out-41
5 bit IN FALSE ax5214h.0.out-42
5 bit IN FALSE ax5214h.0.out-43
5 bit IN FALSE ax5214h.0.out-44
5 bit IN FALSE ax5214h.0.out-45
5 bit IN FALSE ax5214h.0.out-46
5 bit IN FALSE ax5214h.0.out-47
halcmd: setp ax5214h.0.out-00 1
halcmd: setp ax5214h.0.out-12 1
halcmd: setp ax5214h.0.out-24 1
halcmd: setp ax5214h.0.out-47 1
halcmd: show pin
Component Pins:
Owner Type Dir Value Name
5 bit IN TRUE ax5214h.0.out-00
5 bit IN FALSE ax5214h.0.out-01
5 bit IN FALSE ax5214h.0.out-02
5 bit IN FALSE ax5214h.0.out-03
5 bit IN FALSE ax5214h.0.out-04
5 bit IN FALSE ax5214h.0.out-05
5 bit IN FALSE ax5214h.0.out-06
5 bit IN FALSE ax5214h.0.out-07
5 bit IN FALSE ax5214h.0.out-08
5 bit IN FALSE ax5214h.0.out-09
5 bit IN FALSE ax5214h.0.out-10
5 bit IN FALSE ax5214h.0.out-11
5 bit IN TRUE ax5214h.0.out-12
5 bit IN FALSE ax5214h.0.out-13
5 bit IN FALSE ax5214h.0.out-14
5 bit IN FALSE ax5214h.0.out-15
5 bit IN FALSE ax5214h.0.out-16
5 bit IN FALSE ax5214h.0.out-17
5 bit IN FALSE ax5214h.0.out-18
5 bit IN FALSE ax5214h.0.out-19
5 bit IN FALSE ax5214h.0.out-20
5 bit IN FALSE ax5214h.0.out-21
5 bit IN FALSE ax5214h.0.out-22
5 bit IN FALSE ax5214h.0.out-23
5 bit IN TRUE ax5214h.0.out-24
5 bit IN FALSE ax5214h.0.out-25
5 bit IN FALSE ax5214h.0.out-26
5 bit IN FALSE ax5214h.0.out-27
5 bit IN FALSE ax5214h.0.out-28
5 bit IN FALSE ax5214h.0.out-29
5 bit IN FALSE ax5214h.0.out-30
5 bit IN FALSE ax5214h.0.out-31
5 bit IN FALSE ax5214h.0.out-32
5 bit IN FALSE ax5214h.0.out-33
5 bit IN FALSE ax5214h.0.out-34
5 bit IN FALSE ax5214h.0.out-35
5 bit IN FALSE ax5214h.0.out-36
5 bit IN FALSE ax5214h.0.out-37
5 bit IN FALSE ax5214h.0.out-38
5 bit IN FALSE ax5214h.0.out-39
5 bit IN FALSE ax5214h.0.out-40
5 bit IN FALSE ax5214h.0.out-41
5 bit IN FALSE ax5214h.0.out-42
5 bit IN FALSE ax5214h.0.out-43
5 bit IN FALSE ax5214h.0.out-44
5 bit IN FALSE ax5214h.0.out-45
5 bit IN FALSE ax5214h.0.out-46
5 bit IN TRUE ax5214h.0.out-47
halcmd:
Please Log in or Create an account to join the conversation.
30 Sep 2013 18:58 #39388
by andypugh
Replied by andypugh on topic 8255 Based IO cards
Are you sure that the card base address is 0x200?
Has the card ever worked for you in the current machine?
Has the card ever worked for you in the current machine?
Please Log in or Create an account to join the conversation.
30 Sep 2013 22:35 #39404
by macona
Replied by macona on topic 8255 Based IO cards
According to the manual I have the dip switches at 200. It says the same for 220 so I tried that too and it didn't work either.
I have never tried this card before. It was sent to me by a friend with the io boards and I never used it. I had nothing I needed it for until now.
I have never tried this card before. It was sent to me by a friend with the io boards and I never used it. I had nothing I needed it for until now.
Please Log in or Create an account to join the conversation.
30 Sep 2013 22:57 #39405
by andypugh
How are you testing it? Do you have the opto22 racks attached, or are you using a multimeter?
Replied by andypugh on topic 8255 Based IO cards
According to the manual I have the dip switches at 200. It says the same for 220 so I tried that too and it didn't work either.
How are you testing it? Do you have the opto22 racks attached, or are you using a multimeter?
Please Log in or Create an account to join the conversation.
Time to create page: 0.736 seconds