The AS5047D is a high-resolution rotary position sensor for fast absolute angle measurement over a full 360-degree range. This new position sensor is equipped with revolutionary integrated dynamic angle error compensation (DAEC™) with almost 0 latency and offers a robust design that suppresses the influence of any homogenous external stray magnetic field. A standard 4-wire SPI serial interface allows a host microcontroller to read 14-bit absolute angle position data from the AS5047D and to program non-volatile settings without a dedicated programmer. The resolution of the incremental ABI interface is programmable with a maximum resolution of 2000 steps / 500 pulses per revolution in decimal mode and 2048 steps / 512 pules per revolution in binary mode.
Same as the AS5048A the AS5047D adapter board is a small PCB allowing simple and quick testing or evaluation of the AS5047D magnetic position sensor without the need to build a test fixture or design an own PCB.
P1 has to be populated with a 2×8 pin header and is required for power supply as well as SPI, ABI, UVW/PWM interfaces.
The connector JP1 allows to select between 5V or 3.3V operation.
Depending on the supply voltage either R1 or R2 has to be populated. For 5V operation R1 and for 3.3V operation R2 has to be populated.
In order to connect the VESC to the encoder I connected it the same way as the AS5048A.
SCL/SCK (P1-5) -> HALL 1 A2/MISO (P1-7) -> HALL 2 A1/MOSI (P1-6) -> VCC SDA/CSn (P1-4) -> HALL 3
The AS5047D adapter board and pinout
Same results as with the AS5048A the encoder detection worked fine but I could not get any measurements for 0-180 degress. from 180-360 degress it works fine. I have not yet found any solution for this. But will keep trying to figure this out. An alternative solution for this sensor was to connect it over ABI.
B (P1-9) -> HALL 1 A (P1-10) -> HALL 2 I/PWM (P1-11) -> HALL 3 VCC (P1-1) -> VCC GND (P1-8) -> GND
The encoder count was set to 2048steps in VESC tool. Here is a small video on VESC position control using the AS5047D. Using degrees to control the brushless motor. In the example I have applied 250 degrees and the motor is trying to hold this position when i trying to move it.