Projeto

Geral

Perfil

Ações

Atividade #678

Fechada

Meta #523: Ter novas placas mãe para RoboCup 2018

Fazer esquemático e pcb da placa mãe modelo 2018

Adicionado por Onias Castelo Branco aproximadamente 6 anos atrás. Atualizado mais de 5 anos atrás.

Situação:
Fechada
Prioridade:
Imediata
Atribuído para:
Início:
24/04/2018
Data prevista:
25/04/2018
Tempo gasto:

Arquivos

Board.STEP (1,47 MB) Board.STEP Onias Castelo Branco, 24/04/2018 14:09 h
Periféricos.SchDoc (170 KB) Periféricos.SchDoc Onias Castelo Branco, 03/05/2018 16:24 h
Mother_board_SSL2018.SchDoc (202 KB) Mother_board_SSL2018.SchDoc Onias Castelo Branco, 03/05/2018 16:24 h
POWER.SchDoc (79,5 KB) POWER.SchDoc Onias Castelo Branco, 03/05/2018 16:24 h
INA220.SchDoc (67,5 KB) INA220.SchDoc Onias Castelo Branco, 03/05/2018 16:24 h
MOTORES.SchDoc (28,5 KB) MOTORES.SchDoc Onias Castelo Branco, 03/05/2018 16:24 h
pinagem discovery cube.JPG (79,2 KB) pinagem discovery cube.JPG Onias Castelo Branco, 03/05/2018 23:55 h
aumento no plano.JPG (42,3 KB) aumento no plano.JPG Onias Castelo Branco, 04/05/2018 01:36 h
posicionamento dos componentes alfa.JPG (48,7 KB) posicionamento dos componentes alfa.JPG Onias Castelo Branco, 04/05/2018 01:36 h
bottomlayer mother board 2018.JPG (51,4 KB) bottomlayer mother board 2018.JPG Onias Castelo Branco, 04/05/2018 14:01 h
toplayer mother board 2018.JPG (60,2 KB) toplayer mother board 2018.JPG Onias Castelo Branco, 04/05/2018 14:01 h
display-codigo.JPG (10,7 KB) display-codigo.JPG Onias Castelo Branco, 05/05/2018 13:44 h
display-sch.JPG (11,6 KB) display-sch.JPG Onias Castelo Branco, 05/05/2018 13:44 h
display-expansor.JPG (34,3 KB) display-expansor.JPG Onias Castelo Branco, 05/05/2018 13:44 h
picture124-1.png (81,4 KB) picture124-1.png Luiz Renault Leite Rodrigues, 05/05/2018 13:58 h
mother-board-pcb-2d-bot-0605.JPG (63,5 KB) mother-board-pcb-2d-bot-0605.JPG Onias Castelo Branco, 06/05/2018 03:47 h
mother-board-pcb-2d-top-0605.JPG (67,8 KB) mother-board-pcb-2d-top-0605.JPG Onias Castelo Branco, 06/05/2018 03:47 h
mother-board-pcb-3d-top-0605.JPG (60,4 KB) mother-board-pcb-3d-top-0605.JPG Onias Castelo Branco, 06/05/2018 03:47 h
pa10 discovery.JPG (46,8 KB) pa10 discovery.JPG Onias Castelo Branco, 07/05/2018 15:45 h
timer-diagrama-de-blocos.JPG (66,8 KB) timer-diagrama-de-blocos.JPG Onias Castelo Branco, 08/05/2018 00:20 h
SSL-discoverystm32f407.ioc (10,9 KB) SSL-discoverystm32f407.ioc Onias Castelo Branco, 10/05/2018 01:26 h
cube_pinagem_new.JPG (74,5 KB) cube_pinagem_new.JPG Onias Castelo Branco, 10/05/2018 01:28 h
current_calc.JPG (50,2 KB) current_calc.JPG Onias Castelo Branco, 10/05/2018 02:56 h
current_probe_motor0.JPG (143 KB) current_probe_motor0.JPG Onias Castelo Branco, 10/05/2018 04:04 h
current_probe_motor0_after.JPG (140 KB) current_probe_motor0_after.JPG Onias Castelo Branco, 10/05/2018 04:04 h
current_probe_5motors_bottom.JPG (169 KB) current_probe_5motors_bottom.JPG Onias Castelo Branco, 10/05/2018 05:24 h
current_probe_5motors_top.JPG (145 KB) current_probe_5motors_top.JPG Onias Castelo Branco, 10/05/2018 05:24 h
picture54-1.png (1,16 MB) picture54-1.png Luiz Renault Leite Rodrigues, 10/05/2018 10:25 h
current_calc_update.JPG (52 KB) current_calc_update.JPG Onias Castelo Branco, 10/05/2018 12:01 h
current_probe_5motors_bottom_1005.JPG (76,6 KB) current_probe_5motors_bottom_1005.JPG Onias Castelo Branco, 10/05/2018 12:49 h
current_probe_5motors_top_1005.JPG (78,2 KB) current_probe_5motors_top_1005.JPG Onias Castelo Branco, 10/05/2018 12:49 h
mother-board-pcb-2d-bot-1005.JPG (96,7 KB) mother-board-pcb-2d-bot-1005.JPG Onias Castelo Branco, 10/05/2018 12:49 h
mother-board-pcb-2d-top-1005.JPG (92,8 KB) mother-board-pcb-2d-top-1005.JPG Onias Castelo Branco, 10/05/2018 12:49 h
SSL-discoverystm32f407.ioc (11,7 KB) SSL-discoverystm32f407.ioc Onias Castelo Branco, 10/05/2018 15:09 h
SSL-discoverystm32f407.ioc (13,1 KB) SSL-discoverystm32f407.ioc Onias Castelo Branco, 10/05/2018 17:38 h
Ações #1

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Adicionados os periféricos no esquematico da placa mãe.

