ams AS5048 14-bit roterende positionssensor med digital vinkel og PWM-udgang
Produktinformation
AS5048 er en 14-bit roterende positionssensor med digital vinkel (interface) og PWM-udgang. Den er designet af ams OSRAM Group og udgivet af Arrow.com. Sensoren bruges til at måle positionen af et roterende objekt og giver nøjagtige vinkelmålinger.
AS5048-adapterkortet er et kredsløb, der giver mulighed for nem test og evaluering af AS5048-sensoren uden behov for at bygge et separat testarmatur eller PCB. Adapterkortet kan tilsluttes en mikrocontroller eller AS5048-Demoboardet som en ekstern enhed.
Tavlebeskrivelse
AS5048 Adapterboard har et interface type A (SPI) eller B (I2C), 4 x 2.6 mm monteringshuller og et P1-stik. Det giver en bekvem måde at forbinde og interagere med AS5048-sensoren.
Monteringsvejledning
Følg disse trin for at montere AS5048-adapterkortet:
- Placer en diametral magnet over eller under AS5048 positionssensoren.
- Sørg for, at magneten er centreret på midten af pakken med en tolerance på 0.5 mm.
- Oprethold en luftspalte mellem magneten og encoderhuset i området fra 0.5 mm til 2 mm.
- Brug et ikke-ferromagnetisk materiale såsom messing, kobber, aluminium eller rustfrit stål til magnetholderen.
At følge disse instruktioner vil sikre korrekt funktion af AS5048-adapterkortet og nøjagtige positionsmålinger.
Revisionshistorie
Generel beskrivelse
AS5048 er en brugervenlig 360° vinkelpositionssensor med en 14-bit høj opløsning output. For at måle vinklen kræves kun en simpel to-polet magnet, der roterer over midten af chippen.
Magneten kan placeres over eller under IC. Dette er vist i figur 1.
Figur 1: Magnetisk positionssensor AS5048 + magnet
AS5048-adapterkortet
AS5048-adapterkortet er et simpelt kredsløb, der tillader test og evaluering af den magnetiske positionssensor AS5048 hurtigt uden at bygge et testarmatur eller PCB.
Bestyrelsesbeskrivelse
AS5048 Adapterboard er et simpelt kredsløb, der tillader test og evaluering af AS5048 roterende encoder hurtigt uden at bygge et testarmatur eller PCB.
PCB'et kan tilsluttes en mikrocontroller eller til AS5048-Demoboardet som ekstern enhed.
Figur 2: AS5048 Adapterboard
Montering af AS5048-adapterkortet
En diametral magnet skal placeres over på under AS5048 positionssensoren og skal centreres på midten af pakken med en tolerance på 0.5 mm.
Luftspalten mellem magneten og encoderhuset skal holdes i området 0.5 mm~2 mm. Magnetholderen må ikke være ferromagnetisk. Materialer som messing, kobber, aluminium, rustfrit stål er de bedste valg til at lave denne del.
Figur 3: AS5048 – AB – montering og dimension
AS5048 adapterkort og pinout
Figur 4: AS5048-adapterkortstik og encoder-pinout
Tabel 1: Pin beskrivelse
Pin# Board | Pin# AS5 048 | Symbol Board |
Beskrivelse |
P1 – 1 | 13 | GND | Forsyningsgrund |
P1 – 2 | 3 | A2/MISO | SPI master ind/slave ud; delt med I2C adressevalgsstift 2 |
P1 – 3 | 4 | A1/MOSI | SPI master ud/slave ind; delt med I2C adressevalgsstift 1 |
P1 – 4 | 2 | SCL/SCK | SPI ur input; delt med I2C urindgang |
P1 – 5 | 1 | SDA/CSn | SPI chip valg-aktiv lav; delt med I2C-datapin |
P1 – 6 | 14 | PWM | Pulsbreddemodulationsudgang |
P1 – 7 |
12 |
3.3V |
3V-regulator udgang; internt reguleret fra VDD. Tilslut til VDD for 3V forsyning voltage |
P1 – 8 | 11 | 5V | Forsyning voltage |
Operationssager
Den mest komplette og nøjagtige løsning for en MCU til at aflæse vinklen på en magnet er SPI-grænsefladen.
One Device SPI-tilstand, ensrettet – 3-leder
AS5048-AB kan tilsluttes direkte til en industristandard SPI-port på en mikrocontroller. Minimumskravet til forbindelse for ensrettet kommunikation (vinkel + alarmværdiaflæsning) mellem mikrocontrolleren og AS5048 er MISO, SCK, SS/.
Vinklen aflæses ved hver 16-bit SPI-overførsel. Se AS5048 datablad register tabel, register 3FFFh.
Figur 5: Brug af SPI-grænsefladen ensrettet med en mikrocontroller
En enheds SPI-tilstand, tovejs – 4 ledere
Hvis andre registre end kun vinkelværdier skal læses, eller for at skrive registre ind i AS5048, er signalet MOSI nødvendigt.
Figur 6: Brug af SPI-grænsefladen tovejs med en mikrocontroller
Multi-enheder SPI Daisy chain-tilstand
AS5048 kan kædes sammen med kun 4 ledninger til SPI-kommunikation.
I denne konfiguration med nx-kodere vil sekvensen blive behandlet som følger:
- MCU sætter SS/ = 0
- MCU skifter nx 16-bit (f.eks. READ-kommando FFFFh) gennem kæden
- MCU sæt SS/=1
På det tidspunkt har alle nx-koderne modtaget READ-kommandoen FFFFh. - MCU sæt SS/=0
- MCU skifter nx 16-bit (f.eks. NOP-kommando 0000h)
- MCU sæt SS/=1
På det tidspunkt er nx 16-bit modtaget på MISO nx vinkelværdierne.
Figur 7: Multi-enheder i Daisy chain-tilstand
Firmware kodning
Følgende kildekode passer til 4-Wire-applikationen
Funktionen void spiReadData() læser/skriver 4 værdier fra AS5048
- Send kommando READ AGC / Modtag værdi ukendt
- Send kommando READ MAG / Modtag værdi AGC
- Send kommando LÆS Vinkel / Modtag værdi MAG
- Send kommando NOP (ingen betjening) / Modtag værdi ANGLE
Hvis kun en LÆSEVINKEL er nødvendig i en sløjfe, kan proceduren reduceres til én linje:
- Send kommando LÆS Vinkel / Modtag værdi Vinkel
Funktionen static u8 spiCalcEvenParity(short value) er valgfri, den beregner paritetsbitten for 16-bit SPI-strømmen.
/*!
************************************************** ***************************
* Læser chipdata op via SPI-interface
*
* Denne funktion bruges til at udlæse cordic værdi fra chips, der understøtter SPI
* interface.
************************************************** ***************************
*/
#define SPI_CMD_READ 0x4000 /*!< flag, der angiver læseforsøg ved brug af SPI-interface */
#define SPI_REG_AGC 0x3ffd /*!< agc register ved brug af SPI */
#define SPI_REG_MAG 0x3ffe /*!< størrelsesregister ved brug af SPI */
#define SPI_REG_DATA 0x3fff /*!< dataregister ved brug af SPI */
#define SPI_REG_CLRERR 0x1 /*!< Ryd fejlregister ved brug af SPI */
void spiReadData()
{
u16 dat; // 16-bit databuffer til SPI kommunikation
u16 magreg;
ushort vinkel, agcreg;
ubyte agc;
ushort værdi;
bit alarmHej, alarmLo;
/* Send READ AGC-kommando. Modtagne data bliver smidt væk: disse data kommer fra den forudgående kommando (ukendt)*/
dat = SPI_CMD_READ | SPI_REG_AGC;
dat |= spiCalcEvenParity(dat) << 15;
spiTransfer((u8*)&dat, sizeof(u16));
/ /* Send READ MAG kommando. Modtagne data er AGC-værdien: disse data kommer fra den forudgående kommando (ukendt)*/
dat = SPI_CMD_READ | SPI_REG_MAG;
dat |= spiCalcEvenParity(dat) << 15;
spiTransfer((u8*)&dat, sizeof(u16));
magreg = dat;
/* Send READ ANGLE kommando. Modtagne data er MAG-værdien fra den forudgående kommando */
dat = SPI_CMD_READ | SPI_REG_DATA;
dat |= spiCalcEvenParity(dat) << 15;
spiTransfer((u8*)&dat, sizeof(u16));
agcreg = dat;
/* Send NOP-kommando. Modtagne data er ANGLE-værdien fra den forudgående kommando */
dat = 0x0000; // NOP kommando.
spiTransfer((u8*)&dat, sizeof(u16));
vinkel = dat >> 2;
}
if ((dat & 0x4000) || (agcreg & 0x4000) || (magreg & 0x4000))
{
/* fejlflag sat – skal nulstille det */
dat = SPI_CMD_READ | SPI_REG_CLRERR;
dat |= spiCalcEvenParity(dat)<<15;
spiTransfer((u8*)&dat, sizeof(u16));
}
andet
{
agc = agcreg & 0xff // AGC-værdi (0..255)
værdi = dat & (16384 – 31 – 1); // Vinkelværdi (0.. 16384 trin)
vinkel = (værdi * 360) / 16384 // Vinkelværdi i grad
(0..359.9°)
størrelse = magreg & (16384 – 31 – 1);
alarmLo = (agcreg >> 10) & 0x1;
alarmHi = (agcreg >> 11) & 0x1;
}
}
/*!
************************************************** ***************************
* Beregn lige paritet af et 16 bit heltal uden fortegn
*
* Denne funktion bruges af SPI-grænsefladen til at beregne den lige paritet
* af de data, som vil blive sendt via SPI til encoderen.
*
* \param[in] værdi : 16 bit heltal uden fortegn, hvis paritet skal beregnes
*
* \return : Lige paritet
*
************************************************** ***************************
*/
statisk u8 spiCalcEvenParity(kortværdi)
{
u8 cnt = 0;
u8 i;
for (i = 0; i < 16; i++)
{
hvis (værdi & 0x1)
{
cnt++;
}
værdi >>= 1;
}
returnere cnt & 0x1;
}
/*!
************************************************** ***************************
* Beregn lige paritet af et 16 bit heltal uden fortegn
*
* Denne funktion bruges af SPI-grænsefladen til at beregne den lige paritet
* af de data, som vil blive sendt via SPI til encoderen.
*
* \param[in] værdi : 16 bit heltal uden fortegn, hvis paritet skal beregnes
*
* \return : Lige paritet
*
************************************************** ***************************
*/
statisk u8 spiCalcEvenParity(kortværdi)
{
u8 cnt = 0;
u8 i;
for (i = 0; i < 16; i++)
{
hvis (værdi & 0x1)
{
cnt++;
}
værdi >>= 1;
}
returnere cnt & 0x1;
}
AS5048-AB-Hardware
Følgende skematisk og layout af Adapterboard kan findes.
AS5048-AB-1.1 Skema
Figur 8: AS5048-AB-1.1 adapterkortskemaer
AS5048 – AB – 1.1 PCB layout
Figur 9: AS5048-AB-1.1 adapterkortlayout
Copyright
Copyright ams AG, Tobelbader Strasse 30, 8141 Unterpremstätten, Østrig-Europa. Varemærker registreret. Alle rettigheder forbeholdes. Materialet heri må ikke gengives, tilpasses, flettes, oversættes, opbevares eller bruges uden forudgående skriftligt samtykke fra indehaveren af ophavsretten.
Ansvarsfraskrivelse
Enheder, der sælges af ams AG, er dækket af garanti- og patentkravene, der fremgår af salgsperioden. ams AG giver ingen garanti, udtrykkelig, lovbestemt, underforstået eller ved beskrivelse af de oplysninger, der er angivet heri. ams AG forbeholder sig retten til at ændre specifikationer og priser til enhver tid og uden varsel. Inden dette produkt designes til et system, er det derfor nødvendigt at tjekke med ams AG for aktuelle oplysninger. Dette produkt er beregnet til brug i kommercielle applikationer. Applikationer, der kræver et udvidet temperaturområde, usædvanlige miljøkrav eller applikationer med høj pålidelighed, såsom militært, medicinsk liv-opretholdende eller livsopretholdende udstyr, anbefales specifikt ikke uden yderligere behandling af ams AG for hver applikation. Dette produkt leveres af ams "SOM DEN ER" og enhver udtrykkelig eller underforstået
garantier, herunder, men ikke begrænset til, de underforståede garantier for salgbarhed og egnethed til et bestemt formål frasiges.
ams AG er ikke ansvarlig over for modtageren eller nogen tredjepart for skader, herunder men ikke begrænset til personskade, ejendomsskade, tab af fortjeneste, tab af brug, afbrydelse af forretning eller indirekte, særlige, tilfældige eller følgeskader, af evt. art, i forbindelse med eller hidrørende fra indretningen, udførelsen eller brugen af de tekniske data heri. Ingen forpligtelse eller ansvar over for modtageren eller nogen tredjepart må opstå eller strømme ud af ams AG's levering af tekniske eller andre tjenester.
Kontaktoplysninger
Hovedkvarter
ams AG
Tobelbader Strasse 30
8141 Unterpremstaetten
Østrig
T. +43 (0) 3136 500 0
For salgskontorer, distributører og repræsentanter, besøg venligst:
http://www.ams.com/contact
Downloadet fra Arrow.com.
Dokumenter/ressourcer
![]() |
ams AS5048 14-bit roterende positionssensor med digital vinkel og PWM-udgang [pdfBrugermanual AS5048-AB-1.1, AS5048 14-bit roterende positionssensor med digital vinkel og PWM udgang, AS5048, 14-bit roterende positionssensor med digital vinkel og PWM udgang, AS5048 14-bit roterende positionssensor, roterende positionssensor, positionssensor, Sensor |