This thesis work addresses the programming of the dsPICDEM™ MCLV-2 development board, equipped with the ARM Cortex-M7 ATSAME70Q21B microcontroller, by adopting an entirely Model-Based approach through the MATLAB/Simulink environment. The main objective is to explore and validate development methodologies that allow for managing the significant hardware complexity of high-performance microcontrollers, typically used in industrial contexts, without the need for manual intervention in the configuration of numerous registers. To solve this problem, an automated C/C++ code generation flow was implemented, leveraging the integrated software toolchains from MathWorks (Simulink Coder, Embedded Coder) and Microchip Technology. At the application level, an algorithm was first developed for the acquisition of analog signals via the AFEC peripheral and the subsequent generation of PWM signals for modulating the intensity of a debug LED. Subsequently, a bidirectional asynchronous serial communication interface (RS-232) between the board and a host PC was configured and tested. In order to optimize the transfer of a large amount of data without burdening the CPU cycles, the communication was supported by the practical implementation of the DMA controller (XDMAC) in Ping-Pong mode. The results of the real-time tests demonstrate the efficiency and robustness of the automatically generated code, confirming that the Model-Based paradigm allows for quick peripheral configuration with a minimized risk of human error. In conclusion, this work consolidates theoretical knowledge on microcontrollers and electrical drives on an interdisciplinary level, providing a validated and scalable software architecture that will serve as a solid foundation for future developments in motor control.

Il presente lavoro di tesi affronta la programmazione della scheda di sviluppo dsPICDEM™ MCLV-2, equipaggiata con il microcontrollore ARM Cortex-M7 ATSAME70Q21B, adottando un approccio interamente Model-Based tramite l'ambiente MATLAB/Simulink. L'obiettivo principale è esplorare e validare metodologie di sviluppo che permettano di gestire la notevole complessità hardware di microcontrollori ad alte prestazioni, solitamente impiegati in contesti industriali, senza la necessità di intervenire manualmente sulla configurazione dei numerosi registri. Per risolvere tale problematica, è stato implementato un flusso di generazione automatica del codice C/C++ sfruttando le toolchain software integrate di MathWorks (Simulink Coder, Embedded Coder) e di Microchip Technology. A livello applicativo, è stato dapprima realizzato un algoritmo per l'acquisizione di segnali analogici tramite periferica AFEC e la conseguente generazione di segnali PWM per la modulazione dell'intensità di un LED di debug. Successivamente, è stata configurata e testata un'interfaccia di comunicazione seriale asincrona (RS-232) bidirezionale tra la scheda e un PC host. Al fine di ottimizzare il trasferimento di un'elevata mole di dati senza gravare sui cicli della CPU, la comunicazione è stata supportata dall'implementazione pratica del controller DMA (XDMAC) in modalità Ping-Pong. I risultati dei test eseguiti in tempo reale dimostrano l'efficienza e la robustezza del codice generato automaticamente, confermando che il paradigma Model-Based consente di configurare le periferiche in modo rapido e con un rischio di errore umano ridotto al minimo. In conclusione, questo lavoro consolida a livello interdisciplinare le conoscenze teoriche sui microcontrollori e sugli azionamenti elettrici, fornendo un'architettura software validata e scalabile che costituirà una solida base per futuri sviluppi nel controllo dei motori.

Programmazione della scheda di sviluppo dsPICDEM™MCLV-2 da MATLAB Simulink

GALLATO, SIMONE
2025/2026

Abstract

This thesis work addresses the programming of the dsPICDEM™ MCLV-2 development board, equipped with the ARM Cortex-M7 ATSAME70Q21B microcontroller, by adopting an entirely Model-Based approach through the MATLAB/Simulink environment. The main objective is to explore and validate development methodologies that allow for managing the significant hardware complexity of high-performance microcontrollers, typically used in industrial contexts, without the need for manual intervention in the configuration of numerous registers. To solve this problem, an automated C/C++ code generation flow was implemented, leveraging the integrated software toolchains from MathWorks (Simulink Coder, Embedded Coder) and Microchip Technology. At the application level, an algorithm was first developed for the acquisition of analog signals via the AFEC peripheral and the subsequent generation of PWM signals for modulating the intensity of a debug LED. Subsequently, a bidirectional asynchronous serial communication interface (RS-232) between the board and a host PC was configured and tested. In order to optimize the transfer of a large amount of data without burdening the CPU cycles, the communication was supported by the practical implementation of the DMA controller (XDMAC) in Ping-Pong mode. The results of the real-time tests demonstrate the efficiency and robustness of the automatically generated code, confirming that the Model-Based paradigm allows for quick peripheral configuration with a minimized risk of human error. In conclusion, this work consolidates theoretical knowledge on microcontrollers and electrical drives on an interdisciplinary level, providing a validated and scalable software architecture that will serve as a solid foundation for future developments in motor control.
2025
Programming the dsPICDEM™ MCLV-2 development board using MATLAB Simulink
Il presente lavoro di tesi affronta la programmazione della scheda di sviluppo dsPICDEM™ MCLV-2, equipaggiata con il microcontrollore ARM Cortex-M7 ATSAME70Q21B, adottando un approccio interamente Model-Based tramite l'ambiente MATLAB/Simulink. L'obiettivo principale è esplorare e validare metodologie di sviluppo che permettano di gestire la notevole complessità hardware di microcontrollori ad alte prestazioni, solitamente impiegati in contesti industriali, senza la necessità di intervenire manualmente sulla configurazione dei numerosi registri. Per risolvere tale problematica, è stato implementato un flusso di generazione automatica del codice C/C++ sfruttando le toolchain software integrate di MathWorks (Simulink Coder, Embedded Coder) e di Microchip Technology. A livello applicativo, è stato dapprima realizzato un algoritmo per l'acquisizione di segnali analogici tramite periferica AFEC e la conseguente generazione di segnali PWM per la modulazione dell'intensità di un LED di debug. Successivamente, è stata configurata e testata un'interfaccia di comunicazione seriale asincrona (RS-232) bidirezionale tra la scheda e un PC host. Al fine di ottimizzare il trasferimento di un'elevata mole di dati senza gravare sui cicli della CPU, la comunicazione è stata supportata dall'implementazione pratica del controller DMA (XDMAC) in modalità Ping-Pong. I risultati dei test eseguiti in tempo reale dimostrano l'efficienza e la robustezza del codice generato automaticamente, confermando che il paradigma Model-Based consente di configurare le periferiche in modo rapido e con un rischio di errore umano ridotto al minimo. In conclusione, questo lavoro consolida a livello interdisciplinare le conoscenze teoriche sui microcontrollori e sugli azionamenti elettrici, fornendo un'architettura software validata e scalabile che costituirà una solida base per futuri sviluppi nel controllo dei motori.
Simulink
SAME70
interfacciamento
File in questo prodotto:
File Dimensione Formato  
IMC_TesiTriennale_ultimaVersione.pdf

accesso aperto

Dimensione 3.63 MB
Formato Adobe PDF
3.63 MB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/115759