Layout de PCB de sinal misto para PSoC

16

Estou desenvolvendo um PCB para um aplicativo de detecção analógica. Ele usa o ADC interno em um PSoC3. Como de costume, o aplicativo tem muito espaço restrito (11 mm x 21 mm), então tive que fazer alguns compromissos no layout da placa de circuito impresso que eu não teria feito em uma placa de circuito impresso maior.

PSoC PCB

A placa é fornecida por 6v regulados e contém dois reguladores lineares de 5v. Um MCP1702 para a fonte digital e um MIC5205 para a fonte analógica. A placa está detectando cinco sensores de efeito Hall A1324 . Cada sinal de saída do efeito Hall é filtrado por um filtro 100nF + 1k RC. Um sensor está no próprio PCB (canto inferior direito). Os outros 4 conectam-se ao conector direito de 6 pinos.

O chip está agindo como um escravo SPI, mas as amostras ADC sempre são coletadas entre transações SPI, portanto o SPI não deve interferir nos sinais analógicos.

Infelizmente, ainda estou vendo algum ruído (cerca de 1,5 LSB a 12 bits) nos sinais analógicos, e me pergunto se há algo que eu poderia ter feito diferente no layout para melhorá-lo.

Layout do PSoC

Por favor, abra a imagem em uma nova aba para vê-la em maior resolução.


Adicionado:

Outros projetos de PCB que fiz usando o MCP3208 e os mesmos suprimentos duplos de 5V, os mesmos sensores e os mesmos filtros RC não atingiram ruído perceptível em 12 bits.

O ADC no PSoC3 é do tipo delta sigma. Esta versão do PSoC é limitada a 12 bits, mas outro número de peça possui um ADC de 16 bits (embora com uma taxa de amostragem mais baixa).

Eu me preocupo com o barulho e realmente gostaria de avançar um pouco mais para 12 ENOB. O motivo não é a precisão, mas a medição da velocidade. Atualmente, esse nível de ruído está impossibilitando o controle preciso da posição e da velocidade em um robô.


Adicionado:

Esquemático. Desculpe, está um pouco apertado, mas você pode ler os valores.

Diagrama esquemático de PSoC

Rocketmagnet
fonte
11
Além disso, parar de usar NET rótulos! Seu circuito não é nem complexo o suficiente para exigi-los e, ao não mostrar as conexões, você torna muito mais difícil rastrear as conexões. Novamente, o objetivo do esquema é tornar visualmente aparente a função e a funcionalidade pretendidas do circuito . Você então permite que o computador traduza a representação visual para o layout físico real dos dispositivos (algo em que os computadores são muito bons).
Connor Lobo
11
@Rocketmagnet - Eles certamente são úteis para a pessoa que desenha o circuito . Eles são totalmente abomináveis ​​para todos os outros .
Connor Lobo
11
Além disso, se você estiver tendo problemas com a necessidade de rotear cabos devido a restrições de espaço, precisará desesperadamente examinar as funções de troca de pinos no Altium. Basicamente, você pode especificar pinos que podem ser trocados funcionalmente na definição do componente (vários pinos de IO do IE) e, quando estiver roteando o PCB, poderá executar os rastreamentos em qualquer um dos pinos que funcionariam, em vez de apenas aquele você especificou no esquema. Em seguida, você pode sincronizar o roteamento escolhido no PCB para o esquema.
Connor Lobo
11
O @FakeName, embora a conexão com etiquetas possa dificultar o acompanhamento de um circuito, redesenhar todos os símbolos para criar um esquema puro e limpo, com linhas retas agradáveis, pode quadruplicar facilmente o tempo para realizar a entrada esquemática. Eu adoraria ver um esquema perfeito, não tenho certeza de que é realista exigir um.
O fóton
11
@Rocketmagnet, Ter uma área de PCB muito pequena não significa que você não pode desenhar seu esquema em papel de tamanho D.
O fóton

Respostas:

13

Você sempre terá algum ruído em um ADC, especialmente os tipos SA (Aproximação Sucessiva) no microcontrolador. O Sigma-delta tem melhor desempenho para o ruído gaussiano, à medida que o integra. Não espere 12 ENOB de um ADC de 12 bits.

O ruído do controlador é um motivo pelo qual a maioria dos microcontroladores não oferece uma resolução superior a 10 bits, e o AVR oferece a possibilidade de parar o microcontrolador durante a aquisição da ADC, o que deve confirmar que pelo menos parte do ruído vem do controlador .

Mas a pergunta é: você se importa? O ruído de 1,5 bits em um ADC de 12 bits ainda deixa mais de 10 bits, ou melhor que 0,1%. Qual é a precisão do seu sensor Hall? Outros componentes no circuito?

