"Discovery Option" and an unlisted Mesa FPGA

More
04 May 2024 04:31 #299687 by Utilitas
Here is an example process that could be used to flash a new firmware file on mesa hardware, and then
generate a valid hal file with pncconf for a machine with Mesa Hardware not listed in pncconf. This was
my first time doing this type of a configuration, and this "how-to" was primarily documented with reference
to specific hardware which I had used. So, please take that information into consideration, and use good
judgement to carefully consider the specific needs of your hardware before flashing any new firmware.

In many cases, new firmware may not even be needed for the FPGA hardware being used.

I have posted this in the hope that it may be a useful reference for some situations where a particular
Mesa board is not listed in Pncconf.




Hardware/Software used in this example:

Mesa Boards:
    7i92tf rev. A
    7i85s rev. B
    7i84 rev. A
    
(the 7i92tf P2 connector was paired via DB25M/M cable to J1 on the 7i85s)
(the 7i85s TB1 Pins 17-24 supplied serial connection via cat5e cable to J1 on the 7i84)


Linuxcnc Version:
linuxcnc-uspace_2.9.2_amd64.deb (Bookworm)

Mesaflash Version:
3.4.6 (included in the Bookworm release along with pncconf at the time this configuration was tested)


Mesaflash firmware file (from mesanet):

7i92t_7i85sx2d.bin
    (note the ".bin" file type as opposed to ".bit", the bin file was valid for my card, the 7i92t)
    (be sure you choose firmware files for your EXACT cards, ie. 7i92t vs 7i92 or 7i85s vs 7i85, etc.)




Commands used to write this firmware to the 7i92t:
    
mesaflash --device 7i92t --addr 10.10.10.10 --write 7i92t_7i85sx2d.bin
mesaflash --device 7i92t --addr 10.10.10.10 --reload
    (note that the "--addr 10.10.10.10 was valid with jumpers W5-DOWN,W6-UP on a 7i92t)
    ("--reload" is used to reload the fpga after the write operation)


Command to generate a pin file with the 7i85s daughtercard on P2:

mesaflash --device 7i92t --addr 10.10.10.10 --dbname1 7i85s --readhmid
    (The output from this can be copied to pncconf's help input tab)




With those commands executed and the readhmid output entered into pncconf's help tab,
it is possible to generate a valid configuration for linuxcnc from pncconf.

Note the following additional items during setup in pncconf using this type of Mesa hardware:

-select the "Show Advanced Option Pages" checkbox
-under the "I/O Control Ports/ Boards" section, the selections are "Mesa0 ..." and "None"
-on the "Configuration" page, select "Discovery Option" for the "Board Name" line
-select "Read hostmot2 PIN file From help's input tab" in the popup window
    (the "Board Name" selection should now display the discovered board's name)
-select "Accept components Changes" when ready to continue
    (coming back to this page and selecting this later might erase other entries...)
-in order to configure a 7i84 connected to a 7i85 thru P2 of the 7i92t:
    -go to the "P2" tab that is now available...
    -select "7i84 Mode..." as the function on the "SSERIAL-P0-TX" pin line
        (you can select the "Mode 1" or "Mode 3" software option here)
        (the "SSERIAL-P0-TX" pin line may differ if you have other hardware
        connections in use during your configuration...)
-the card selection choosen in the previous step should now have a new tab available by "P2"

The rest of the setup in pncconf should proceed in a more normal manner.




The generated hal file I got from this sequence of steps only needed a few encoder lines edited to launch
the Axis program successfully.

The encoder lines in the generated hal file for each machine axis looked like this:

net x-pos-fb <= hm2_7i92.0.encoder.00.position

(I just "#" commented them out because I didn't have encoders yet. And Axis then loaded without complaint)
There may be various elements such as that encoder related line in my file, that may need editing in the hal
file generated during your setup. Usually, the bottom section of the error message displayed in the "Terminal"
program (if you launched your application from terminal) will provide information on what code or file caused
the fault.


Most of the code and information I listed in this post was gathered from various posts and threads from other
members accross this forum, and I would like to thank those members for their contributions to the community.
The following user(s) said Thank You: andypugh, tommylight, Aciera

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

Moderators: cmorley
Time to create page: 0.114 seconds
Powered by Kunena Forum