ams AS5048 Sensor de posição rotativa de 14 bits com ângulo digital e saída PWM
Informações do produto
O AS5048 é um sensor de posição rotativa de 14 bits com ângulo digital (interface) e saída PWM. Ele é projetado pelo ams OSRAM Group e publicado pela Arrow.com. O sensor é usado para medir a posição de um objeto em rotação e fornece medições de ângulo precisas.
A placa adaptadora AS5048 é um circuito que permite fácil teste e avaliação do sensor AS5048 sem a necessidade de construir um dispositivo de teste separado ou PCB. A placa adaptadora pode ser conectada a um microcontrolador ou ao AS5048-Demoboard como um dispositivo externo.
Descrição do quadro
O AS5048 Adapterboard possui uma interface tipo A (SPI) ou B (I2C), 4 orifícios de montagem de 2.6 mm e um conector P1. Ele fornece uma maneira conveniente de conectar e interagir com o sensor AS5048.
Instruções de montagem
Para montar a placa adaptadora AS5048, siga estas etapas:
- Coloque um ímã diamétrico sobre ou sob o sensor de posição AS5048.
- Certifique-se de que o ímã esteja centralizado no meio da embalagem com uma tolerância de 0.5 mm.
- Mantenha um espaço de ar entre o ímã e a caixa do codificador na faixa de 0.5 mm a 2 mm.
- Use um material não ferromagnético, como latão, cobre, alumínio ou aço inoxidável para o suporte do ímã.
Seguir estas instruções garantirá o funcionamento adequado da placa adaptadora AS5048 e medições de posição precisas.
Histórico de revisão
Descrição geral
O AS5048 é um sensor de posição de ângulo de 360° fácil de usar com uma saída de alta resolução de 14 bits. Para medir o ângulo, apenas um ímã simples de dois pólos, girando sobre o centro do chip, é necessário.
O ímã pode ser colocado acima ou abaixo do IC. Isso é mostrado na Figura 1.
Figura 1: Sensor Magnético de Posição AS5048 + Ímã
A placa adaptadora AS5048
A placa adaptadora AS5048 é um circuito simples que permite testar e avaliar o sensor de posição magnética AS5048 rapidamente sem construir um dispositivo de teste ou PCB.
Descrição do quadro
O AS5048 Adapterboard é um circuito simples que permite testar e avaliar o codificador rotativo AS5048 rapidamente, sem construir um dispositivo de teste ou PCB.
O PCB pode ser conectado a um microcontrolador ou ao AS5048- Demoboard como dispositivo externo.
Figura 2: Placa adaptadora AS5048
Montagem da placa adaptadora AS5048
Um ímã diamétrico deve ser colocado sob o sensor de posição AS5048 e deve ser centralizado no meio da embalagem com uma tolerância de 0.5 mm.
O espaço de ar entre o ímã e a caixa do codificador deve ser mantido na faixa de 0.5 mm a 2 mm. O suporte magnético não deve ser ferromagnético. Materiais como latão, cobre, alumínio, aço inoxidável são as melhores escolhas para fazer esta peça.
Figura 3: AS5048 – AB – montagem e dimensão
Placa adaptadora AS5048 e pinagem
Figura 4: Conectores da placa adaptadora AS5048 e pinagem do codificador
Tabela 1: Descrição do pino
Pin# placa | Pino nº AS5 048 | Placa de Símbolos |
Descrição |
P1 – 1 | 13 | Terra | Terra de abastecimento |
P1 – 2 | 3 | A2/MISO | SPI master in/slave out; compartilhado com o pino 2 de seleção de endereço I2C |
P1 – 3 | 4 | A1/MOSI | SPI master out/slave in; compartilhado com o pino de seleção de endereço I2C 1 |
P1 – 4 | 2 | SCL/SCK | entrada de relógio SPI; compartilhado com entrada de relógio I2C |
P1 – 5 | 1 | SDA/CSn | SPI chip select-active baixo; compartilhado com pino de dados I2C |
P1 – 6 | 14 | PWM | Saída de modulação por largura de pulso |
P1 – 7 |
12 |
3.3V |
Saída do regulador 3V; regulado internamente pelo VDD. Conecte ao VDD para vol de alimentação de 3Vtage |
P1 – 8 | 11 | 5V | Abastecimento voltage |
casos de operação
A solução mais completa e precisa para um MCU ler o ângulo de um ímã é a interface SPI.
Modo SPI de um dispositivo, unidirecional – 3 fios
O AS5048-AB pode ser conectado diretamente a uma porta SPI padrão da indústria de um microcontrolador. Os requisitos mínimos de conexão para comunicação unidirecional (ângulo + leitura dos valores de alarme) entre o microcontrolador e o AS5048 são MISO, SCK, SS/.
O ângulo será lido a cada transferência SPI de 16 bits. Consulte a tabela de registro da folha de dados do AS5048, registre 3FFFh.
Figura 5: Usando a interface SPI unidirecional com um microcontrolador
Modo SPI de um dispositivo, bidirecional – 4 fios
Se outros registradores além dos valores de ângulo tiverem que ser lidos, ou para escrever registradores no AS5048, o sinal MOSI é necessário.
Figura 6: Usando a interface SPI bidirecional com um microcontrolador
Multidispositivos SPI Modo Daisy chain
O AS5048 pode ser conectado em série, usando apenas 4 fios para comunicação SPI.
Nesta configuração com encoders nx, a sequência será processada da seguinte forma:
- MCU define SS/ = 0
- MCU muda nx 16 bits (por exemplo, comando READ FFFFh) através da cadeia
- MCU define SS/=1
Nesse ponto, todos os codificadores nx receberam o comando READ FFFFh. - MCU define SS/=0
- MCU muda nx 16 bits (por exemplo, comando NOP 0000h)
- MCU define SS/=1
Nesse ponto, os nx 16 bits recebidos no MISO são os valores do ângulo nx.
Figura 7: Vários dispositivos no modo Daisy chain
Codificação de firmware
O código-fonte a seguir se encaixa no aplicativo 4-Wire
A função void spiReadData() lê/escreve 4 valores do AS5048
- Enviar comando READ AGC / Receber valor desconhecido
- Enviar comando READ MAG / Receber valor AGC
- Enviar comando READ Ângulo / Receber valor MAG
- Enviar comando NOP (sem operação) / Receber valor ANGLE
Se apenas um READ ANGLE for necessário em um loop, o procedimento pode ser reduzido a uma linha:
- Enviar comando LER Ângulo / Receber valor Ângulo
A função static u8 spiCalcEvenParity(ushort value) é opcional, ela calcula o bit de paridade do fluxo SPI de 16 bits.
/*!
************************************************** ***************************
* Lê os dados do chip via interface SPI
*
* Esta função é usada para ler o valor Cordic de chips que suportam SPI
*interface.
************************************************** ***************************
*/
#define SPI_CMD_READ 0x4000 /*!< sinalizador indicando tentativa de leitura ao usar interface SPI */
#define SPI_REG_AGC 0x3ffd /*!< registro agc ao usar SPI */
#define SPI_REG_MAG 0x3ffe /*!< registrador de magnitude ao usar SPI */
#define SPI_REG_DATA 0x3fff /*!< registro de dados ao usar SPI */
#define SPI_REG_CLRERR 0x1 /*!< limpa registro de erro ao usar SPI */
void spiReadData()
{
u16 dat; // Buffer de dados de 16 bits para comunicação SPI
u16 magrego;
ângulo ushort, agcreg;
ubyte agc;
valor ushort;
alarme de bitOi, alarmeLo;
/* Envia o comando READ AGC. Os dados recebidos são descartados: esses dados vêm do comando precedente (desconhecido)*/
dat = SPI_CMD_READ | SPI_REG_AGC;
dat |= spiCalcEvenParity(dat) << 15;
spiTransfer((u8*)&dat, sizeof(u16));
/ /* Enviar comando READ MAG. Os dados recebidos são o valor AGC: esses dados vêm do comando precedente (desconhecido)*/
dat = SPI_CMD_READ | SPI_REG_MAG;
dat |= spiCalcEvenParity(dat) << 15;
spiTransfer((u8*)&dat, sizeof(u16));
magre = dat;
/* Envia o comando READ ANGLE. Os dados recebidos são o valor MAG, do comando precedente */
dat = SPI_CMD_READ | SPI_REG_DATA;
dat |= spiCalcEvenParity(dat) << 15;
spiTransfer((u8*)&dat, sizeof(u16));
agcreg = dat;
/* Envia o comando NOP. Os dados recebidos são o valor ANGLE, do comando precedente */
dat = 0x0000; // comando NOP.
spiTransfer((u8*)&dat, sizeof(u16));
ângulo = dat >> 2;
}
if ((dat & 0x4000) || (agcreg & 0x4000) || (magreg & 0x4000))
{
/* sinalizador de erro definido – é necessário redefini-lo */
dat = SPI_CMD_READ | SPI_REG_CLRERR;
dat |= spiCalcEvenParity(dat)<<15;
spiTransfer((u8*)&dat, sizeof(u16));
}
outro
{
agc = agcreg & 0xff // valor AGC (0..255)
valor = dat & (16384 – 31 – 1); // Valor do ângulo (0.. 16384 passos)
ângulo = (valor * 360) / 16384 // Valor do ângulo em graus
(0..359.9°)
magnitude = magreg & (16384 – 31 – 1);
alarmLo = (agcreg >> 10) & 0x1;
alarmHi = (agcreg >> 11) & 0x1;
}
}
/*!
************************************************** ***************************
* Calcula a paridade par de um inteiro sem sinal de 16 bits
*
* Esta função é usada pela interface SPI para calcular a paridade par
* dos dados que serão enviados via SPI para o codificador.
*
* \param[in] valor : inteiro sem sinal de 16 bits cuja paridade deve ser calculada
*
* \return: paridade par
*
************************************************** ***************************
*/
estático u8 spiCalcEvenParity (valor ushort)
{
u8 cnt = 0;
u8i;
para (i = 0; i <16; i ++)
{
se (valor & 0x1)
{
cnt++;
}
valor >>= 1;
}
retornar cnt & 0x1;
}
/*!
************************************************** ***************************
* Calcula a paridade par de um inteiro sem sinal de 16 bits
*
* Esta função é usada pela interface SPI para calcular a paridade par
* dos dados que serão enviados via SPI para o codificador.
*
* \param[in] valor : inteiro sem sinal de 16 bits cuja paridade deve ser calculada
*
* \return: paridade par
*
************************************************** ***************************
*/
estático u8 spiCalcEvenParity (valor ushort)
{
u8 cnt = 0;
u8i;
para (i = 0; i <16; i ++)
{
se (valor & 0x1)
{
cnt++;
}
valor >>= 1;
}
retornar cnt & 0x1;
}
AS5048-AB-Hardware
A seguir, o esquema e o layout da placa adaptadora podem ser encontrados.
AS5048-AB-1.1 Esquemas
Figura 8: Esquemas da placa adaptadora AS5048-AB-1.1
AS5048 – AB – Layout de PCB 1.1
Figura 9: Layout da placa adaptadora AS5048-AB-1.1
Direitos autorais
Copyright ams AG, Tobelbader Strasse 30, 8141 Unterpremstätten, Áustria-Europa. Marcas Registradas. Todos os direitos reservados. O material aqui contido não pode ser reproduzido, adaptado, mesclado, traduzido, armazenado ou usado sem o consentimento prévio por escrito do proprietário dos direitos autorais.
Isenção de responsabilidade
Os dispositivos vendidos pela ams AG são cobertos pelas provisões de garantia e indenização de patente que aparecem em seu Termo de Venda. A ams AG não oferece nenhuma garantia, expressa, estatutária, implícita ou por descrição com relação às informações aqui contidas. A ams AG reserva-se o direito de alterar especificações e preços a qualquer momento e sem aviso prévio. Portanto, antes de projetar este produto em um sistema, é necessário verificar com a ams AG as informações atuais. Este produto destina-se ao uso em aplicações comerciais. Aplicações que requerem faixa de temperatura estendida, requisitos ambientais incomuns ou aplicações de alta confiabilidade, como equipamentos militares, de suporte médico à vida ou de suporte à vida, não são especificamente recomendadas sem processamento adicional pela ams AG para cada aplicação. Este Produto é fornecido por ams “COMO ESTÁ” e qualquer
garantias, incluindo, mas não limitadas às garantias implícitas de comercialização e adequação a uma finalidade específica, são negadas.
A ams AG não será responsável perante o destinatário ou terceiros por quaisquer danos, incluindo, entre outros, danos pessoais, danos à propriedade, perda de lucros, perda de uso, interrupção de negócios ou danos indiretos, especiais, incidentais ou consequenciais, de qualquer tipo, em conexão com ou decorrente do fornecimento, desempenho ou uso dos dados técnicos aqui contidos. Nenhuma obrigação ou responsabilidade para com o destinatário ou qualquer terceiro surgirá ou resultará da prestação de serviços técnicos ou outros pela ams AG.
Informações de contato
Sede
AM AG
Tobelbader Straße 30
8141 Unterpremstätten
Áustria
T. +43 (0) 3136 500 0
Para escritórios de vendas, distribuidores e representantes, visite:
http://www.ams.com/contact
Baixado de Arrow.com.
Documentos / Recursos
![]() |
ams AS5048 Sensor de posição rotativa de 14 bits com ângulo digital e saída PWM [pdf] Manual do Usuário AS5048-AB-1.1, AS5048 Sensor de posição rotativa de 14 bits com ângulo digital e saída PWM, AS5048, Sensor de posição rotativa de 14 bits com ângulo digital e saída PWM, AS5048 Sensor de posição rotativa de 14 bits, Sensor de posição rotativa, Sensor de posição, Sensor |