Consulting case / embedded systems
Client engagementSOGECLAIR
XC167 to STM32H753 migration, serial protocols and Ethernet
Identification
- Client
- SOGECLAIR
- Through
- N7 Consulting, Junior-Enterprise of ENSEEIHT
- Subject
- Microcontroller migration of an existing communication product
- From
- Infineon XC167, 16-bit
- To
- STMicroelectronics STM32H753, Arm Cortex-M7
- Added
- Ethernet, which the original platform did not carry
Technical scope
01
The problem
A working product on a 16-bit Infineon XC167 had to move to an STM32H753. The peripheral model, interrupt model, memory system and toolchain all change under behaviour that has to stay identical, and the new platform also had to carry Ethernet.
- Behaviour to preserveThe existing serial protocol had to keep its framing, its timing tolerance and its error handling, because the equipment on the other end of the link was not changing.
- Architecture changeA different core, a different peripheral set and a cache and memory system the XC167 did not have.
- New capabilityAn Ethernet interface added to a product built around serial links.
02
The work
- Serial linksUART and RS232 brought up on the STM32H753 peripheral model, with the line settings and framing the existing protocol requires.
- DMATransfers moved onto DMA rather than per-character interrupt service, so that the processor is not the thing that limits the link and long frames do not depend on interrupt latency.
- Protocol state machinesThe framing, sequencing and error handling of the protocol rebuilt against the new peripheral and DMA model, keeping the behaviour the far end expects.
- EthernetThe MAC driven over RMII to an external PHY, with the clocking, pin mapping and PHY bring-up that requires.
- LwIPThe LwIP stack integrated above the MAC, giving the product an IP interface alongside its serial links.
- ValidationBehaviour checked against the original platform on the link itself rather than against a reading of the source.
03
What the case is worth technically
Three things in it generalise:
- Peripheral models are not portableThe same logical function, a UART with a protocol on top, is a different piece of engineering on each platform. What ports is the specification of the behaviour, not the driver.
- DMA changes the structureMoving from interrupt-per-character to DMA is not an optimisation, it changes where the framing decision is made and what the state machine can observe.
- Networking is a system, not a peripheralRMII, the PHY, the clocking and the stack above them fail in different places, and the bring-up has to be able to tell which one is failing.
Related skillsEmbedded and wirelessElectronics
04
What is not published
Client work: the product, source code, schematics, protocol specification and any performance figure are not published.