C.A.ST.L.E.: A MODULAR ROBOTICS PLATFORM M. Branciforte and F. La Rosa
Transcription
C.A.ST.L.E.: A MODULAR ROBOTICS PLATFORM M. Branciforte and F. La Rosa
C.A.ST.L.E.: A MODULAR ROBOTICS PLATFORM M. Branciforte1and F. La Rosa1 STMicroelectronics – IMS Systems Lab & Technical Marketing Group, Catania, Italy 1 ABSTRACT This paper deals with a new robotic modular platform called C.A.ST.L.E. (Control & Automation ST Ladder Electronics). The platform is composed by an existing commercial evaluation board based on STM32 microcontroller and some brand-new boards having dedicated functions focused on robotic applications. The aim is to provide a complete automated platform, compact and flexible, easy to manage and cost effective, suitable to be introduced as a powerful evaluation tool to spread the diffusion of Robotics. Moreover, a dedicated firmware is under development: the libraries are all based on open source code and a free Real Time Operative System. In this way it is easier to upgrade or add new functions and features. TECHNOLOGICAL PLATFORM DESCRIPTION The basic architecture is shown in Fig.2: it is constituted by the main blocks and the related communication peripherals. INTRODUCTION A smart approach to Robotics, thanks to a new modular platform, is becoming increasingly important for its innovative potential and for the impact it is creating in various sectors such as electronics, automation, control, computer science and mechatronics. Our program aims to take a more challenging and targeted approach through a set of evaluation boards that should broaden young people's horizons and encourage them to explore beyond formal education by engaging them in the world of robotics. These boards, characterized by ease of use, simple features as compactness and flexibility, reliability and cost effectiveness, may be used both as independent evaluation board, and as modular assembled structures. They are also named as C.A.ST.L.E., and represent a galaxy of solutions with specific robotic functionalities and features, all rotating around an already exiting platform, called STM32VLDISCOVERY, working as the coordinator. In general a robotic system may be thought as the development of three main actions: sense, think and move. In the C.A.ST.L.E. platform the STM32VLDISCOVERY represents the think action, while the remaining two actions have been identified and will be completed with the next developments. Each C.A.ST.L.E. robotic module has peculiar capabilities (motor driver, sensors, external communications, etc.), and may be connected to the STM32VLDISCOVERY through a common communication bus, as shown in Fig.1. Figure 2: CASTLE platform block scheme. In this system approach, STM32VLDISCOVERY is used as master board and is connected by two different SPI bus to two slave boards, respectively representing the sense action and the move action. The master operates only on high level, controlling the main application and monitoring the activities of the slave boards. According to this strategy, each slave board is able to control the typical assigned tasks (i.e. for motor driver board, a possible task may be the motor speed control). Thus, the block diagram of each slave board, both for sense and move, is similar. Single slave board architecture has shown in the Fig.3. Figure 3: General schematic of a slave board. Figure 1: Modular approach for the CASTLE galaxy. In each slave board, the main elements are: the STM32F103 ARM® Cortex™-M3 microcontroller, that carries on the main tasks scheduled in the library firmware; the power management, designed to be flexible in order to manage the supply for the single board or the entire ladder structure; the main driver or sensor, depending on the absolved robotic function; the connectors JTAG/SWD and USB; some specific user pins, both digital and analog; the connectors to plug the slave board to the modular platform. Presently, two slave boards prototypes have been developed: a stepper motor controller based on the dSPIN L6470 (STEVALIFN006V1[14]), and a DC motor controller based on the PowerSPIN L6226Q (STEVAL-IFN006V2[14]). In the following sub-paragraphs, the currently developed boards are described, while in the next paragraph the firmware architecture is shown. a) STM32VLDISCOVERY Figure 4: STM32VLDISCOVERY evaluation board. [1] The STM32VLDISCOVERY is a cost-effective board based on the STM32F100 ARM® Cortex™-M3 microcontroller[2], suitable to discover the STM32 value line microcontrollers. The STM32F100 is a 32-bit microcontroller with 128 KB Flash, 8 KB RAM in 64-pin LQFP package, perfect fit for control applications: it has up to seven PWM 16-bit timers including advanced control timer for a total of 26 channels. It supports extensive connectivity capability with CEC, 400 kHz I²C, up to12 Mbit/s master and slave SPI, up to 3 Mbit/s USART[5]. STM32VLDISCOVERY board is equipped with on-board ST-Link, a programmer tool for STM32 family, dedicated for uploading specific firmware[3][6]. This feature allows the selection mode switching in order to use the kit also as a stand-alone STLink (with SWD connector). STM32VLDISCOVERY has been designed to be powered by USB or an external supply of 5 V or 3.3 V, and can supply target application with 5 V and 3 V source pins. Two user LEDs (green and blue) and one user push button are embedded in the platform for implementing peripheral control functions. Two extension headers, linked to all QFP64 I/Os, have been used to connect the DISCOVERY to the other CASTLE constituting platforms. b) STEVAL-IFN006V1 The STEVAL-IFN006V1 is a stepper motor controller demonstration board based on the dSPIN L6470[8] and STM32F103 microcontroller[4], suitable for use in the development of applications using two low-to-mid power stepper motors and four servo motors. The STEVAL-IFN006V1 board has been designed to be managed in two main configurations: • Stand-alone configuration is used to demonstrate the L6470 performance managed by the STM32F103 32-bit microcontroller • Stacked configuration allows multiple controllers to be remotely coordinated from a host board (such as the STM32VLDiscovery microcontroller board), to which dedicated firmware can be uploaded. The L6470 is the core device of this platform. The device is designed using analog mixed signal technology, and represents an advanced fully-integrated solution suitable for driving two-phase bipolar stepper motors with micro-stepping[8]. The L6470 integrates a dual low RDSON DMOS full bridge with all of the power switches equipped with accurate on-chip current sensing circuitry suitable for non-dissipative current control and overcurrent protection. Thanks to its unique control system, true 1/128-step resolution is achieved. The digital control core can generate user-defined motion profiles with acceleration, deceleration, speed or target position easily programmable through a dedicated set of registers. All commands and data registers, including those used to set analog values, are sent through a standard 5Mbit/s SPI[9] [10] [11] [12]. The STEVAL-IFN006V1 board embeds also a STM32F103RET microcontroller[4], based on ARM® Cortex™-M3 32-bit RISC core, operating at a 72 MHz frequency, with embedded high-speed memories and a wide range of peripherals and functions. The STM32F103RET is capable of controlling stepper motors driven by the L6470, to read the output signals from the motor encoders, monitor the operating currents, and manage the diagnostic signals from the L6470. The stepper motor controller is also able to control up to four servo motors independently. Figure 5: the STEVAL-IFN006V1 stepper motor controller demonstration board The STEVAL-IFN006V1 board embeds specific connector for uploading demo or user firmware (standard JTAG connector), several user pins, both for digital I/Os and for analog inputs. In particular, the analog inputs have been provided by buffers to scaling the input voltages in the MCU ADCs range, and to protect the MCU input pins. A mini-USB connector provides the possibility of power supplying and the main communication to PC. Two user LEDs are also integrated in the board to monitor the board behavior. The STEVAL-IFN006V1 is provided with a specific demonstration firmware able to drive two low-to-mid power stepper motors and four servo motors. The basic firmware has been conceived to manage all the main peripherals integrated in the board, and supports a dedicated communication protocol suitable to be integrated in the complete modular platform containing the STM32VLDISCOVERY as the system master. c) STEVAL-IFN006V2 The STEVAL-IFN006V2 is a DC motor controller demonstration board based on the L6226Q PowerSPIN DMOS dual full bridge driver[13], and the STM32F103 microcontroller. The board provides a platform for developing applications using two low-to-mid power DC motors. Also this board has been designed for two main configurations: • Stand-alone configuration is used to demonstrate the L6226Q performance managed by the microcontroller • Stacked configuration allows multiple controllers to be remotely coordinated from a host board (such as the STM32VLDiscovery microcontroller board), to which dedicated firmware can be uploaded. The core device of this platform is the L6226Q, a DMOS dual full bridge driver designed for motor control applications. The L6226Q is developed using BCD multi-power technology, which combines isolated DMOS power transistors with CMOS and bipolar circuits on the same chip. The L6226Q features thermal shutdown and non-dissipative overcurrent detection on the high side power MOSFETs, plus a diagnostic output that can be readily used to implement overcurrent protection. As the previous stepper motor control board, the STM32F103RET is the brain of the application architecture. The microcontroller is capable of controlling up to two DC motors driven by the L6226Q, to read the output signals from the motor encoders, monitor the operating currents, and manage the diagnostic signals from the L6226Q. Figure 6: the STEVAL-IFN006V2 DC motor controller demonstration board. As the previous board, the STEVAL-IFN006V2 embeds standard JTAG connector for firmware uploading, several digital I/Os and for analog inputs pins, a mini-USB connector for power supplying and communication to PC, and two user LEDs. Also the STEVAL-IFN006V2 is provided with a specific demonstration firmware to manage all the main peripherals integrated in the board, and supports the same dedicated communication protocol suitable to complete the modular platform configuration. C.A.ST.L.E. FIRMWARE[14] ARCHITECTURE To manage the complete platform capabilities, it’s been necessary to implement a firmware architecture having the following characteristics: • ease of upgrading; • quick integration of new user functions; • multi-tasking operability; • based on Open Source code. For this reason the FreeRTOS real-time operative system[7] has been identified as the best choice to fit these demands. FreeRTOS supports the multitasking operability and well operates with ARM® Cortex™-M3 core based microcontroller: C-code libraries may be easily integrated in it, together with the motor controllers functionalities, avoiding to waste huge size of memory because the operative system kernel is very limited. Finally, FreeRTOS is free, open source based and distributed to a large range of users. Starting by this first level, a firmware library has been developed to provide a complete set of basic pre-implemented functions that allows an easy integration of these ones in the final application. The main functions designed for this aim, are characteristic for each board and inserted in a common context: for example, for the DC motor controller, major developed tasks are parametric speed control, position control, etc… At higher level, a dedicated communication protocol has been developed to connect the several physical layers of the platform (i.e. the master board level to the slave boards layers). As previously described in Fig.2, the communication bus used for this task is the SPI: based on this communication protocol, a specific frame has been designed to integrate a large set of commands. A standard frame is shown in the Fig.7. [12] STM32F1xx motor-control firmware for dSPIN - Quick Guide - STMicroelectronics [13] L6226 - Datasheet - STMicroelectronics [14] STEVAL-IFN006V1, STEVAL-IFN006V2 boards prototypes and C.A.ST.L.E. firmware are available on request. Contact ST Sales Offices for further details. Figure 7: the communication protocol frame (a) and the first byte exploited in detail (b). The two major tasks are common in all boards: the first one is the Gatekeeper Task that manages the interrupt service routine data, sending data to the other task or to the transmission channels; the second is the Parser Task that remain in waiting mode on the data queue, verifying input data and executing the commands. According to this architecture, empty template tasks have been added in order to be filled by the final user to implement the specific features on the application platform. CONCLUSIONS A new robotic modular platform called C.A.ST.L.E. (Control & Automation ST Ladder Electronics) has been introduced. The platform is mainly based on a master board, able to control the main application, and several slave boards devoted to manage the low level specific tasks. The first two slave boards developed up to now are able to control DC motors, steppers motors and servos. Firmware architecture has been developed in order to use the operative system to schedule specific tasks and to enable main communication between the several boards. Next step will be the integration of sensorial slave boards in the final modular platform, exploiting the same philosophy under the hardware and firmware aspects. REFERENCES [1] UM0919 - STM32VLDISCOVERY - User Manual STMicroelectronics [2] STM32F100x4, STM32F100x6, STM32F100x8, STM32F100xB - Datasheet - STMicroelectronics. [3] STM32VLDISCOVERY firmware package - Application Note - STMicroelectronics. [4] STM32F103xC STM32F103xD STM32F103xE – Datasheet STMicroelectronics [5] STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32bit MCUs, page 597/1093 - Reference Manual STMicroelectronics [6] ARM-based 32-bit MCU STM32F101xx and STM32F103xx firmware library - Firmware Library User Manual STMicroelectronics [7] FREERTOS: http://www.freertos.org/ [8] L6470 - Datasheet - STMicroelectronics [9] AN3103: Fully integrated micro-stepping motor driver using the L6470 - Application Note - STMicroelectronics [10] AN3980: STM32 firmware library for dSPIN L6470 Application Note - STMicroelectronics [11] AN3103: Fully integrated micro-stepping motor driver using the L6470 - Application Note - STMicroelectronics .