Prosseguindo com adicionando o step para novo formato de placa e posicionamento dos componentes.

Ações #2

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

.no pcb, feitos os roteamentos dos 8 leds (adicionei tambem leds para as cores laranja e verde para possiveis implementações futuras).

No sch, analisei a ordem dos leds no led7 segmentos, porém deixei como estavam. Adicionei o resistor de pull-up no extensor de porta.

no sch, estou tendo problemas em interligar as portas da nova folha de sch com as demais, mas ja separei os pinos responsaveis. pela minha analise, o spi2 podera ser usado sem perdas pro projeto.

na pcb, falta posicionar corretamente o mpu9250 e o extensor de porta+led+botão.

Ações #3

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Avaliar os componentes INA169 e INA250 para substituir o ina220 usado atualmente na placa.

datasheets:

ina169: http://www.ti.com/lit/ds/symlink/ina169.pdf

ina250: http://www.ti.com/lit/ds/symlink/ina250-q1.pdf

recomendação sobre o pcb: refazer todo o routing. posicionando primeiro os grupos funcionais e depois fazendo o routing (uma layer na horizontal e outra na vertical para evitar isolamento de planos)

Ações #5

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Coloquei todos os pinos que usamos no robo no cube com os devidos nomes.

Coloquei tambem alguns dos pinos usados por funcoes da discovery, como os pinos que vao na usb.

![](pinagem discovery cube.JPG)

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Estou trabalhando no posicionamento da placa. Enquanto isso, percebi que esqueci o resistor para o ina169 do drible.

Destacado tambem o aumento na largura do plano da tensao de bateria que vai para os motores.

![](posicionamento dos componentes alfa.JPG)

![](aumento no plano.JPG)

Ações #7

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

os sensores e leds infravermelhos estao separados pois o cartão sd esta entre eles.

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

segue anexa minha proposta de posicionamento e planos para a placa. mantive os reguladores de tensao na mesma posição, e mantive o interruptor na face da frente do robo.

![](toplayer mother board 2018.JPG)

![](bottomlayer mother board 2018.JPG)

Posso seguir para o roteamento?

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Sobre o display 7 segmentos, estou com problemas em corrigir a pinagem dele. Pesquisei sobre como é a pinagem do display e encontrei a seguinte configuração:

![](display-sch.JPG)

Na placa, atualmente é assim que está setado o expansor de porta:

00- a
01- h
02- b
03- c
04- d
05- e
06- f
07- g

E coloquei no firmware os seguintes números para serem ligados e tive o seguinte resultado:

