MESA 7i92 Disable Encoder Index Pin

More
02 Feb 2022 07:48 #233773 by Ralfh
Hi,
i have a fine running system and currently looking for a method to crash it. :) 
I have currently 3 glasscales for XYZ where i dont use the index signal, because my connectors on my electrical case didnt had enough pins. The readhmid shows me: 
 1      0   IOPort       PWM              0        PWM             (Out)
14      1   IOPort       None                                               Spindle on
 2      2   IOPort       StepGen          0        Step/Table1     (Out)
15      3   IOPort       None                                               Z Home
 3      4   IOPort       StepGen          0        Dir/Table2      (Out)
16      5   IOPort       StepGen          4        Step/Table1     (Out)
 4      6   IOPort       StepGen          1        Step/Table1     (Out)
17      7   IOPort       StepGen          4        Dir/Table2      (Out)
 5      8   IOPort       StepGen          1        Dir/Table2      (Out)
 6      9   IOPort       StepGen          2        Step/Table1     (Out)
 7     10   IOPort       StepGen          2        Dir/Table2      (Out)
 8     11   IOPort       StepGen          3        Step/Table1     (Out)
 9     12   IOPort       StepGen          3        Dir/Table2      (Out)
10     13   IOPort       None                                                  GoHome     
11     14   IOPort       None           **************************************FREI
12     15   IOPort       None                                               XHome
13     16   IOPort       None                                               YHome

IO Connections for P1
Pin#  I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

 1     17   IOPort       None           
14     18   IOPort       QCount           2        Quad-IDX        (In)
 2     19   IOPort       None                                               ProgramRun
15     20   IOPort       None                                               EStop
 3     21   IOPort       QCount           0        Quad-A          (In)
16     22   IOPort       None                                               ZStopMacro
 4     23   IOPort       QCount           0        Quad-B          (In)
17     24   IOPort       None           
 5     25   IOPort       QCount           0        Quad-IDX        (In)
 6     26   IOPort       None                                               ProgramPause
 7     27   IOPort       None                                               3DProbe
 8     28   IOPort       PWM              1        PWM             (Out)
 9     29   IOPort       QCount           1        Quad-A          (In)
10     30   IOPort       QCount           1        Quad-B          (In)
11     31   IOPort       QCount           1        Quad-IDX        (In)
12     32   IOPort       QCount           2        Quad-A          (In)
13     33   IOPort       QCount           2        Quad-B          (In)

Now i'm running out of GPIO's and wondered if i can reuse my useless encoder-index pins as such GPIO's.
I thought about: 
  1. Just net-ing the pins to my signals, but that would probably crash linuxcnc.
  2. Deleting the Quad-IDX out of my bitfile. Would that compile or would that crash also?
I may try both methods i nobody stops me messing around. 

Please Log in or Create an account to join the conversation.

More
02 Feb 2022 17:03 #233815 by D.L.
Use only the second method, the encoder counter can work correctly without index pin.
For this replace strings in your PIN_*.vhd file:
IOPortTag & x"0*" & QCountTag & QCountIdxPin
to
IOPortTag & x"00" & NullTag & NullPin
and recompile sources.
The following user(s) said Thank You: Ralfh

Please Log in or Create an account to join the conversation.

More
02 Feb 2022 17:31 - 02 Feb 2022 17:37 #233816 by PCW
You can use an index pin as a GPIO input with no firmware changes
as long as you don't set index_enable true

If you want to use the pin as a GPIO output you need to use method 2
as D.L. showed.
Last edit: 02 Feb 2022 17:37 by PCW.
The following user(s) said Thank You: Ralfh

Please Log in or Create an account to join the conversation.

More
03 Feb 2022 08:35 #233862 by Ralfh

Use only the second method, the encoder counter can work correctly without index pin.
For this replace strings in your PIN_*.vhd file:IOPortTag & x"0*" & QCountTag & QCountIdxPin
to
IOPortTag & x"00" & NullTag & NullPin
and recompile sources.

That was exactly what i did, and it compiled to my surprise. I also removed the B-Axis part to get antoher 2 GPIOs. Yeah i know i already could have them whith disabling the stepgen in hal, but i was renovating my BIT file anyway. If anyone is interested, the readhmid and the corresponding BIT file are attacched. 
IO Connections for P2
Pin#  I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

 1      0   IOPort       PWM              0        PWM             (Out)
14      1   IOPort       None           
 2      2   IOPort       StepGen          0        Step/Table1     (Out)
15      3   IOPort       None           
 3      4   IOPort       StepGen          0        Dir/Table2      (Out)
16      5   IOPort       None           
 4      6   IOPort       StepGen          1        Step/Table1     (Out)
17      7   IOPort       None           
 5      8   IOPort       StepGen          1        Dir/Table2      (Out)
 6      9   IOPort       StepGen          2        Step/Table1     (Out)
 7     10   IOPort       StepGen          2        Dir/Table2      (Out)
 8     11   IOPort       StepGen          3        Step/Table1     (Out)
 9     12   IOPort       StepGen          3        Dir/Table2      (Out)
10     13   IOPort       None           
11     14   IOPort       None           
12     15   IOPort       None           
13     16   IOPort       None           

IO Connections for P1
Pin#  I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

 1     17   IOPort       None           
14     18   IOPort       None           
 2     19   IOPort       None           
15     20   IOPort       None           
 3     21   IOPort       QCount           0        Quad-A          (In)
16     22   IOPort       None           
 4     23   IOPort       QCount           0        Quad-B          (In)
17     24   IOPort       None           
 5     25   IOPort       None           
 6     26   IOPort       PWM              1        PWM             (Out)
 7     27   IOPort       None           
 8     28   IOPort       None           
 9     29   IOPort       QCount           1        Quad-A          (In)
10     30   IOPort       QCount           1        Quad-B          (In)
11     31   IOPort       None           
12     32   IOPort       QCount           2        Quad-A          (In)
13     33   IOPort       QCount           2        Quad-B          (In)
Attachments:

Please Log in or Create an account to join the conversation.

Time to create page: 0.314 seconds
Powered by Kunena Forum