STM32F103C8T6 - os primeiros passos. Continue fazendo o osciloscópio
Continuação do artigo . Desta vez, tentaremos conectar o USB sem uma queda na frequência de medição e coletar uma parte analógica de canal único.
Lutando com USB
Nosso MK possui um hardware USB. Eu realmente queria usá-lo. Eu até queria isso antes da compra. Mas devido a dificuldades, ele foi adiado "para mais tarde". E as dificuldades são:- Os desenvolvedores de USB aparentemente tinham muito tempo e inteligência. O problema é que eles sentiram que todo mundo deveria ter menos. Se você tentar lidar com o USB de acordo com a documentação, esta lição claramente não será por um dia.
- Ao conectar bibliotecas, surgiram dificuldades constantemente. Como conectá-los em projetos Coocox que eu ainda não descobri.
Como resultado, em um fórum, encontrei um exemplo convertido em Coocox, que funcionou.Os problemas com o nosso USB não terminaram aí. Um adaptador USB <-> USART separado tem a vantagem de ser separado, o que significa que sua operação não depende do nosso MK, a saber:- Frequências (para uma frequência de conversão mais alta, eu fiz overclock no MK);
- Reinicializa o que acontece durante um piscar.
Quando há um adaptador, podemos fazer qualquer coisa com o MK - o adaptador funcionará nesse caso e a porta COM do sistema não irá a lugar algum.Com o overclock, essa decisão foi tomada: no estado normal, o MK opera na frequência padrão. Quando precisamos fazer uma medição, fazemos um overclock do MK (sim, ao contrário do AVR, ele pode fazer isso em movimento), coletamos dados, reduzimos a frequência e transferimos os dados lentamente para o computador.Para não trocar nada após cada reinicialização / piscamento, examinamos a placa de circuito:
Com um jumper, aqui um dos fios é puxado para +3,3 V e o computador vê que o dispositivo está conectado. Foi experimentalmente constatado que, após a atualização do MK, para que a porta COM funcione novamente, você deve puxar e conectar o conector USB novamente ou remover e recolocar o jumper. A segunda opção é muito mais fácil de automatizar. O segundo pino do conector do jumper através de um resistor conectado ao pé MK e depois de uma reinicialização após algum tempo, alimento-o com um nível alto. Como resultado, o computador pensa que o dispositivo foi desligado e ligado novamente. Aqui está outro ponto: se você desconectar o dispositivo com a porta aberta e ligá-lo novamente, a porta COM aparecerá no gerenciador de dispositivos, mas você não poderá abri-lo (eu uso o Windows 7).Agora sobre overclock. Para que o USB funcione, o MK pode operar com essas frequências no máximo:
E para obter a velocidade máxima da ADC, eu a faço o overclock da seguinte forma:
Para alterar o multiplicador da PLL, ele deve estar desligado. E quando pelo menos por um momento o PLL é desconectado, o USB com clock do qual ele não gosta e o aplicativo no computador na maioria dos casos travam com uma porta aberta. Após uma pesquisa malsucedida do problema, foi encontrada uma maneira de combinar o USB embutido e o overclock:- O aplicativo no PC envia o comando MK para executar uma série de transformações e fecha imediatamente a porta;
- O MK espera um pouco (para que o aplicativo tenha tempo de fechar a porta) e desativa a linha USBDP de puxar para +3,3 V;
- O MK desativa o PLL, altera o multiplicador de 9 para 16 e ativa o PLL novamente;
- MK realiza uma série de transformações memorizando o resultado;
- O MK desliga o PLL, altera o fator de 16 para 9 e liga o PLL novamente;
- O MK inclui puxar a linha USBDP para +3,3 V;
- Após algum tempo, a porta virtual COM aparece novamente no PC;
- O aplicativo no PC reabre a porta e envia um comando ao MK para coletar o resultado;
- O MK transmite lentamente o resultado, o aplicativo cria um cronograma.
Não é conveniente, mas para abandonar o adaptador de hardware USB <-> USART e não perder 7/16 = 44% da velocidade, vale a pena.Tomamos outra cobrança
Todo o tempo antes disso, usei esta placa:
é conveniente quando é a principal do dispositivo, mas não quero conectá-la com fios à placa de ensaio. Para fazer isso, outra placa foi encomendada há muito tempo para
que você possa colá-la ou soldá-la facilmente em outra.O circuito deste fórum dificilmente foi encontrado no fórum .Algumas impressões. Em geral, ela agradou. À esquerda, estão os pinos SWD, cada contato é assinado e, se os chineses não tivessem soldado o conector de canto, a assinatura seria ainda mais visível e mais conveniente do que observar a pinagem JTAG na placa anterior a cada vez. Tudo piscou sem problemas, apareceu o USB, mas surgiu um pequeno problema: a linha USBDP estava bem escondida para +3,3 V com um resistor. Então o USB ficou desconectado ... Eu tive que dessoldar esse resistor e soldar a linha através do resistor até a perna livre do MK.Parte analógica
Antes disso, trabalhei apenas com sinais da faixa de 0 a 3,3V. E isso não é algum tipo de zero flutuante lá, mas a terra que veio com um cabo USB. Mas quero que o osciloscópio seja capaz de observar a forma da tensão da rede elétrica (centenas de volts) e do ECG (frações de um milivolt).A tarefa é geralmente simples: pegue a faixa de entrada do osciloscópio e mapeie-a na faixa de entrada do ADC (0 - 3,3V). O circuito foi inventado assim:
R1, R2, R3 - divisor de entrada. Transferindo as pernas MK para o modo de entrada ou saída, podemos alterar a taxa de divisão.R11, R12, R13 - resistores de um amplificador não inversor. O ganho depende da condição dos pés do controlador.Havia dúvidas quanto à possibilidade de usar as saídas digitais do MK para tais fins. A medição mostrou que a corrente através da saída MK a 3,3 mA leva a saída a 80 mV, ou seja, a resistência de saída é de cerca de 24 Ohms. O potencial de uma saída suspensa no ar a 3-4 mV difere na terra / potência. Para um sistema não muito preciso, o resultado é bastante aceitável.Para não arruinar as características de frequência pelas quais lutei tanto, o agente é necessário não apenas de maneira alguma, mas rápido. Eu escolhi o AD826. E então houve problemas. Quem se importa, você pode ler a história aqui e aqui . Em resumo: chips falsos são vendidos no Ebay.O abrigo precisa de energia bipolar. Para isso, era necessário outro chip - LT1054. O diagrama de conexão é retirado da folha de dados, portanto não o descreverei em detalhes.Total
Lembrando os planos da primeira parte do artigo :- Derrote o USB para abandonar o conversor USB <-> USART;
- Finalize a parte analógica para que a faixa de tensão de entrada não seja de 0 a 3,3 V, mas seja mais decente;
- Tornar o modo multicanal;
- Implementar controle de um PC;
- Faça um dispositivo acabado no estojo;
Entendo que completei 1, 2 e parcialmente o 4º parágrafo.Esse dispositivo é necessário na casa? Bem, se você compará-lo com o analógico C1-117, na frequência C1-117 é várias vezes maior. Mas aqui você pode gravar o sinal por um tempo suficientemente longo e depois examiná-lo lentamente. Então, por exemplo, vi uma interrupção acionada pelo meu gerador no Arduino:
Se comparado com os produtos artesanais em um AVR ou placa de som, este excede significativamente a frequência de conversão.À custa dos componentes, verifica-se:- LT1054 - US $ 0,8;
- placa com controlador - US $ 4;
- operativo - US $ 3;
- resistores, capacitores, diodos - não mais que $ 1.
No total, acontece cerca de US $ 9 + cartão + caixa.Frequência de conversão 9 MSPS permite observar a frequência do sinal até 1 MHz. Por US $ 60, você pode comprar um osciloscópio baseado em PC com os melhores recursos, mas simplesmente não há ofertas pelo valor resultante.No entanto, o dispositivo que foi mais valioso para mim não foi o dispositivo em si, mas a experiência adquirida como resultado de tentar tornar algo mais difícil do que piscar com um diodo e alegar ser útil! Eu nunca estive envolvido com eletrônica no trabalho e, como amador, posso dizer que não é difícil. Longo sim. Precisa de alguma função - você começa a fazer. No caminho, você coleciona muitos ancinhos, mas no final acaba. E tantas vezes. Mesmo em uma tarefa aparentemente tão pequena como essa, tem sido tantas vezes. Por exemplo, eu consegui fazer nutrição bipolar para o amplificador operacional apenas a partir da terceira tentativa. Mas, se houver perseverança suficiente e a tarefa for, em princípio, viável, o resultado definitivamente resultará em algo semelhante ao que foi originalmente concebido!Aparência do artesanato: Continuação
Source: https://habr.com/ru/post/pt385385/
All Articles