Table of Contents
Introduction
The MA732 is a digital angle sensor, which can be used to detect rotary angles and can be used to compute rotational speed measurements, in a contactless manner using a magnet stuck on the end of a shaft. You could use it for measuring motors, or as a user interface device with a knob for turning by hand. It's ultra-low-cost compared to an optical encoder, but it's also very accurate. The photo below shows the nice kit that Monolithic Power Systems (MPS) supplied.
Monolithic Power Systems (MPS) supplied a RoadTest kit that is so nice, that it’s worth briefly discussing the contents. This blog post contains some photos and information for those curious to see what was inside! For more detail on the actual RoadTest, see the actual RoadTest review.
In brief, the kit contains the sensor, as well as the means to generate precise motion, so that the sensor can be tested. The motion comes from a digital servo motor (this isn’t quite the same as a hobby servo motor). The diagram below shows what's inside a digital servo motor. Just to briefly explain, the digital servo motor takes a control input and provides power to a motor, and at the same time obtains direct feedback from the shaft using (usually) a rotary encoder. By comparing the encoder position with the desired instruction, the electronics can apply more power, or reverse it if there has been any overshoot, to get the shaft precisely into the desired position. If a user manually knocks the shaft into the wrong position, the rotary encoder detects this and the system self-corrects.
Kit Component: Digital Servo Motor and MA732 Sensor Board
The servo motor is based on (or is a variant of), an MPS product called MMS742038-24-R1-1 and it consists of a brushless DC motor with a shaft at both ends, and a control circuit that senses the shaft position and controls the power to the motor coils accordingly, to sequence power in each coil to rotate the motor.
The photo above shows one side of the circuit board inside the servo motor. The circuit board is available as part code MMP742038-24 (PDF datasheet) as a separate product for attaching to other motors, i.e. bring-your-own-motor-and-housing. The other side of the board (not easily removable without desoldering) contains a MP6570 BLDC controller with built-in sensor very similar to the MA732, in proximity to one end of the motor shaft which has a magnet attached. The diagram below is from the MP6570 PDF datasheet.
The photo below shows what is attached to the other end of the servo motor. The circular board contains the MA732 sensor, and the ribbon cable carries the SPI bus.
Kit Component: NXP LPC-Link 2 Board
The photo below shows the NXP board which interfaces the MA732 sensor to the PC.
The board is pre-programmed to support MPS sensors and the Macom app. It has an overkill Cortex-M4 along with two Cortex-M0 cores. It could be reprogrammed for other purposes if desired (it can also be used as a J-Link debugger for other NXP target chips).
Kit Component: USB to RS-485/I2C/SPI Adapter
The kit happens to contain an adapter for directly connecting a PC to the digital servo motor, however, this isn’t used for any of the tests, so it’s not worth discussing much further. The kit contains an alternative method for controlling the motor (using the Arduino Mega and a separate UART to RS485 adapter).
Kit Component: Arduino Mega
The Arduino Mega is a microcontroller board, the main characteristic is that it has a lot of input/output connections brought out. The purpose of the Arduino board is to send instructions (via the RS-485 transceiver board discussed further below) to the servo motor, to set a speed or position.
I didn't actually use this Arduino board for the RoadTest in the end, so if anyone wants it, send me a message. I used a Pi Pico microcontroller board instead because I wanted to use Python (actually the microcontroller variant called MicroPython, which the Pico supports).
Kit Component: RS-485 Transceiver Board
The kit includes a MAX485 board for interfacing the Arduino Mega with the digital servo motor. It basically just breaks out a MAX485 chip, which offers logic level input/output on one side, and RS-485 differential pair signals on the other side.
The MAX485 supports 5V operation. Since I wished to use a 3.3V logic level Pi Pico instead of an Arduino Mega, I desoldered the chip and replaced it with an ADM3483 part (it is pin-compatible, but operates at 3.3V).
Summary
The kit from MPS is pretty extensive. It contains everything needed to be able to precisely generate motion (down to a fraction of an RPM if desired, or a rotation to a precise angle), as well as all the hardware to get the sensor output signal from the Serial Peripheral Interface (SPI) across USB and into a PC. MPS offer a downloadable free app called Macom to monitor the sensor, but that will be discussed in the RoadTest review.
Thanks for reading!