![](display-codigo.JPG)
![](display-expansor.JPG)

Percebi que tive um resultado errado porem inesperado. O pino superior a esquerda deveria ser o pino a, porém está no sch como G. Quanto eu aciono o g (valor lógico 0x80) o resultado que acende é o pino H (ou DP).

mandando o valor 0x01 eu aciono o pino a, fazendo acender o led inferior (correspondente ao valor D no sch usual) porém o a está ligado no E usual.

Ações #10

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

A imagem que eu coloquei está com resolução baixa.

Segue o resultado do que eu mandei por código:

valor - valor usual - valor esperado baseado no meu sch
0x01 - D - E
0x02 - F - B
0x04 - E - A
0x08 - G - H
0x10 - A - G
0x20 - B - F
0x40 - C - E
0x80 - H - C

Ações #11

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

A pinagem do LCD, visto de cima, é:

![](picture124-1.png)

Ações #12

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

mas o problema se mantem. inserindo 01 no codigo eu deveria ver acender o pino A e esta acendendo o pino D.

Mantenho pinagem e deixo anotado o padrao de anotação para resolver no firmware?

Ações #13

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

A pinagem do LCD, visto de cima, é:

![](picture124-1.png)

está de acordo com o que eu fiz no esquemático do componente.

Ações #14

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Com certeza esta é a pinagem do Display. Conferi com o multímetro.

Ações #15

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Com certeza esta é a pinagem do Display. Conferi com o multímetro.

okay. Adapto a pinagem do expansor para ficar da maneira padrão (abcdefgh ou hgfedcba) então?

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Coloquei as mudancas mais recentes no meu repositorio do github:

https://github.com/OniasC/SSL_Mother_Board

Seguem abaixo os pcbs do bottom e do top. Para os stiches, segui a seguinte referencia do altium: https://www.altium.com/documentation/18.0/display/ADES/((Via+Stitching+and+Via+Shielding))_AD

Lá também contem o Step com a versão mais recente do projeto, que foi balizada com a mecanica para haver compatibilidade com o novo drible.

![](mother-board-pcb-2d-top-0605.JPG)
![](mother-board-pcb-2d-bot-0605.JPG)
![](mother-board-pcb-3d-top-0605.JPG)

Ações #17

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Muito bom trabalho.
Sugiro fazer simulação dos circuitos de potência. Estou liberando a licença do PDN.
Utilizar os circuitos da bateria até os módulos de motores. Fazer simulações considerando um motor de cada vez com corrente máxima, e depois com os 5 motores com corrente máxima, e por fim os 5 motores com corrente média.

Ações #18

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Na revisão dos pinos, encontrei alguns conflitos entre pinos escolhidos por mim e usados por perifericos ja na discovery. Seguem eles abaixo:

pino - periferico discovery - meu uso

PA0 - user button - M2_ENCA

PA4 - LRCK/AIN1x (CS43L22) - D_CUR

PA5 - SCL/SPC (LIS302DL ou LIS3DSH) - SPI1_SCK

PA6 - SDO (LIS302DL ou LIS3DSH) - SPI1_MISO

PA7 - SDA/SDI/SDO (LIS302DL ou LIS3DSH) - SPI1_MOSI

PA10 - USB_ID - NRF_CS#

PA13 - SWDIO (SWD) - NRF_CE

PB3 - SWO (SWD) - M1_ENCB

PB6 - SCL (CS43L22) - M3_ENCA

PB9 - SDA (CS43L22) - I2C1_SDA

PB10 - CLK (MP45DT02) - SPI2_SCK

PC3 - DOUT/AIN4x (MP45DT02) - SPI2_MOSI

PC7 - MCLK (CS43L22) - M0_MBH

PC10 - SCLK (CS43L22) - MPU_CS

Destes, alguns já estavam na placa antiga, porém tive que mudar alguns pinos de posição. Haverá algum conflito em algum pino? Acredito que o unico que eu teria que mudar seria o PA10, pois usa features do USB. Há mais algum?

Ações #19

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Muito bom trabalho.
Sugiro fazer simulação dos circuitos de potência. Estou liberando a licença do PDN.
Utilizar os circuitos da bateria até os módulos de motores. Fazer simulações considerando um motor de cada vez com corrente máxima, e depois com os 5 motores com corrente máxima, e por fim os 5 motores com corrente média.

