On Tuesday 14 September 2021 18:44:06 John Figie wrote:
> On Tue, Sep 14, 2021, 3:44 PM Gene Heskett <[email protected]>
wrote:
> > On Tuesday 14 September 2021 15:36:49 John Figie wrote:
> > > So I am still curious if connecting some device to a Mesa Anything
> > > I/O board such as the 7I80 using SPI is easy or difficult to do.
> > >
> > > I see that there was some work proposed for a SPI sub-driver for
> > > hostmot2
> > > <http://wiki.linuxcnc.org/cgi-bin/wiki.pl?SPI_Sub-Driver_For_Hostm
> > >ot2> but maybe not much has changed since this was added to the
> > > wiki.
> > >
> > > my understanding is that this would work for some SPI
> > > communications between a card like a 7I80 and some device. The
> > > driver would allow a user to configure the SPI comms for the
> > > number of SPI channels and the amount of data frames transferred
> > > with each request.
> > >
> > > I see that some I/O boards already use SPI communications, along
> > > with discrete I/O such as the 7I65. So I suppose one could make a
> > > device that uses the SPI interface and pretends to be the DACs
> > > from a 7I65, but that would be kind of limited as the
> > > communications is probably just output only.
> >
> > No, your info, and the wiki are out of date, its 2 way using the
> > rpspi.ko driver since about 4 years back up the log and in my case.
> > a 7i90HD card, buffered and protected by a trio of 7i42TA's which in
> > addition to gobbling up noise that can destroy the fpga in the
> > 7i90HD, supplies those ultra handy little green screw terminals to
> > wire it all up with.
>
> Yes I saw the rpspi to 7I90 but that is not what I was asking about. I
> could be wrong but isn't the proposed spi sub driver referring to an
> spi interface between an anything I/O card and some device? By device
> I mean some I/O device like a servo drive or an ADC or whatever and
> there could be multiple SPI interfaces available. I am not using a rp4
> but maybe I should be. I am using a PC but I did add another NIC so I
> have several Ethernet ports and I want just a single Ethernet port as
> my interface to my machine I/O.
>
Then the 7c80 is probably the right cup of tea for you. The ethernet port
replaces the spi port. But talk to Peter, he is the expert on what his
cards can do.
> > My rpi4 is sending 32 bit packets to the 7i90 over an spi bus at
> > about 41 megabaud, and getting data back from the 7i90HD at 25
> > megabaud. The rpi3 before it did the same. Doing it with the 7i90HD,
> > my rpi4's ethernet port is still free, so that pi is just another
> > address on my home private network, which is NATted from my internet
> > address, so I can carve steel with a converted 1950 vintage Sheldon
> > lathe and browse the world with firefox at the same time if I want
> > to. I could do that with a pi3b but you could hear the lathe stumble
> > a bit now and then.
> >
> > > But what about the 7I46? Is that I/O card supported by LinuxCNC in
> > > some way? How are the SPI ports configured?
> >
> > Don't know anything about the 7i46, you'll have to ask Peter C.
> > Wallace, who I think is reading these lists.
> >
> > > Is there still interest in the SPI sub-diver for hosmot2? Has the
> > > community moved on to better ways to interface to other devices?
> >
> > The rpspi.ko driver, by a Swedish Uni prof named Bertho Stultans,
> > was contributed to LinuxCNC several years ago, and has been updated
> > at least twice since. It Just Works if you follow the cabling
> > instructions. Effectively the spi disappears and all ypu see at lcnc
> > launch is the cards registration, which looks like this:
> >
> > hm2_rpspi: ERROR: Failed to execute '/sbin/rmmod spi_bcm2835'
> > hm2_rpspi: Platform: Raspberry Pi 4 Model B Rev 1.1
> > hm2_rpspi: Base address 0xfe000000 size 0x01800000
> > hm2_rpspi: Mapped peripherals from 0xfe000000 (size 0x01800000) to
> > gpio:0x0xb4300000, spi:0x0xb4304000, aux:0x0xb4315000
> > hm2_rpspi: SPI0/CE0 clock rate: 41666000/25000000 Hz, VPU clock
> > rate: 500000000 Hz
> > hm2_rpspi: SPI0/CE0 write clock rate calculated: 41666666 Hz
> > (clkdiv=12) hm2_rpspi: SPI0/CE0 read clock rate calculated: 25000000
> > Hz (clkdiv=20) hm2_rpspi: SPI0/CE0 Valid cookie matched
> > hm2_rpspi: SPI0/CE0 Base: hm2_7i90.0
> > hm2/hm2_7i90.0: Low Level init 0.15
> > hm2/hm2_7i90.0: MD 2: 3x IOPort v0: accepted, using 3
> > hm2/hm2_7i90.0: MD 0: 1x Hostmot2 DPLL v0: accepted, using 1
> > hm2/hm2_7i90.0: MD 1: 1x Watchdog v0: accepted, using 1
> > hm2/hm2_7i90.0: MD 3: 4x Encoder v2: accepted, using 4
> > hm2/hm2_7i90.0: MD 4: 2x PWMGen v0: accepted, using 1
> > hm2/hm2_7i90.0: MD 5: 4x StepGen v2: accepted, using 4
> > hm2/hm2_7i90.0: MD 6: 1x LED v0: accepted, using 1
> > hm2/hm2_7i90.0: 72 I/O Pins used:
> > hm2/hm2_7i90.0: IO Pin 000 (P1-01): StepGen #0, pin Step
> > (Output) hm2/hm2_7i90.0: IO Pin 001 (P1-03): StepGen #0, pin
> > Direction (Output)
> > hm2/hm2_7i90.0: IO Pin 002 (P1-05): StepGen #1, pin Step
> > (Output) hm2/hm2_7i90.0: IO Pin 003 (P1-07): StepGen #1, pin
> > Direction (Output)
> > hm2/hm2_7i90.0: IO Pin 004 (P1-09): Encoder #0, pin A (Input)
> > hm2/hm2_7i90.0: IO Pin 005 (P1-11): Encoder #2, pin A (Input)
> > hm2/hm2_7i90.0: IO Pin 006 (P1-13): Encoder #0, pin B (Input)
> > hm2/hm2_7i90.0: IO Pin 007 (P1-15): Encoder #2, pin B (Input)
> > hm2/hm2_7i90.0: IO Pin 008 (P1-17): Encoder #0, pin Index
> > (Input) hm2/hm2_7i90.0: IO Pin 009 (P1-19): Encoder #2, pin
> > Index (Input) hm2/hm2_7i90.0: IO Pin 010 (P1-21): Encoder #1,
> > pin A (Input) hm2/hm2_7i90.0: IO Pin 011 (P1-23): Encoder #3,
> > pin A (Input) hm2/hm2_7i90.0: IO Pin 012 (P1-25): Encoder #1,
> > pin B (Input) hm2/hm2_7i90.0: IO Pin 013 (P1-27): Encoder #3,
> > pin B (Input) hm2/hm2_7i90.0: IO Pin 014 (P1-29): Encoder #1,
> > pin Index (Input) hm2/hm2_7i90.0: IO Pin 015 (P1-31): Encoder
> > #3, pin Index (Input) hm2/hm2_7i90.0: IO Pin 016 (P1-33):
> > StepGen #2, pin Step (Output) hm2/hm2_7i90.0: IO Pin 017
> > (P1-35): StepGen #2, pin Direction (Output)
> > hm2/hm2_7i90.0: IO Pin 018 (P1-37): StepGen #3, pin Step
> > (Output) hm2/hm2_7i90.0: IO Pin 019 (P1-39): StepGen #3, pin
> > Direction (Output)
> > hm2/hm2_7i90.0: IO Pin 020 (P1-41): PWMGen #0, pin Out0 (PWM or
> > Up) (Output)
> > hm2/hm2_7i90.0: IO Pin 021 (P1-43): PWMGen #0, pin Out1 (Dir or
> > Down) (Output)
> > hm2/hm2_7i90.0: IO Pin 022 (P1-45): IOPort
> > hm2/hm2_7i90.0: IO Pin 023 (P1-47): IOPort
> > hm2/hm2_7i90.0: IO Pin 024 (P2-01): IOPort
> > hm2/hm2_7i90.0: IO Pin 025 (P2-03): IOPort
> > hm2/hm2_7i90.0: IO Pin 026 (P2-05): IOPort
> > hm2/hm2_7i90.0: IO Pin 027 (P2-07): IOPort
> > hm2/hm2_7i90.0: IO Pin 028 (P2-09): IOPort
> > hm2/hm2_7i90.0: IO Pin 029 (P2-11): IOPort
> > hm2/hm2_7i90.0: IO Pin 030 (P2-13): IOPort
> > hm2/hm2_7i90.0: IO Pin 031 (P2-15): IOPort
> > hm2/hm2_7i90.0: IO Pin 032 (P2-17): IOPort
> > hm2/hm2_7i90.0: IO Pin 033 (P2-19): IOPort
> > hm2/hm2_7i90.0: IO Pin 034 (P2-21): IOPort
> > hm2/hm2_7i90.0: IO Pin 035 (P2-23): IOPort
> > hm2/hm2_7i90.0: IO Pin 036 (P2-25): IOPort
> > hm2/hm2_7i90.0: IO Pin 037 (P2-27): IOPort
> > hm2/hm2_7i90.0: IO Pin 038 (P2-29): IOPort
> > hm2/hm2_7i90.0: IO Pin 039 (P2-31): IOPort
> > hm2/hm2_7i90.0: IO Pin 040 (P2-33): IOPort
> > hm2/hm2_7i90.0: IO Pin 041 (P2-35): IOPort
> > hm2/hm2_7i90.0: IO Pin 042 (P2-37): IOPort
> > hm2/hm2_7i90.0: IO Pin 043 (P2-39): IOPort
> > hm2/hm2_7i90.0: IO Pin 044 (P2-41): IOPort
> > hm2/hm2_7i90.0: IO Pin 045 (P2-43): IOPort
> > hm2/hm2_7i90.0: IO Pin 046 (P2-45): IOPort
> > hm2/hm2_7i90.0: IO Pin 047 (P2-47): IOPort
> > hm2/hm2_7i90.0: IO Pin 048 (P3-01): IOPort
> > hm2/hm2_7i90.0: IO Pin 049 (P3-03): IOPort
> > hm2/hm2_7i90.0: IO Pin 050 (P3-05): IOPort
> > hm2/hm2_7i90.0: IO Pin 051 (P3-07): IOPort
> > hm2/hm2_7i90.0: IO Pin 052 (P3-09): IOPort
> > hm2/hm2_7i90.0: IO Pin 053 (P3-11): IOPort
> > hm2/hm2_7i90.0: IO Pin 054 (P3-13): IOPort
> > hm2/hm2_7i90.0: IO Pin 055 (P3-15): IOPort
> > hm2/hm2_7i90.0: IO Pin 056 (P3-17): IOPort
> > hm2/hm2_7i90.0: IO Pin 057 (P3-19): IOPort
> > hm2/hm2_7i90.0: IO Pin 058 (P3-21): IOPort
> > hm2/hm2_7i90.0: IO Pin 059 (P3-23): IOPort
> > hm2/hm2_7i90.0: IO Pin 060 (P3-25): IOPort
> > hm2/hm2_7i90.0: IO Pin 061 (P3-27): IOPort
> > hm2/hm2_7i90.0: IO Pin 062 (P3-29): IOPort
> > hm2/hm2_7i90.0: IO Pin 063 (P3-31): IOPort
> > hm2/hm2_7i90.0: IO Pin 064 (P3-33): IOPort
> > hm2/hm2_7i90.0: IO Pin 065 (P3-35): IOPort
> > hm2/hm2_7i90.0: IO Pin 066 (P3-37): IOPort
> > hm2/hm2_7i90.0: IO Pin 067 (P3-39): IOPort
> > hm2/hm2_7i90.0: IO Pin 068 (P3-41): IOPort
> > hm2/hm2_7i90.0: IO Pin 069 (P3-43): IOPort
> > hm2/hm2_7i90.0: IO Pin 070 (P3-45): IOPort
> > hm2/hm2_7i90.0: IO Pin 071 (P3-47): IOPort
> > hm2/hm2_7i90.0: registered
> > MOTION: setting Traj cycle time to 1000000 nsecs
> > MOTION: setting Servo cycle time to 1000000 nsecs
> > note: MAXV max: 2.000 units/sec 120.000 units/min
> > note: LJOG max: 2.000 units/sec 120.000 units/min
> > note: LJOG default: 1.350 units/sec 81.000 units/min
> > note: jog_order='ZX'
> > note: jog_invert={'X'}
> >
> > > Yes I know that the distance that SPI works over is limited, but
> > > on the other hand it is a pretty simple interface and the data
> > > rates can easily be 10Mbits/sec if limited to short distances like
> > > 10 - 20 cm.
> >
> > My data cable is about 1.6". I mounted the r-pi upside down so its a
> > straight shot from the 44pin pi header to the 26 pin socket on the
> > 7i90HD. No cable twists needed.
> >
> > > Regards,
> > >
> > > John Figie
> > >
> > > _______________________________________________
> > > Emc-users mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/emc-users
> >
> > Cheers, Gene Heskett
> > --
> > "There are four boxes to be used in defense of liberty:
> > soap, ballot, jury, and ammo. Please use in that order."
> > -Ed Howdershelt (Author)
> > If we desire respect for the law, we must first make the law
> > respectable. - Louis D. Brandeis
> > Genes Web page <http://geneslinuxbox.net:6309/gene>
> >
> >
> > _______________________________________________
> > Emc-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/emc-users
>
> _______________________________________________
> Emc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-users
Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users