This repository has been archived on 2026-06-17. You can view files and clone it, but cannot push or open issues or pull requests.
FireWatchTower_2axis/firmware/lib/tmc/ic/TMC4361A/uml-tmc-api.svg

3 lines
31 KiB
XML
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background: #ffffff; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1011px" height="971px" viewBox="0 0 1011 971"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_bfd4ce_2d3f3a_-1-s-0"><stop offset="0%" stop-color="#ffffff" stop-opacity="1" style="stop-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); stop-opacity: 1;"/><stop offset="100%" stop-color="#bfd4ce" stop-opacity="1" style="stop-color: light-dark(rgb(191, 212, 206), rgb(45, 63, 58)); stop-opacity: 1;"/></linearGradient><linearGradient x1="0%" y1="0%" x2="100%" y2="0%" id="drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0"><stop offset="0%" stop-color="#ffffff" stop-opacity="1" style="stop-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); stop-opacity: 1;"/><stop offset="100%" stop-color="#9dc1f0" stop-opacity="1" style="stop-color: light-dark(rgb(157, 193, 240), rgb(47, 78, 118)); stop-opacity: 1;"/></linearGradient></defs><rect fill="#ffffff" width="100%" height="100%" x="0" y="0" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212));"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="sHvJWdCf7wTAvKq82ngw-54"><g transform="translate(0.5,0.5)"><rect x="0" y="0" width="1010" height="970" fill="#eeeeee" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g></g><g data-cell-id="6e0c8c40b5770093-25"><g transform="translate(0.5,0.5)"><path d="M 10 40 L 10 10 L 140 10 L 140 40 M 10 40 L 580 40 L 580 960 L 10 960 Z" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_bfd4ce_2d3f3a_-1-s-0)" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_bfd4ce_2d3f3a_-1-s-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-3"><g transform="translate(0.5,0.5)"><rect x="160" y="70" width="250" height="190" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0)" stroke="#000000" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 252px; height: 190px; padding-top: 70px; margin-left: 160px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 250px; height: 190px; overflow: hidden; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><p style="margin:0px;margin-top:4px;text-align:center;"><b>TMCXXXX_HW_Abstraction.h</b><br /></p><hr size="1" /><div style="height:2px;"><br /></div></div></div></div></foreignObject><text x="160" y="82" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">TMCXXXX_HW_Abstraction.h...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-5"><g transform="translate(0.5,0.5)"><rect x="165" y="100" width="240" height="160" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 238px; height: 1px; padding-top: 180px; margin-left: 167px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">// Constants<br />#define TMCXXXX_MOTORS   <span style=""><span style="">    </span></span>       <br /><span style=""><span style="">    </span></span><span style=""><span style="">    </span></span><span style=""><span style="">                  </span></span><br />// Register definitions<br />#define TMCXXXX_GCONF    <span style=""><span style="">     </span></span><br />                         <br />// Register fields definitions<br />#define TMCXXXX_GCONF_OTPW_FIELD<br /><span style=""><span style="white-space: pre;">    </span></span><span style=""><span style="white-space: pre;">    </span></span><span style=""><span style="white-space: pre;">    </span></span><span style=""><span style="white-space: pre;">    </span></span><span style=""><span style="white-space: pre;">     </span></span></div></div></div></foreignObject><text x="167" y="184" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">// Constants...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-38"><g transform="translate(0.5,0.5)"><path d="M 290 290 L 285 290 L 285 266.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/><path d="M 285 261.12 L 288.5 268.12 L 285 266.37 L 281.5 268.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-7"><g transform="translate(0.5,0.5)"><rect x="145" y="290" width="290" height="160" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0)" stroke="#000000" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 292px; height: 160px; padding-top: 290px; margin-left: 145px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 290px; height: 160px; overflow: hidden; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><p style="margin:0px;margin-top:4px;text-align:center;"><b>TMCXXXX.h</b><br /></p><hr size="1" /><div style="height:2px;"><br /></div></div></div></div></foreignObject><text x="145" y="302" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">TMCXXXX.h...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-8"><g transform="translate(0.5,0.5)"><rect x="150" y="320" width="285" height="120" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 283px; height: 1px; padding-top: 380px; margin-left: 152px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">extern void tmcXXXX_readWriteSPI();<br />extern void tmcXXXX_readWriteUART();<br />extern TMCXXXXBusType tmcXXXX_getBusType();<br />extern uint8_t tmcXXXX_getNodeAddress();<br />                                 <br />tmcXXXX_readRegister();<br />tmcXXXX_writeRegister();<br />                                 </div></div></div></foreignObject><text x="152" y="384" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">extern void tmcXXXX_readWriteSPI();...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-39"><g transform="translate(0.5,0.5)"><path d="M 290 480 L 290 456.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/><path d="M 290 451.12 L 293.5 458.12 L 290 456.37 L 286.5 458.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-9"><g transform="translate(0.5,0.5)"><rect x="135" y="480" width="310" height="180" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0)" stroke="#000000" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 312px; height: 180px; padding-top: 480px; margin-left: 135px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 310px; height: 180px; overflow: hidden; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><p style="margin:0px;margin-top:4px;text-align:center;"><b>TMCXXXX.c</b><br /></p><hr size="1" /><div style="height:2px;"><br /></div></div></div></div></foreignObject><text x="135" y="492" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">TMCXXXX.c...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-10"><g transform="translate(0.5,0.5)"><rect x="140" y="510" width="305" height="140" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 303px; height: 1px; padding-top: 580px; margin-left: 142px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">const uint8_t tmcCRCTable_Poly7Reflected[256] = {...};<br />int32_t tmcXXXX_readRegister(){<br />/* Call tmcXXXX_getBusType();<br /> * Based on bus type, call readRegisterSPI/UART() that<br /> * further calls tmcXXXX_readWriteSPI/UART();<br /> * For UART it also calls tmcXXXX_getNodeAddress();<br />                                           ⋮<br />}<br />                                           ⋮</div></div></div></foreignObject><text x="142" y="584" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">const uint8_t tmcCRCTable_Poly7Reflected[256] = {.....</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-11"><g transform="translate(0.5,0.5)"><rect x="40" y="10" width="70" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 25px; margin-left: 41px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>TMC-API</b></div></div></div></foreignObject><text x="75" y="29" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px" text-anchor="middle">TMC-API</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-23"><g transform="translate(0.5,0.5)"><path d="M 50 720 L 50 690 L 130 690 L 130 720 M 50 720 L 490 720 L 490 930 L 50 930 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-24"><g transform="translate(0.5,0.5)"><rect x="60" y="795" width="180" height="80" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0)" stroke="#000000" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 80px; padding-top: 795px; margin-left: 60px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 180px; height: 80px; overflow: hidden; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><p style="margin:0px;margin-top:4px;text-align:center;"><b>TMCXXXX_Simple_Rotation.h</b><br /></p><hr size="1" /><div style="height:2px;"></div></div></div></div></foreignObject><text x="60" y="807" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">TMCXXXX_Simple_Rotation.h...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-25"><g transform="translate(0.5,0.5)"><rect x="70" y="825" width="120" height="50" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 118px; height: 1px; padding-top: 850px; margin-left: 72px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">void initAllMotors();<br />             ⋮<br />  </div></div></div></foreignObject><text x="72" y="854" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">void initAllMotors()...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-26"><g transform="translate(0.5,0.5)"><rect x="270" y="750" width="210" height="170" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0)" stroke="#000000" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 212px; height: 170px; padding-top: 750px; margin-left: 270px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 210px; height: 170px; overflow: hidden; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><p style="margin:0px;margin-top:4px;text-align:center;"><b style="border-color: var(--border-color);">TMCXXXX_Simple_Rotation.c</b><br /></p><hr size="1" /><div style="height:2px;"></div></div></div></div></foreignObject><text x="270" y="762" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">TMCXXXX_Simple_Rotation.c...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-27"><g transform="translate(0.5,0.5)"><rect x="270" y="780" width="200" height="130" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 198px; height: 1px; padding-top: 845px; margin-left: 272px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">void initAllMotors(){<br /><br />// Configuring registers to enable motor drivers etc..<br />tmcXXXX_writeRegister();<br />                   <br />}<br />                   </div></div></div></foreignObject><text x="272" y="849" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">void initAllMotors(){...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-28"><g transform="translate(0.5,0.5)"><rect x="60" y="690" width="60" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 705px; margin-left: 61px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>Examples</b></div></div></div></foreignObject><text x="90" y="709" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px" text-anchor="middle">Examples</text></switch></g></g></g><g data-cell-id="UZHgHAEFhFFt3Wud3jXu-2"><g transform="translate(0.5,0.5)"><path d="M 640 495 L 560 495 L 560 380 L 441.37 380" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 436.12 380 L 443.12 376.5 L 441.37 380 L 443.12 383.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-29"><g transform="translate(0.5,0.5)"><path d="M 640 250 L 640 220 L 770 220 L 770 250 M 640 250 L 1000 250 L 1000 740 L 640 740 Z" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_bfd4ce_2d3f3a_-1-s-0)" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_bfd4ce_2d3f3a_-1-s-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-30"><g transform="translate(0.5,0.5)"><rect x="670" y="220" width="80" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 235px; margin-left: 671px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>User Project</b></div></div></div></foreignObject><text x="710" y="239" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px" text-anchor="middle">User Project</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-31"><g transform="translate(0.5,0.5)"><rect x="680" y="280" width="280" height="140" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0)" stroke="#000000" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 282px; height: 140px; padding-top: 280px; margin-left: 680px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 280px; height: 140px; overflow: hidden; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><p style="margin:0px;margin-top:4px;text-align:center;"><b>User_Project.h</b></p><hr size="1" /><div style="height:2px;"></div></div></div></div></foreignObject><text x="680" y="292" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">User_Project.h&#xa;</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-32"><g transform="translate(0.5,0.5)"><rect x="680" y="460" width="280" height="250" fill="url(#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0)" stroke="#000000" pointer-events="all" style="fill: url(&quot;#drawio-svg-s9SKSyJObn9mk7Ee8JIE-gradient-light-dark_ffffff_var_--ge-dark-color_121212_-1-light-dark_9dc1f0_2f4e76_-1-e-0&quot;); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 282px; height: 250px; padding-top: 460px; margin-left: 680px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 280px; height: 250px; overflow: hidden; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><p style="margin:0px;margin-top:4px;text-align:center;"><b>User_Project.c</b></p><hr size="1" /><div style="height:2px;"><br /></div><div style="height:2px;"><br /></div><div style="height:2px;"><br /></div><div style="height:2px;"><br /></div><div style="height:2px;"><br /></div><div style="height:2px;"><br /></div></div></div></div></foreignObject><text x="680" y="472" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">User_Project.c...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-36"><g transform="translate(0.5,0.5)"><rect x="690" y="480" width="260" height="220" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 258px; height: 1px; padding-top: 590px; margin-left: 692px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><br />void tmcXXXX_readWriteSPI(){<br />                           ⋮<br />}<br />void tmcXXXX_readWriteUART(){<br />                           ⋮<br />}<br />TMCXXXXBusType tmcXXXX_getBusType(){<br />                           ⋮<br />}<br style="border-color: var(--border-color);" />uint8_t tmcXXXX_getNodeAddress(){<br />                           ⋮<br />}<br /><br />// User Code<br />                           ⋮</div></div></div></foreignObject><text x="692" y="594" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">void tmcXXXX_readWriteSPI(){...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-37"><g transform="translate(0.5,0.5)"><rect x="680" y="310" width="275" height="100" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 273px; height: 1px; padding-top: 360px; margin-left: 682px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">#include "TMCXXXX_HW_Abstraction.h"<br />#include "TMCXXXX.h"<br />#include "TMCXXXX_Simple_Rotation.h"<br />                               <br />TMCXXXXBusType bus = IC_BUS_SPI/UART;<br />uint8_t nodeAddress = &lt;nodeAddress&gt;;<br />                               </div></div></div></foreignObject><text x="682" y="364" fill="light-dark(#000000, #ffffff)" font-family="Helvetica" font-size="12px">#include "TMCXXXX_HW_Abstraction.h"...</text></switch></g></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-40"><g transform="translate(0.5,0.5)"><path d="M 270 845 L 245.29 845" fill="none" stroke="#001dbc" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/><path d="M 240.04 845 L 247.04 841.5 L 245.29 845 L 247.04 848.5 Z" fill="#001dbc" stroke="#001dbc" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 29, 188), rgb(178, 203, 255)); stroke: light-dark(rgb(0, 29, 188), rgb(178, 203, 255));"/></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-42"><g transform="translate(0.5,0.5)"><path d="M 90 690 L 90 374.6 L 137.65 374.6" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/><path d="M 142.9 374.6 L 135.9 378.1 L 137.65 374.6 L 135.9 371.1 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/></g></g><g data-cell-id="sHvJWdCf7wTAvKq82ngw-48"><g transform="translate(0.5,0.5)"><path d="M 820 460 L 818.6 460 L 818.6 426.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/><path d="M 818.6 421.52 L 822.1 428.52 L 818.6 426.77 L 815.1 428.52 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/></g></g><g data-cell-id="UZHgHAEFhFFt3Wud3jXu-3"><g transform="translate(0.5,0.5)"><path d="M 560 490 L 560 861 L 497.25 860.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 492 860.65 L 499.02 857.18 L 497.25 860.67 L 498.98 864.18 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g></g></g></g></g></svg>