Brasil. Vou tentar fazer hoje.

Ações #20

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

Na revisão dos pinos, encontrei alguns conflitos entre pinos escolhidos por mim e usados por perifericos ja na discovery. Seguem eles abaixo:

pino - periferico discovery - meu uso

PA0 - user button - M2_ENCA

PA4 - LRCK/AIN1x (CS43L22) - D_CUR

PA5 - SCL/SPC (LIS302DL ou LIS3DSH) - SPI1_SCK

PA6 - SDO (LIS302DL ou LIS3DSH) - SPI1_MISO

PA7 - SDA/SDI/SDO (LIS302DL ou LIS3DSH) - SPI1_MOSI

Para os 3 acima, basta colocar o LIS302DL ou LIS3DSH em modo SPI. Se não for acionado o CSN deles, não há interferência.

PA10 - USB_ID - NRF_CS#

Verificar se gera curto ao baixar o CSN

PA13 - SWDIO (SWD) - NRF_CE

Evitar utilizar este pino para manter possibilidade de debug.

PB3 - SWO (SWD) - M1_ENCB

Evitar utilizar este pino para manter possibilidade de trace/debug.

PB6 - SCL (CS43L22) - M3_ENCA

PB9 - SDA (CS43L22) - I2C1_SDA

Os dois sinais acima podem dar problema com o uso do M3_ENCA. Tentar manter os dois sianis como I2C.

PB10 - CLK (MP45DT02) - SPI2_SCK

PC3 - DOUT/AIN4x (MP45DT02) - SPI2_MOSI

Se você der CLK, ele te dá DOUT.

PC7 - MCLK (CS43L22) - M0_MBH

PC10 - SCLK (CS43L22) - MPU_CS

Verificar se pode desativar o CS43L22 através de algum sinal de reset.

Destes, alguns já estavam na placa antiga, porém tive que mudar alguns pinos de posição. Haverá algum conflito em algum pino? Acredito que o unico que eu teria que mudar seria o PA10, pois usa features do USB. Há mais algum?

Ações #21

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Onias Castelo Branco escreveu:

PC7 - MCLK (CS43L22) - M0_MBH

PC10 - SCLK (CS43L22) - MPU_CS

Verificar se pode desativar o CS43L22 através de algum sinal de reset.

O pino PD4 é responsável pelo reset do CS43L22. Não estamos usando o PD4

Ações #22

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Sobre os pinos que o sr avisou que poderia dar problema:

PA10 - NRF_CE#

Verificar se gera curto ao baixar o CSN

como é um pino digital, vou tentar mudar o pino de lugar.

PA13 - SWDIO (SWD) - NRF_CE

Evitar utilizar este pino para manter possibilidade de debug.

como é um pino digital, vou tentar mudar o pino de lugar.

PB6 - SCL (CS43L22) - M3_ENCA
PB9 - SDA (CS43L22) - I2C1_SDA

Os dois sinais acima podem dar problema com o uso do M3_ENCA. Tentar manter os dois sianis como I2C.

Dando reset no CS43L22 o problema é resolvido? Caso não, o unico pino que eu poderia usar para substituir o M3_ENCA é o PD12, que é um dos leds (o verde no caso).

PB10 - CLK (MP45DT02) - SPI2_SCK
PC3 - DOUT/AIN4x (MP45DT02) - SPI2_MOSI

Se você der CLK, ele te dá DOUT.

Não há problema então? no caso o dout eh um pino mosi do spi mesmo.

Ações #23

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Quanto ao uso dos pinos destinados ao SWD. Já usamos o SWO para o encoder. Não tenho outro substituto para o M1_ENCB (o pino com a mesma funcionalidade é o PA2, ocupado pela M2_ENCB).

Quer dizer que nunca usamos a feature de debug?

Ações #24

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

Sobre os pinos que o sr avisou que poderia dar problema:

PA10 - NRF_CE#

Verificar se gera curto ao baixar o CSN

como é um pino digital, vou tentar mudar o pino de lugar.

Verifique no esquemático se há problema ao controlar este pino. Pode ser que não precise mudar.

