Atividade #663
FechadaMeta #523: Ter novas placas mãe para RoboCup 2018
Teste do shield com novos periféricos da placa mãe
Adicionado por Onias Castelo Branco mais de 6 anos atrás. Atualizado quase 6 anos atrás.
Descrição
Desenvolvimento de firmware para teste de funcionalidade.
Arquivos
usd_cmd_spi.png (2,88 KB) usd_cmd_spi.png | Onias Castelo Branco, 24/04/2018 14:03 h |
Atualizado por Onias Castelo Branco há mais de 6 anos
Usei a função que criamos que liga os leds e ambos funcionaram como previsto, com um potencial de 2.8V
Atualizado por Onias Castelo Branco há mais de 6 anos
mpu-9250 datasheet: http://www.invensense.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf
mpu-9250 user guide (InvenSense Motion Sensor Universal Evaluation Board (UEVB) User Guide): http://www.invensense.com/wp-content/uploads/2017/06/AN-IVS-0001EVB-00-v1.4.pdf
mpu-9250 register map: http://www.invensense.com/wp-content/uploads/2017/11/RM-MPU-9250A-00-v1.6.pdf
Atualizado por Onias Castelo Branco há mais de 6 anos
Estou com problemas na programação do giroscópio e do acelerômetro. Pesquisei então algumas referências de programação do mpu9250. Seguem algumas abaixo:
Atualizado por Onias Castelo Branco há mais de 6 anos
Comecei um codigo baseado no firmware do futebol para ligar os leds. Feito isso, passei para o mpu9250.
Li sobre o uso dos registradores no mpu9250 e procurei referencias de programação. Sobre o spi, estudei o codigo do firmware mas não tive muito progresso. Não consegui dar chip select para selecionar o mpu9250.
Atualizado por Onias Castelo Branco há mais de 6 anos
- Arquivo usd_cmd_spi.png usd_cmd_spi.png adicionado
giroscopio:
comunicação por spi: observações: precisa limitar a frequencia de operação em até 1Mhz. como o prescaler do APB2 já vale 2 e a frequencia do sistema é 168Mhz, o prescaler precisa ser 128 (resultando numa frequencia de 65KHz). Essa frequencia eh baixa para o nrf24, ou seja, teriamos ou usar outra porta spi, ou alterar o prescaler sempre que quisermos trocar conversar com o mpu.
CPOL =0 e CPHA = 0.
Tinha uma ponta de solda fazendo um curto entre gnd e um pino de sinal. Isto foi removido.
funcionamento esperado quando le o valor do registrador WHO_AM_I
extensor de porta:
comunicação por i2c: observações: foi necessário colocar um resistor de 4.7k no pino de SCL (colocar o pino como pullup no codigo nao funcionou)
funcionamento esperado para o extensor de porta quando corrigido o problema do resistor de pull-up
7segmentos:
consegue-se gerar qualquer número de 0 a F e colocar ou nao o ponto.Observar a ordem dos pinos na hora de refazer a placa para facilitar a programação.
botão:
Funcionou okay quando programou-se o pino para PullUp e open drain.
uSD:
O cartão sd respondeu de forma coerente ao cmd0 após serem enviados os 74 clks como especificado nos guias abaixo. Apresentou um problema ao não energizar a placa por conta de um pino que não passava potencial da camada de baixo para cima. Por isso a placa apresentava um comportamento inesperado quando o cartão sd estava conectado. após esse problema ser corrigido e o procedimento de acionamento do cartão sd por spi ser obedecido, foi possivel receber a resposta esperada ao cmd0. Cartão SD funciona com CPOL e CPHA = 0. Os guias recomendam uma frequencia entre 100k e 400khz, porem usamos uma frequencia de 65 (a mesma do mpu - irao compartilhar o spi enquanto o nrf24 tem um só pra ele).
Para acionamento do cartão sd:
http://www.dejazzer.com/ee379/lecture_notes/lec12_sd_card.pdf e pdf: part1_physical_layer_simplified_specification
Atualizado por Onias Castelo Branco há mais de 6 anos
- Situação alterado de Em andamento para Resolvida
Atualizado por Onias Castelo Branco há quase 6 anos
- Situação alterado de Resolvida para Fechada