2026-01-27 9:16 PM - last edited on 2026-01-29 2:46 AM by Andrew Neil
Hello
I am currently developing a quadruped robot using a NUCLEO-H753ZI. My setup involves a mix of Dynamixel AX-12+ (UART3, 1Mbps, Protocol 1.0) and MX-series motors (UART6, 2Mbps, Protocol 2.0) using an SN74LS241N transceiver.
The Problem:
UART3 (AX-12): Works perfectly at 1Mbps. This confirms my basic transceiver logic and wiring are functional.
UART6 (MX-Series): No response at all. I’ve tried downgrading the MX motors to 1Mbps and using Protocol 1.0 to match the AX-12, but still nothing.
Technical Context & MPU Setup: To provide more context, I have implemented an MPU configuration primarily to handle IMU sensor data via DMA. I wanted to ensure cache coherency for the IMU data buffers.
However, I am now concerned that this MPU/Cache setup might be interfering with my UART6 communication. Since the MX motors on UART6 require much higher timing precision (especially at 2Mbps), I suspect the D-Cache or MPU regions might be causing issues with the UART TX buffers, even though I'm currently using Polling (HAL_UART_Transmit).
What I’ve tried so far:
Baud Rate: Tested MX-series at both 2Mbps and 1Mbps.
Timing: Added a wait loop for UART_FLAG_TC before toggling the Direction Pin (PC8).
MPU: Configured specific memory regions as Non-Cacheable/Shared to avoid stale data.
My Questions:
Is there a known reason why UART3 would work fine while UART6 fails under the same MPU/Cache logic on the H7?
Could the Bus Matrix or Domain differences (D1 vs D2) between UART3 and UART6 be playing a role here?
Does my MPU_Config() (see attached main.c) look appropriate for a system handling both high-speed IMU DMA and UART RS485?
I’ve attached my main.c (including MPU_Config), usart.c, and the DXL driver. I would really appreciate any insights or pointers on H7-specific UART pitfalls.
Thank you in advance!
2026-01-27 9:31 PM
I'm adding the Clock Configuration screenshot that I missed in the original post
2026-01-29 12:59 AM
Hello @james5
Before going deeper into the MPU, check with logic analyzer whether USART6 is actually transmitting what you think, independent of MX-series motors.
2026-01-29 1:41 AM
Hello,
Cache could induce some data coherency issues but could not lead to a UART to be non functional.
But the issue is not clear. What do you mean by "UART6 fails"? Is it non functional at all or is it not reaching 2Mbps while it does for lower baudrates?