PA13 - SWDIO (SWD) - NRF_CE

Evitar utilizar este pino para manter possibilidade de debug.

como é um pino digital, vou tentar mudar o pino de lugar.

PB6 - SCL (CS43L22) - M3_ENCA
PB9 - SDA (CS43L22) - I2C1_SDA

Os dois sinais acima podem dar problema com o uso do M3_ENCA. Tentar manter os dois sianis como I2C.

Dando reset no CS43L22 o problema é resolvido? Caso não, o unico pino que eu poderia usar para substituir o M3_ENCA é o PD12, que é um dos leds (o verde no caso).

Provavelmente com o reset do CS43L22 não haverá problema.

PB10 - CLK (MP45DT02) - SPI2_SCK
PC3 - DOUT/AIN4x (MP45DT02) - SPI2_MOSI

Se você der CLK, ele te dá DOUT.

Não há problema então? no caso o dout eh um pino mosi do spi mesmo.

Pelo contrário. Irá interferir na sua comunicação SPI.

Ações #25

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

Quanto ao uso dos pinos destinados ao SWD. Já usamos o SWO para o encoder. Não tenho outro substituto para o M1_ENCB (o pino com a mesma funcionalidade é o PA2, ocupado pela M2_ENCB).

Quer dizer que nunca usamos a feature de debug?

SWO é utilizado para trace. Caso queira usar, deverá desativar o encoder.

O SWD deve ficar reservado para debug. Caso contrário não conseguirá fazê-lo ou com o debug não será possível testar o NRF.

Ações #26

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Onias Castelo Branco escreveu:

Quanto ao uso dos pinos destinados ao SWD. Já usamos o SWO para o encoder. Não tenho outro substituto para o M1_ENCB (o pino com a mesma funcionalidade é o PA2, ocupado pela M2_ENCB).

Quer dizer que nunca usamos a feature de debug?

Posso não usar o timer2_ch2 (pino em conflito) e passar a usar o timer2_ch3? Se sim, posso realocar o pino do clk do spi2 para o pb13 que está vazio.

Ações #27

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

Posso não usar o timer2_ch2 (pino em conflito) e passar a usar o timer2_ch3? Se sim, posso realocar o pino do clk do spi2 para o pb13 que está vazio.

Mas para encoder, não tem que utilizar CH1 e CH2? Pelo menos no STM32F1 é assim.

Ações #28

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

![](pa10 discovery.JPG)

acredito que dê pra usar sim.

Ações #29

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Onias Castelo Branco escreveu:

Posso não usar o timer2_ch2 (pino em conflito) e passar a usar o timer2_ch3? Se sim, posso realocar o pino do clk do spi2 para o pb13 que está vazio.

Mas para encoder, não tem que utilizar CH1 e CH2? Pelo menos no STM32F1 é assim.

Então barro. Existe solução por software?

Ações #30

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

Luiz Renault Leite Rodrigues escreveu:

Onias Castelo Branco escreveu:

Posso não usar o timer2_ch2 (pino em conflito) e passar a usar o timer2_ch3? Se sim, posso realocar o pino do clk do spi2 para o pb13 que está vazio.

Mas para encoder, não tem que utilizar CH1 e CH2? Pelo menos no STM32F1 é assim.

Então barro. Existe solução por software?

Verificou esta questão no RM, antes de desistir?

Ações #31

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

acredito que dê pra usar sim.

Exatamente.

Ações #32

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

PB10 - CLK (MP45DT02) - SPI2_SCK
PC3 - DOUT/AIN4x (MP45DT02) - SPI2_MOSI

Se você der CLK, ele te dá DOUT.

Não há problema então? no caso o dout eh um pino mosi do spi mesmo.

Pelo contrário. Irá interferir na sua comunicação SPI.

Trocando o pino PB10 (CLK) pelo pino PB13 (atualmente livre na placa mae e na discovery) resolvo o conflito desses dois pinos, correto?

Ações #33

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Onias Castelo Branco escreveu:

Luiz Renault Leite Rodrigues escreveu:

Onias Castelo Branco escreveu:

Posso não usar o timer2_ch2 (pino em conflito) e passar a usar o timer2_ch3? Se sim, posso realocar o pino do clk do spi2 para o pb13 que está vazio.

