MICROCONTROLADORES NO RADIOAMADORISMO CT2KAV CARLOS SOUSA Almeirim, 17 de Setembro de 2016
Único circuito com O MICROCONTROLADOR Processador Memória Ram, E2Prom, Flash Periféricos ADC, USART, USB Comparadores, Timers, Portos In e Out I 2 C, SPI, PWM Etc ISCP, ICD Possibilidade de programação em serviço Possibilidade de debug em serviço
MICROCHIP PIC 18F Linguagem de programação C Compilador MikroC Programador PicFlash
NO RADIOAMADORISMO Comutadores de antenas Medidores de potência
Medidores de frequência Geradores de CW Sistemas de APRS Controladores de amplificadores RF Viva a necessidade e imaginação... NO RADIOAMADORISMO
CONTADOR DE FREQUÊNCIA FUNDAMENTO TEÓRICO A frequência de um sinal periódico é o número de vezes que o mesmo se repete num segundo. Um sinal periódico é um sinal cuja amplitude se repete ao longo do tempo. Sabendo a forma de um período, conhecemos a amplitude do sinal em qualquer instante de tempo pois ele repete-se. As grandezas de um sinal periódico Amplitude A, o período T e a fase φ a frequência f é 1/T
CONTADOR DE FREQUÊNCIA CONDICIONAMENTO DE SINAL O papel do microcontrolador é contar o número de repetições do sinal no intervalo de tempo de um segundo, mas... O microcontrolador trabalha com sinais digitais, neste caso com valores entre 0 e 5V. Há que condicionar (transformar) o sinal a medir para que oscile entre 0 e 5 V, mas não perca as características de frequência.
CONTADOR DE FREQUÊNCIA CONDICIONAMENTO DE SINAL Um pequeno amplificador baseado num transístor 2N3904 é suficiente para condicionar o sinal. Usar máximo de 5W sobre 50Ohm para excitar o condicionador.
CONTADOR DE FREQUÊNCIA USO DO MICROCONTROLADOR O periférico indicado para contar tempo num microcontrolador é o temporizador. O periférico indicado para comtar repetições ou impulsos de 0 para 5V de um sinal é um contador. Com estes dois periféricos é possível calcular a frequência do sinal.
CONTADOR DE FREQUÊNCIA USO DO MICROCONTROLADOR A diferença entre um contador e um temporizador tem a ver com o uso que se lhes dá e também com a fonte de clock que se usa. Um temporizador é um contador usado para contar tempo. Um contador é usado para contar impulsos originados numa fonte externa. Nos microcontroladores PIC existem Timers que podem ser usados como temporizadores ou contadores. Neste projecto usam-se dois Timers de 16 bit cada, um como temporizador (Timer 0) e outro como contador de impulsos externos (Timer 1). Estes impulsos são os impulsos do sinal a medir a frequência.
CONTADOR DE FREQUÊNCIA USO DO MICROCONTROLADOR O Timer 0, é usado para contar meio segundo. Neste meio segundo contam-se os impulsos originados na entrada do Timer 1 pelo nosso sinal depois de condicionado. A frequência é o dobro destes impulsos. Programa-se o Timer 0 com fonte de clock o sinal de clock do microcontrolador dividido numa primeira fase por 4 e depois por 64. 16Mhz / 4 / 64 = 62500 ou seja temos 62500 contagens num segundo, mas como só usamos meio segundo temos 31250. Quando o registo do Timer 0 chegar a 65535-31250 passou meio segundo (pois gera overflow quando passar de 65535 para 0. O Timer 1 vai ser usado para contar impulsos durante meio segundo. Com 30Mhz, temos 15M impulsos em meio segundo. Este valor não cabe em 16bit, logo temos de usar outra técnica.
CONTADOR DE FREQUÊNCIA USO DO MICROCONTROLADOR Os Timer tem um bit de overflow, que gera interrupt quando passar de 65535 para 0000. Assim, há que, no firmware, usar este interrupt para incrementar o que vai ser a parte mais alta do número de 32 bit formado por uma variável em memória (16 bits mais altos) e pelo valor do Timer 1 (16 bits mais baixos). O Timer 0 é programado com o valor que é a diferença de 65535 (máximo) para 31250 que é 34285, ou seja, passados 31250 ticks além de 34285 passa de 65535 para 0 gerando também o interrupt de overflow. Sabemos assim que aquando do interrupt do Timer 0 que passou meio segundo. Neste interrupt basta averiguar o valor de 32 bit da variável em memória (16 bit altos) e do valor do Timer 1 (16 bit baixos) e multiplicar por 2 tendo a frequência do sinal.
CONTADOR DE FREQUÊNCIA FIRMWARE BASE Para além das incializações, dos pormenores do WIFI, do módulo USB e do módulo LCD, é constituído por uma máquina de três estados: Estado 0 em que se reinicia o Timer 0 e o Timer 1 e os colocam a correr. Estado 1 em que não faz abolutamnte nada, pois quando o Timer 0 der interrupt coloca a máquina no estado 2 e pára os Timers. Estado 2 em que se calcula a frequência e escreve-se o seu valor no LCD e se envia por WIFI.
CONTADOR DE FREQUÊNCIA FIRMWARE BASE O módulo WIFI ESP8266 é configurado por comandos AT e o envio da informação para a rede é feito através de um comando AT que abre uma ligação UDP para o endereço de broadcast. Os comandos AT passam via porta UART do microcontrolador para o módulo ESP8266 (115200bps, 8 bit, no parity, no flow control). O módulo LCD 16X2 é trabalhado usando a biblioteca do MikroC, modo 4bit. A porta USB é trabalhada usando o módulo USB do microcontrolador, a biblioteca HIDdo MikroC. Tanto a comunicação com a porta USB como com o módulo WIFI como com o LCD não são acções prioritárias. Só quando a contagem de frequência está disponível se entra na parte de comunicação USB, WIFI e LCD.
LEITURA DA FREQUÊNCIA NA PLACA Módulo Lcd 2X16 Comunicação paralela a 4 bit com o microcontrolador Biblioteca LCD da MikroC
COMUNICAÇÃO USB Módulo hardware HID USB Permite via aplicação PC Configuração da placa Reset de fábrica Ler a frequência Desenvolvida em Delphi
COMUNICAÇÃO WI-FI Módulo Esp8266 configurado como estação. Comunicação com o microcontrolador via Uart 115200bps, 8bit, no parity, no flow control (default) Comunicação Rede via Sockect Udp/Tcp. Usa comandos formato AT para operação com o microcontrolador.
APLICAÇÃO ANDROID Permite receber o valor da frequência medida no smartphone/tablet Desenvolvida em Android Studio
CARACTERÍSTICAS DO FREQUENCY COUNTER Alimentação : 5V DC via fonte externa Ainda em breadboard Consumo aproximado: 1,75W Configuração por porta USB SN, IP, Máscara Sub Rede, Gateway, porta de escuta SSID e password de WIFI Visualização por Lcd Visualização por aplicação PC via porto USB Visualização por aplicação Android via Wi-Fi
www.microchip.com (Fabricante do Pic) www.mikroe.com (mikroc Compiler) BIBLIOGRAFIA https://developer.android.com/index.html (Android studio developpers ) https://www.embarcadero.com/br/products/delphi (Embarcadreo Delph) www.http://stackoverflow.com (fórum geral de programação) www.ct1arr.org (Antenna switch e digimeter) www.foxdelta.com (Kits de radioamadorismo) http://microcontrolandos.blogspot.pt/2012/09/programando-no-mikroc-pro-pic.html (tutoriais) http://www.esp8266.com (informação sobre ESP8266) Contacto : cfmsousa@sapo.pt