editar
Você parece usar o oscilador interno do PSoC, já que não vejo nenhum cristal no esquema. Parece bom: você tem a dissociação adequada. Além do relógio interno, a única parte de alta velocidade no circuito parece ser a SPI, mas você diz que isso será silencioso durante as medições. O restante da placa é CC ou provavelmente é relativamente baixa, frequente como os sensores de efeito Hall. E é um Damn Small ™, que também ajuda: traços mais curtos captam menos ruído. Claro, eu poderia falar sobre o MCP1702, que giraria 90 ° no sentido anti-horário, para que o capacitor de saída possa ser colocado ainda mais próximo dos pinos, mas isso não resolverá os problemas.

Eu vejo apenas uma alteração no layout que pode melhorar sua relação S / N:

insira a descrição da imagem aqui

Na planilha de dados, os planos de terra analógico e digital divididos são sugeridos para "Desempenho analógico ideal" (página 10).

Quanto ao resto: é uma prancha pequena, como eu disse, que significa traços curtos e desacoplamento dentro de alguns mm. Então, eu gostaria de dar uma olhada na fonte do ruído. O principal suspeito é o relógio do PSoC. O PSoC pode funcionar com uma tensão de alimentação muito baixa, o que reduziria seu ruído. É claro que ajudaria muito se o VDDA também tivesse que ser baixado, mas eu não li em nenhum lugar da folha de dados que o VDDA não deveria ser maior que o VDDD.

Em seguida, o ADC. Na página 55 da folha de dados, diz 66 dB SINAD, ou seja, 11 bits, próximo ao que você obtém agora. A folha de dados do A1324 nos fornece ruído de 7 mVpp em uma tensão inativa de 2,5 V. Isso também é muito menor do que a relação S / N de 72 dB que 12 bits poderia fornecer. Você pode melhorar isso um pouco com filtragem extra.

Você mencionou o melhor desempenho do MCP3208, mas isso é um ADC distante do microcontrolador, e isso pode explicar como um SA ADC pode se sair melhor que um sigma-delta com a mesma resolução.

Portanto, as opções que eu vejo: abaixar a tensão da fonte de alimentação digital e dividir os motivos analógico e digital.

stevenvh
fonte
Essa é uma ideia muito interessante sobre a redução da tensão de alimentação digital do PSoC. O VDDA certamente pode ser maior que o VDDD.
Rocketmagnet
Então, você acha que devo desconectar o VSSA da almofada térmica? Na verdade, eu postei isso como uma pergunta totalmente nova .
Rocketmagnet
2

Eu concordo com o acima. 1.5LSB de ruído é bastante razoável. http://www.cypress.com/?docID=39346 mostra um SINAD mínimo de 66 dB no modo de 12 bits, sugerindo ENOB = 10.7.

Sei que essa não é uma resposta direta à sua pergunta, mas vou interpretá-la como "como soluciono meus problemas com o controle de velocidade?" e não "Como obtenho mais de 10,5 ENOB?".

Como você está se diferenciando? Você tem relógios suficientes para fazer algo mais suave do que uma diferença central de dois pontos? Talvez elaborar algo com 5 amostras de largura, otimizado no Matlab?

Além disso, isso pode parecer um pouco engraçado, mas o ruído da velocidade fica pior à medida que você experimenta mais rapidamente

1 1euSBΔt

Não deve ser um insulto, mas também dê uma rápida olhada para garantir que nada de bobo esteja acontecendo no seu controle de velocidade, como problemas com conversões entre números inteiros assinados e não assinados e verifique se seus números inteiros são amplos o suficiente para evitar erros de estouro ao diferenciar . Minhas próprias equações de controle costumam ser complicadas o suficiente para que algumas vezes eu explique explicitamente cada operação.

Por fim, embora talvez seja mais provável, você está perdendo pontos efetivos por não amplificar para quase a escala completa? Nesse caso, você pode amplificar ou talvez fornecer um Vref menor.

Scott Seidman
fonte
Estamos calculando a posição e a velocidade usando um filtro alfa beta . Entendo que o ruído da velocidade aumenta à medida que a taxa de amostragem aumenta se for feita de forma ingênua. Estou certo de que o ruído da velocidade não se deve a um erro de sinal. E já estamos quase na escala total, então não há mais amplificação que eu possa fazer sem correr o risco de atingir o topo ou o fundo da faixa.
Rocketmagnet
Você diria que não há melhorias que eu possa fazer no layout?
Rocketmagnet
Ainda não consigo ver nada. Como você está amplificando os sensores do salão? Você realmente analisou a saída dos filtros AB e controlou os eqns como uma verificação da realidade? Observou barulho nas saídas do regulador? Pode ser esclarecedor para fazer um orçamento formal de ruído para todo o sistema
Scott Seidman
11
Mas! A outra vantagem do modo diferencial é que ele permite aumentar a taxa de amostragem 4x, para que eu possa fazer uma super amostragem. Isso deve diminuir um pouco o barulho.
Rocketmagnet
11
Talvez um limite de desvio no Vref (não sei como fazer isso, está na folha de dados). Fora isso, acho que você está extremamente próximo, se não no, do ENOB ideal para o PSOC 3 ADC em 12 bits, então você fez o melhor que pôde!
Scott Seidman