Mas para encoder, não tem que utilizar CH1 e CH2? Pelo menos no STM32F1 é assim.

Então barro. Existe solução por software?

Verificou esta questão no RM, antes de desistir?

Abri ele agora a pouco e estou lendo a parte de leitura de encoder. Não achei nada que limitasse aos dois primeiros canais. Mas posso só não ter entendido também.

Ações #34

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

Abri ele agora a pouco e estou lendo a parte de leitura de encoder. Não achei nada que limitasse aos dois primeiros canais. Mas posso só não ter entendido também.

Coloque aqui o diagrama de blocos do TMR.

Ações #35

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

Trocando o pino PB10 (CLK) pelo pino PB13 (atualmente livre na placa mae e na discovery) resolvo o conflito desses dois pinos, correto?

Possivelmente não resolve. Tem que ver o datasheet do componente para checar o comportamento do DOUT. Não consegue trocar o PC3?

Ações #36

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Onias Castelo Branco escreveu:

Trocando o pino PB10 (CLK) pelo pino PB13 (atualmente livre na placa mae e na discovery) resolvo o conflito desses dois pinos, correto?

Possivelmente não resolve. Tem que ver o datasheet do componente para checar o comportamento do DOUT. Não consegue trocar o PC3?

Pc3 é o spi2_mosi. Ele pode ir para o PB15 que atualmente é o DAH (TIM12_CH2). Posso ativar o pwm do drible em qualquer outro pino de timer (no caso, o pino PE5 - tim9_ch1 ocupado pela funcionalidade M0_MAL - pino digital de output, poderia ir para um pino não ocupado).

Ações #37

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Onias Castelo Branco escreveu:

Abri ele agora a pouco e estou lendo a parte de leitura de encoder. Não achei nada que limitasse aos dois primeiros canais. Mas posso só não ter entendido também.

Coloque aqui o diagrama de blocos do TMR.

![](timer-diagrama-de-blocos.JPG)

Ações #38

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Entendi. Realmente, são só os canais 1 e 2.

Ações #39

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Exatamente.

Ações #40

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Os problemas que persistem são os pinos de SWD (PA13 e PB3). Consigo resolver o problema do pb10 e pc3 com a realocação dos pinos que eu mencionei acima.

PA13 é o nrf_ce que posso resolver escolhendo um pino digital diferente.

PB3 é o m1_encb e o unico substituto é o pa1 que é o m2_encb (que não tem substituto).

Ações #41

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Muito bom trabalho.
Sugiro fazer simulação dos circuitos de potência. Estou liberando a licença do PDN.
Utilizar os circuitos da bateria até os módulos de motores. Fazer simulações considerando um motor de cada vez com corrente máxima, e depois com os 5 motores com corrente máxima, e por fim os 5 motores com corrente média.

fazendo o teste na fonte, a corrente de stall ficou 2.6A com o motor no encaixe mecânico. e a corrente com o motor fluindo a 8.1V ficou a 180mA.

link para tutorial do pdn: https://www.altium.com/documentation/1.0/display/NEXUS/((PDN+Analyzer))v2_AD

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Antes de checar o PDN, corrigi no esquematico e no cube os pinos que determinamos serem necessarios trocar.

pb10 -> pb13 (spi2_sck)
pc3 -> pb15 (spi2_mosi)
pc15 -> pe5 (dah)
pe5 -> pc15 (m0_mal)
pa13 -> ~pa14 (nrf_ce)~ pc12 (nrf_ce)

![](cube_pinagem_new.JPG)

Ações #43

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

![](current_calc.JPG)

era esta a conta que eu deveria fazer?

achei nesta referencia: http://www.4pcb.com/trace-width-calculator.html

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Após a explicação sobre o funcionamento do pdn, modifiquei algumas trilhas e então rodei a simulação para 4A com os planos antigos. Ficou da seguinte forma:

![](current_probe_motor0.JPG)

Modifiquei os planos do MA, MB, fusível e do ina169. Aumentei a corrente para 7A e segue o resultado da simulação:

![](current_probe_motor0_after.JPG)

