Mesa: Digital Filters

More
9 years 5 months ago #93406 by sirop
Mesa: Digital Filters was created by sirop
Hello.

Looking through the newest www.mesanet.com/software/parallel/5i25.zip
I see
Code:
signal FilterReg: std_logic_vector(7 downto 0) := std_logic_vector(to_unsigned(integer(defaultfilter),8)); signal FilterCount: std_logic_vector(7 downto 0); signal RXDataD: std_logic; signal RXDataFilt: std_logic;
in pktuart.vhd .

[strike]Is it time to update Packet UART hostmot2 driver or yet too early?[/strike]

This patch
Code:
/* http://freeby.mesanet.com/regmap The PktUARTrMode register is used for setting and checking the PktUARTr's operation mode, timing, and status Bit 31..30 Unused Bit 29..22 Filter Register Bit 21 FrameBuffer has data Bits 20..16 Frames received Bits 15..8 InterFrame delay in bit times Bit 7 Receive Logic active, not an error Bit 6 RXMask Bit 5 Unused Bit 4 RCFIFO Error Bit 3 RXEnable (must be set to receive packets) Bit 2 RXMask Enable (enables input data masking when transmitting) Bit 1 Overrun error (no stop bit when expected) (sticky) Bit 0 False Start bit error (sticky) */ if (rx_mode >= 0) { // read filter settings from rx register before setting new values r += hm2->llio->read(hm2->llio, inst->rx_mode_addr, &buff, sizeof(u32)); buff = (((u32)rx_mode) & 0xffff) | (buff & (0xFF << 22)); r += hm2->llio->write(hm2->llio, inst->rx_mode_addr, &buff, sizeof(u32)); }

seems to be backwards compatible because of github.com/LinuxCNC/hostmot2-firmware/bl...rc/pktuartr.vhd#L412 ,
doesn't it?

Please Log in to join the conversation.

More
9 years 5 months ago #93439 by PCW
Replied by PCW on topic Mesa: Digital Filters
Yes, the filter field is a no-op in the previous version so there's no harm always writing the
value. The filter time should be set to 1/2 a UART bit time (filter time is (1/ClockLow) * (FilterRegValue+1)

At lower baud rates its not possible to set the filter to 1/2 a bit time, in those cases, it should be set all the way up (255)
= 25.6 usec at 100 MHz ClockLow, and 76.8 usec at 33 Mhz ClockLow

Please Log in to join the conversation.

More
9 years 5 months ago #93442 by sirop
Replied by sirop on topic Mesa: Digital Filters

PCW wrote: Yes, the filter field is a no-op in the previous version so there's no harm always writing the
value. The filter time should be set to 1/2 a UART bit time (filter time is (1/ClockLow) * (FilterRegValue+1)

At lower baud rates its not possible to set the filter to 1/2 a bit time, in those cases, it should be set all the way up (255)
= 25.6 usec at 100 MHz ClockLow, and 76.8 usec at 33 Mhz ClockLow



(1/ClockLow) * (FilterRegValue+1)= 0.5*bittime => FilterRegValue = 0.5*bittime*ClockLow -1

Should FilterRegValue then be rouned up or down ?
For instance:
76,800 bit/s with bittime=13.0 µs at ClockLow=33Mhz:
0.5*13.0*33-1 = 213.5

Is FilterRegValue then 214 or 213?

Please Log in to join the conversation.

More
9 years 5 months ago #93443 by PCW
Replied by PCW on topic Mesa: Digital Filters
At 76.8 KBaud it really doesn't matter, where it becomes critical is very high baud rates (say 10 MBaud and 33 MHz clock low) where the filter value is low, in this case rounding down is better as it will result in better tolerance of serial data timing distortions. So as a general rule, rounding down is preferable

Please Log in to join the conversation.

More
9 years 5 months ago #93763 by sirop
Replied by sirop on topic Mesa: Digital Filters
I once used a standard TTL converter where the quality of the Rx signal deteriorated over time. The scope showed that
square wave lost its steepness and looked more and more like a triangle wave.

So as far as hm2_pktuart_setup function is concerned, is it worth then to let the user pass a FilterReg value somewhat different from 0.5*bittime*ClockLow -1 in such a case?

Please Log in to join the conversation.

More
9 years 4 months ago #94095 by sirop
Replied by sirop on topic Mesa: Digital Filters
MK patch : github.com/machinekit/machinekit/pull/1214

LinuxCNC Patch yet to follow.

Please Log in to join the conversation.

Time to create page: 0.179 seconds
Powered by Kunena Forum