Realtime delay with custom Mesa firmware

More
08 May 2024 12:59 #300118 by TangentAudio
I've got an old 7i43-400 EPP card that I'm using for testing on a conversion.  I had no latency errors while I was using it with one of the stock servo-only firmware images (SV8.BIT).  I needed to add a couple of stepgens on specific pins for testing, so I built FPGA firmware with a custom pinout.

The stepgens seem to work just fine, except that now, whenever I start linuxcnc, I get a realtime delay/latency error that I was not getting before.  It happens right at launch every time.

Here are the modules enabled in my FPGA pin file.  I've attached the whole thing as well. 
        (HM2DPLLTag,    x"00",    ClockLowTag,    x"01",    HM2DPLLBaseRateAddr&PadT,    HM2DPLLNumRegs,        x"00",    HM2DPLLMPBitMask),
        (WatchDogTag,    x"00",    ClockLowTag,    x"01",    WatchDogTimeAddr&PadT,        WatchDogNumRegs,        x"00",    WatchDogMPBitMask),
        (IOPortTag,        x"00",    ClockLowTag,    x"02",    PortAddr&PadT,                    IOPortNumRegs,            x"00",    IOPortMPBitMask),
        (QcountTag,        x"02",    ClockLowTag,    x"06",    QcounterAddr&PadT,            QCounterNumRegs,        x"00",    QCounterMPBitMask),
        (PWMTag,            x"00",    ClockHighTag,    x"03",    PWMValAddr&PadT,                PWMNumRegs,                x"00",    PWMMPBitMask),
        (StepGenTag,    x"02",    ClockLowTag,    x"02",    StepGenRateAddr&PadT,        StepGenNumRegs,        x"00",    StepGenMPBitMask),
        (AddrXTag,        x"00",    ClockLowTag,    x"01",    TranslateRAMAddr&PadT,        TranslateNumRegs,        x"00",    TranslateMPBitMask),
        (SSerialTag,   x"00",   ClockLowTag,   x"01",   SSerialCommandAddr&PadT,   SSerialNumRegs,      x"10",   SSerialMPBitMask),

Any obvious culprits I should look for?  I don't have access to my config files at the moment (forgot to push them up to github last night), but I will be back at the machine later today.

thanks,
Steve
 
Attachments:

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

More
08 May 2024 14:43 #300128 by PCW
I would check the tmax values, it may be that the I/O time
accessing the added functions is too great for the servo period

halcmd show param *.tmax
 (when LinuxCNC is running)
 These times are in CPU cycles on X86
The following user(s) said Thank You: TangentAudio

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

Moderators: PCWjmelson
Time to create page: 0.085 seconds
Powered by Kunena Forum