Analisando os números, vi que nos pinos B e A passam uma corrente de 3.3 a 3.7A. (após segunda modificação) E chega ao motor uma potencia de 8.2V para uma entrada de 8.4V

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Fazendo a simulação para os quatro motores das rodas (corrente de 7A) e o motor do drible (8A) inserindo uma potencia de 8.4V, temos que:

Alguns pinos tem uma corrente atravessando-os na ordem de 1.5A.

Os motores recebem os seguintes potenciais:

M0: 8.04V
M1: 8.022V
M2: 8.154V
M3: 8.137V
DRIBLE: 8.006V

Seguem as imagens dos heat maps das correntes.

O sr acha necessário realizar mais alguma modificação no layout?

![](current_probe_5motors_bottom.JPG)
![](current_probe_5motors_top.JPG)

Ações #46

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias Castelo Branco escreveu:

era esta a conta que eu deveria fazer?

achei nesta referencia: http://www.4pcb.com/trace-width-calculator.html

Na verdade, a espessura é a do cobre, ou seja, 35 um ou 1oz/inch2

Ações #47

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

O TOP está muito bom.

No bottom, tentar modificar as trilhas marcadas em verde, visando permitir um fluxo de corrente pelo caminho em magenta.

picture54-1.png

Ações #48

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Onias, abri seu Cube Project e vi que os periféricos não estão configurados.

Sugiro que o faça, para verificar alguma incompatibilidade.

Ações #49

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Onias, abri seu Cube Project e vi que os periféricos não estão configurados.

Sugiro que o faça, para verificar alguma incompatibilidade.

Não sabia que tinha como fazer isso. Vou me informar sobre o processo.

Ações #50

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Onias Castelo Branco escreveu:

era esta a conta que eu deveria fazer?

achei nesta referencia: http://www.4pcb.com/trace-width-calculator.html

Na verdade, a espessura é a do cobre, ou seja, 35 um ou 1oz/inch2

Refiz a conta. Aceitando um aumento de temperatura para 20C a espessura necessaria para o VBAT eh de 9mm (o plano atual tem 10mm)

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

O TOP está muito bom.

No bottom, tentar modificar as trilhas marcadas em verde, visando permitir um fluxo de corrente pelo caminho em magenta.

Fiz as devidas correções. Segue anexo o novo caminho das trilhas e nova simulação.

current_probe_5motors_bottom_1005.JPG current_probe_5motors_top_1005.JPG mother-board-pcb-2d-bot-1005.JPG mother-board-pcb-2d-top-1005.JPG

As correntes mais altas que entram nos pinos de ground são de 3,x A para os pinos de gnd dos modulos de motor, alguns pinos proximos destes são da ordem de 1A e dois de 2A (furo de 0.6 de diametro interno e 0.8 externo). E está entrando 36 A para a placa (= 7A*4 + 8A), fazendo sair 17A em dois pinos de gnd (os da bateria e do switch).

As voltagens que chegam para os motores são as seguintes:

m0-8.044V
m1-8.026V
m2-8.155V
m3-8.139V
drible-8.01V

Ações #52

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Em termos de análise de potência, acho que é isso. Bom trabalho.
Só falta confirmar a configuração dos periféricos no Cube.

Ações #53

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Luiz Renault Leite Rodrigues escreveu:

Em termos de análise de potência, acho que é isso. Bom trabalho.
Só falta confirmar a configuração dos periféricos no Cube.

Obrigado capitão. Estou fazendo isso agora.

Ações #54

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

Não soube setar direito o clock (teria que checar os prescalers que estão atualmente no firmware), a configuração do ADC e os pinos GPIO acusaram o seguinte warning:

"some signals are not used in any IP's mode"

Não parece ser preocupante:

https://community.st.com/thread/40725-cubemx-for-f0-has-no-gpio-settings

Ações #55

Atualizado por Luiz Renault Leite Rodriguesaproximadamente 6 anos

Configure o RCC, habilite o Serial Wire Debug, Configure os timers, USB, etc.

Ações #57

Atualizado por Onias Castelo Brancoaproximadamente 6 anos

  • Situação alterado de Em andamento para Resolvida
Ações #58

Atualizado por Onias Castelo Brancomais de 5 anos

  • Situação alterado de Resolvida para Fechada
Ações

Exportar para Atom PDF