Transmissão de Dados via Serial Para Matlab e Calibração Do ADC _ Rafael Bolzan - Academia

4
Home Log In Sign Up Ads by Brow ser Extension. More Info | Hide These Ads Transmissão de Dados via Serial para Matlab e Calibração do ADC by Rafael Bolzan more completo, então foi utilizado uma interrupção no DMA que sinaliza a transmissão por completa dos dados no buffer, em outras palavras, que o buffer “encheu”. Nessa interrupção uma flag é setada e a transmissão é iniciada. USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); % Nome da porta Serial a ser Conectada s = serial('COM4'); % Mesma Configuração estabelecida no Microcontrolador set(s,'BaudRate',115200); set(s,'DataBits',8); Search People, Research Interests and Universities 477

description

nn,nmn,n,n

Transcript of Transmissão de Dados via Serial Para Matlab e Calibração Do ADC _ Rafael Bolzan - Academia

  • Home Log In Sign Up

    Ads by Brow ser Extension. More Info | Hide These Ads

    Transmisso de Dados via Serial para Matlab e Calibrao do ADCby Rafael Bolzan

    more

    completo, ento foi utilizado uma interrupo no DMA

    que sinaliza a transmisso por completa dos dados no buffer, em outras palavras, que o buffer encheu. Nessa

    interrupo uma flag setada e a transmisso iniciada.

    USART_InitTypeDef USART_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

    % Nome da porta Serial a ser Conectada

    s = serial('COM4');

    % Mesma Configurao estabelecida no

    Microcontrolador

    set(s,'BaudRate',115200);

    set(s,'DataBits',8);

    Search People, Research Interests and Universities

    477

    http://www.academia.edu/http://www.academia.edu/http://www.academia.edu/loginhttp://www.academia.edu/signuphttp://www.academia.edu/3742279/Transmissao_de_Dados_via_Serial_para_Matlab_e_Calibracao_do_ADChttp://cefetpr.academia.edu/RafaelBolzan
  • Figura 1. Configurao USART STM32F4Discovery

    Lembrando que as definies da USART podem

    mudar dependendo da aplicao, neste caso foi utilizadoum BoudRate de 115200, WordLength de 8 bits, 1StopBit e no modo Transmiter (Tx). Cabe ressaltar que o

    tamanho do dado a ser transmitido de 16 bits (nestaaplicao) e a serial tem tamanho de 8 bits (WordLength)assim o dado enviado e duas partes de 8 bits.

    Tambm h a necessidade de um ponteiro paradirecionar o buffer de memria o qual ser enviado viaserial e a configurao das portas de transmisso de

    dados (Tx). A flag a ser setada na RTI (Rotina detratamento de interrupo) do DMA dar incio atransmisso dos dados o qual feita no while (1).

    3. CONEXO SERIAL NO MATLAB

    Como j visto o microcontrolador j foi configurado

    para mandar um conjunto de dados via serial, agora necessrio interpretar esses dados para que seja possvel

    a manipulao dos mesmos.

    Primeiramente necessrio estabelecer a conexoserial no Matlab, ou seja, configurar a porta que estsendo utilizada, o BoudRate, o tamanho do dado, e assim

    por diante, lembrando que as configuraes da feitas nomicrocontrolador devem ser as mesmas utilizadas noMatlab, para que haja um compatibilidade entre as duas portas.

    Um exemplo do cdigo implementado no Matlab paraestabelecer a conexo da porta serial esta demostrado nafigura 2.

    Figura 2. Configurao Porta Serial Matlab

    No exemplo da figura 2 foi utilizada a porta COM4,e as demais configuraes foram as mesmas

    estabelecidas no microcontrolador. A funo freadretorna a informao a ser recebida pela serial a qual armazenada no vetor dado que possui 512 informaes de

    8 bits cada. Neste caso foi enviado 256 dados de 16 bitsos quais resulta em 512 dados de 8bits cada.

    Agora necessrio montar a informao enviada, ou

    seja, montar o dado de 16 bits. Para o mesmo exemploda figura 2 foi utilizado o cdigo descrito na figura 3.

    Figura 3. Funo de juno de dados.

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

    USART_InitStructure.USART_BaudRate = 115200;

    USART_InitStructure.USART_WordLength = USART_WordLength_8b;

    USART_InitStructure.USART_StopBits = USART_StopBits_1;

    USART_InitStructure.USART_Parity = USART_Parity_No;

    USART_InitStructure.USART_HardwareFlowControl =

    USART_HardwareFlowControl_None;

    USART_InitStructure.USART_Mode = USART_Mode_Tx;

    USART_Init(USART1, &USART_InitStructure);

    USART_Cmd(USART1, ENABLE);

    set(s,'Parity','None');

    set(s,'stopBits',1);

    set(s,'FlowControl','none');

    % Tamanho do Buffer de entrada

    set(s,'InputBufferSize',512);

    % Tempo que para receber algum dado (ms) set(s,'Timeout',5000);

    % Abre a porta Serial

    fopen(s);

    % Os dados recebidos so armazenados no vetor

    dado

    dado=fread(s,512);

    % Fecha a porta Serial

    fclose(s);

    % Exclui a varivel s

    delete(s);

    % Limpa a varivel s

    clear s

    for I=1:length(dado)

    if(rem(I,2)==1)

    dadopar=dado(I);

    else

    dadoimpar=dado(I);

    mont(J)=(dadoimpar*256+dadopar)

    J=J+1;

    end

    end

    A figura 3 demostra um funo a qual monta o dado

    de 16 bits e retorna um vetor mont de 256 dados. Ento

    agora j possvel enviar e receber dados atravs da porta serial com simplicidade e exatido.

    Porm ainda no possvel a manipulao desses

    dados com preciso, pois o conversor A/D tem um errode converso o qual deve ser corrigido.

    4. CALIBRAO DO CONVERSOR A/D

    Embora o conversor A/D possui vrios erros de

    converso o mais preocupante o erro de ganho, ento para qualquer aplicao que haja a necessidade deutilizar dados com uma alta preciso necessrio acalibrao do ADC.

    Como foi utilizado neste experimento omicrocontrolador STM32F4Discovery, foi analisado o

    erro de ganho do conversor A/D. Foram realizadosmedies de 0 a 3 volts e registrados os valoresfornecidos pelo ADC e o valor esperado pelo mesmo.Cabe ressaltar que o conversor possui uma resoluo de12 bits, ou seja a 3 volts a converso equivale a 4096 eesperasse um comportamento linear desse sistema. Osvalores registrados esto na tabela 1.

    Amostra Tenso (V) ValorEsperado

    ValorRegistrado

    0 0 0 6

    1 0,3 409 428

    2 0,6 820 843

    3 0,9 1228 1265

    4 1,2 1639 16965 1,5 2048 2110

    6 1,8 2457 2523

    Figura 4. Erro de Ganho e Saturao do ADC

    Como visto na figura 4 h uma defasagem entre acurva real e a esperada, essa defasagem o erro de ganhodo conversor A/D, tambm possvel notar que o erro

    constante, consequentemente possvel determinar umfator de correo para o sistema. Percebesse tambm que

    h um outro problema na curva real, houve a saturaoda curva na ltima amostra do ADC.

    Primeiramente devesse calibrar o ADC, para que essadefasagem seja minimizada, posteriormente analisar o

    quo grave o problema de saturao. Para a calibrao, determinado um fator de correo o qual ser aplicadoem cada converso do ADC. Esse fator de correo

    determinado a partir de uma tenso de referncia interna(Vrefint), que no caso do STM32F4Discovery equivale

    a 1,21 [1] volts, esse valor de tenso preciso e normalmente encontrado em todos os conversores A/D.

    Para o experimento, foi utilizado uma funo deinicializao do ADC, a qual o conversor realiza 10

    0 1 2 3 4 5 6 7 8 9 100

    500

    1000

    1500

    2000

    2500

    3000

    3500

    4000

    4500

    Amostras

    L e i t u r a

    A D C

    Leitura Real

    Leitura Esperada

    Saturao

  • 6 1,8 2457 2523

    7 2,1 2867 2942

    8 2,4 3277 3368

    9 2,7 3686 3789

    10 3,0 4096 4095Tabela 1. Dados de Converso.

    Para essa anlise foi variado a tenso de entrada doADC de 0 a 3 volts com um incremento de 0,3 volts e

    comparado os valores registrados pelo ADC e o valoresesperado pela converso a partir da determinada tensode entrada. A curva dos entre o valor esperado e o valor registrado podem ser observadas na figura 4.

    inicializao do ADC, a qual o conversor realiza 10

    converses e partir desses resultados calculado a mdiadas converses, em seguida calculado o fator de

    correo das amostras (equao 1).

    =

    (1)

    Assim cada amostra deve ser multiplicada por o fator

    de correo () e resultar o valor da converso emvolts. Posteriormente ser analisado as comparaesentre resultados das amostras sem calibrao do ADC eaps a calibrao.

    5. R ESULTADOS

    Primeiramente foram obtidos resultados da

    calibrao do conversor A/D, como feito anteriormente,foram obtidas vrias amostras das converses e

    analisados os resultados, na tabela 2 descrito os dadosdesse experimento.

    Amostra LeituraMultmetro

    Leitura ADCsem Fc

    Leitura ADCcom Fc

    0 0,0041 0,0051 0,0051

    1 0,3009 0,3076 0,3007

    2 0,6013 0,6152 0,6014

    3 0,8997 0,9199 0,8993

    4 1,2007 1,2250 1,2000

    5 1,5007 1,5330 1,4990

    6 1,8007 1,8380 1,7990

    7 2,1084 2,1510 2,1030

    8 2,4058 2,4540 2,3990

    9 2,7025 2,7590 2,6960

    10 2,8043 2,8620 2,7970

    11 2,9051 2,9660 2,8990

    12 2,9515 2,9990 2,9320Tabela 2. Dados de Converso.

    Posteriormente foi graficado os dados da tabela 2.

    Figura 5. Analises das Amostras do ADC.

    Aps a correo do ADC, foi realizado um outroexperimento, gerou-se um sinal senoidal a partir de umgerador de funo com amplitude de 2,8 Vp, o mesmofoi inserido do ADC e enviado via conexo serial para oMatlab. Foi analisado o sinal com calibrao do ADC e

    sem calibrao (figura 6).

    Figura 6. Sinal Recebidos via Serial com e sem Fator deCorreo.

    Tambm possvel enviar mais de um sinal para oMatlab, dependendo do nmero de ADCs que o usurioest utilizando, neste caso o microcontrolador utilizado possui trs ADC, consequentemente possvel o enviode at trs sinais para o Matlab. A figura 7 mostra dois

    sinais gerados por um gerador de funo e enviados viaserial, os sinais possuem uma defasagem de 30 e

    amplitude de 2,8 volts. Para este caso o ADC j foicalibrado.

    Figura 7. Sinais Recebidos via Serial

    Este documento demonstrou o funcionamento daconexo serial via Matlab e o procedimento de calibraodo ADC, o qual de grande utilidade pois possvel

    realizar estudos e anlises de quaisquer sinais primeiramente atravs do Matlab e posteriormente nomicrocontrolador.

    0 2 4 6 8 10 120

    0.5

    1

    1.5

    2

    2.5

    3

    X: 9

    Y: 2.696

    Comparao de leituras de Tenso

    Amostra

    Multimetro

    Sem Fator de Correo

    Com Fator de Correo

    10 20 30 40 50 60 70 80 90 1000

    0.5

    1

    1.5

    2

    2.5

    Sinas Recebidos via Serial

    Sinal com Fator de Correo

    Sinal sem Fator de Correo

    0 50 100 150 200 250 3000

    0.5

    1

    1.5

    2

    2.5

    3

    Sinas Recebidos via Serial

    Download (.pdf)

    Transmissao_de_Dad

    318 KB

    http://www.academia.edu/attachments/31417299/download_file?st=MTM5NzI2MTEyOSwyMDAuMTY0LjEzMS41Nw%3D%3D&ct=MTM5NzI2MzExMQ%3D%3D
  • Job Board About Mission Press Blog Stories We're hiring engineers! FAQ Terms Privacy Copyright Send us Feedback

    Academia 2014