- Posts: 15
- Thank you received: 2
MotionMaster Upgrade
- motionmasterupgrade
- Topic Author
- Offline
- New Member
-
Less
More
3 months 4 days ago - 3 months 3 days ago #348157
by motionmasterupgrade
Replied by motionmasterupgrade on topic MotionMaster Upgrade
Need a bit of help from PCW here.
I need to read two Yaskawa absolute-encoder serial position outputs into LinuxCNC — RS-422, async 9600 baud, 7 data / even parity / 1 stop, continuous (~17-byte frame every 40 ms), one per drive. So two independent, always-on UART RX lines.
Stack is a 7I97T with a 7I85S on P1 (running the 7i97t_7i85sd bitfile). The snag: every encoder input is a MuxedQCount (2:1 muxed), which can't carry a continuous async stream, and the only free non-muxed RS-422 receiver I can find is the unused sserial RXData1 (7I85 TB1-19/20) — RXData0 (7I97 TB4) already drives a 7I84.
Can a custom bitfile place two PktUART RX on RS-422 receiver pins on this hardware? If only that one sserial RX is usable, what's the right way to get the second stream — a different daughtercard, or decode it off-board?
Thank you
EDIT: Solution plus tips:
I use Yaskawa drives. With my hardware, I ended up with a strange situation where I was one UART receiver short (I didnt want to use the Pi UART, or add any more hardware). The reading I need from Yaskawa is the absolute encoder position (needs a battery to survive power off, and an additional signal to report the servo absolute position back to mesa). Since a swivel head has 2 axis, I am one UART receiver short. However, I only need the absolute position as a single datapoint after which, the incremental position record takes over. My solution was to wire the UART via a 4pole relay so that when energized, i get UART_AAxis, ad when not energized, i get UART_CAxis. I simply reused a harmless relay. So in my case, when the chip blower is on, I read C and when its off, I read A. So with that, my 7i85 is now able to read 2 signals on 1 single UART.
I had to redo the bit file.
The rest are standard establishing of signals.
I need to read two Yaskawa absolute-encoder serial position outputs into LinuxCNC — RS-422, async 9600 baud, 7 data / even parity / 1 stop, continuous (~17-byte frame every 40 ms), one per drive. So two independent, always-on UART RX lines.
Stack is a 7I97T with a 7I85S on P1 (running the 7i97t_7i85sd bitfile). The snag: every encoder input is a MuxedQCount (2:1 muxed), which can't carry a continuous async stream, and the only free non-muxed RS-422 receiver I can find is the unused sserial RXData1 (7I85 TB1-19/20) — RXData0 (7I97 TB4) already drives a 7I84.
Can a custom bitfile place two PktUART RX on RS-422 receiver pins on this hardware? If only that one sserial RX is usable, what's the right way to get the second stream — a different daughtercard, or decode it off-board?
Thank you
EDIT: Solution plus tips:
I use Yaskawa drives. With my hardware, I ended up with a strange situation where I was one UART receiver short (I didnt want to use the Pi UART, or add any more hardware). The reading I need from Yaskawa is the absolute encoder position (needs a battery to survive power off, and an additional signal to report the servo absolute position back to mesa). Since a swivel head has 2 axis, I am one UART receiver short. However, I only need the absolute position as a single datapoint after which, the incremental position record takes over. My solution was to wire the UART via a 4pole relay so that when energized, i get UART_AAxis, ad when not energized, i get UART_CAxis. I simply reused a harmless relay. So in my case, when the chip blower is on, I read C and when its off, I read A. So with that, my 7i85 is now able to read 2 signals on 1 single UART.
I had to redo the bit file.
The rest are standard establishing of signals.
Last edit: 3 months 3 days ago by motionmasterupgrade.
Please Log in or Create an account to join the conversation.
Time to create page: 0.048 seconds