domingo, 11 de março de 2012

VFO Si570

Montagem do kit VFO com o Si570 comprado no SDR-Kits.net.

Pacote com os componentes.

Checando o conteúdo do Kit.

Capacitores SMD soldados.

Resistores, diodos, pinos e soquete de 8 pinos soldados.


Capacitores eletrolíticos, jumpers, regulador de 3.3v, transistores e conector USB instalados.

Transformador RF Trifilar, 3x5 espiras.


Transformador instalado na placa.

Sintetizador de frequência Si570 LVDS, de 10MHz a 280MHz.

Si570 soldado na placa.


Pronto para o teste.

Frequência padrão de 56,320MHz sendo gerado.

Instalado no receptor SDR.


Usado o kit no Linux (Debian 6.03).
Reconhecido pelo kernel
[31388.412047] usb 2-1: new low speed USB device using ohci_hcd and address 7
[31388.592048] usb 2-1: device descriptor read/64, error -62
[31388.925848] usb 2-1: New USB device found, idVendor=16c0, idProduct=05dc
[31388.925855] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[31388.925859] usb 2-1: Product: DG8SAQ-I2C
[31388.925862] usb 2-1: Manufacturer: www.obdev.at
[31388.925865] usb 2-1: SerialNumber: Beta1.1
[31388.926092] usb 2-1: configuration #1 chosen from 1 choice


O programa precisa acessar o /dev/bus/usb/002/007, esse endereço muda toda vez que e conectado (libusb se vira com isso), e precisa que tenha permissões adequadas para que um não root possa acessar. Para ajustar a permissão e preciso criar um arquivo de regras para o udev.
Crie o arquivo /etc/udev/rules.d/99-si570-usblib.rules contendo:

SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", MODE="0660", GROUP="plugdev"

O usuário terá que pertencer ao grupo plugdev.

Muito dos programas para SDR já possuem as rotinas para controlar o Si570 por esse kit. O nome a ser configurado varia um pouco conforme o programa, no Linrad e o DG8SAQ/PE0FKO, no DReaM como Softrock Si570 AVR-USB.
Para controle independente pode usar o usbsoftrock. Para sintonizar o SDR em 10MHz, usa se o comando:

usbsoftrock set freq 10

XxX



domingo, 15 de maio de 2011

SDR a partir de um rádio FM barato.

O texto a seguir e um relato das experiências que  tenho realizado nos últimos meses. Os acontecimentos não tem uma data especifica, e podem conter imprecisões e ou omissões.


O TDA7088T, ou clones como o SC1088, CD9088 e outros, e um chip para recepção de FM que usa uma FI de 70kHz.
Baseado nesse fato, pensei na possibilidade de usar o chip como receptor para SDR. Como tinha um rádio desses, resolvi fazer algumas experiências. Esses rádios custam menos de R$10,00.
Primeira providencia foi obter o datasheet do TDA7088T e identificar os possíveis pontos onde se poderia obter a FI. Os pontos são logo após o mixer (6), após o filtro passa baixas (8) e depois do limitador (15).
 
O primeiro teste foi conectando o pino 15 a entrada de microfone, sem modificar a frequência de sintonia, ao sintonizar foi possível observar um sinal passando no espectrograma, ou o nível de ruido aumentando, que seria a baseband de FM. Possivelmente, se possui-se um ADC com banda passante de 200kHz, seria possível demodular o sinal.
A seguir tentei modificar a frequência do oscilador local para alguma banda em que exista modulação AM ou NBFM, essas tentativas foram infrutíferas, ou o oscilador não oscilava ou não era estável ou frequência desconhecida.
Em seguida, experimentei um oscilador externo, em ~440kHz, conectado ao pino 4 do TDA7088T, e a entrada de antena (11) a FI de 455kHz de um rádio AM/OC. Sucesso, ao sintonizar o rádio em uma emissora AM local (sinal forte) um pico por volta de 13KHz apareceu no espectro, e foi possível fazer a demodulação AM, mas, o ganho excessivo estava acionado o limitador e prejudicando a faixa dinâmica em amplitude, reduzir o sinal de 455kHz melhorou a qualidade da demodulação (maior volume). Montei esse circuito de forma permanente.
Conversor de 455kHz para 12kHz
Esquema do conversor de 455kHz para 12kHz



Um outro dia, comprei um receptor FM/AM com intuito de reaproveitar o capacitor variável (que não se encontrava no comercio local), e como a parte de FM usa o CD9088, tentei novamente usar o oscilador local, novamente sem muito sucesso.

Recentemente, revisitando sites do bookmark, encontrei isso:
http://www.hanssummers.com/poundshop.html#
Que são instruções para usar o TDA7088T como receptor de 40m em AM.
A leitura do texto me mostrou o motivo de não ter conseguido uma sintonia estável, ou de achar que o oscilador não estava funcionando.
O problema e o circuito de FLL, que tem como objetivo comprimir a baseband de FM afim de ficar compatível com a FI de 70kHz. A sugestão do texto e usar um capacitor de grande valor no filtro de loop (3), experimentei um de 47uF. E o tanque LC configurado para oscilar em por volta de 6MHZ (L=12uH). Dessa vez, ao sintonizar uma emissora, a frequência começou a variar lentamente (além da instabilidade do oscilador), deve ser o FLL em funcionamento. Analisando o diagrama interno do TDA7088T, o FLL poderia ser desabilitado cortando o áudio completamente, isso pode ser feito colocando o pino 3 em +v ou gnd, coloquei em +v, curto circuitando o capacitor, em gnd corta também o mixer.
Com essa modificação, o FLL não mais atua, e consegui sintonizar uma emissora em 49m. Mas o oscilador continua instável, provavelmente devido a condição da montagem improvisada. O ganho em RF em muito baixo e apresenta muito ruido, não servindo para escutar estações fracas, nada de QRP. Talvez usando um amplificador de áudio de baixo ruido e usando a entrada line-in, o nível de ruido melhore.
Modificação para 40m
Comprei um novo rádio FM, dessa vez com o intuito de sintonizar a banda de 2m, e ser portátil. Esse usa o SC1088.
Rádio FM de sintonia eletrônica

Que teve, a etapa de áudio modificado para ser um pré-amplificador do sinal que vem do pino 15, indutores de desacoplamento da antena removidos, jack para o fone reconfigurado, sintonia eletrônica desabilitado pondo o pino 16 no GND, potenciômetro de volume modificado para ser um divisor de tensão e atuar como sintonia, o cursor do potenciômetro foi ligado ao resistor que anteriormente estava no pino 16. Bobina do oscilador trocado por um com menos voltas. Por falta de um frequencímetro que cubra VHF, não tenho ideia em que frequência esta oscilando, não consegui sintonizar quase nada, só coisas que se parecem com estação FM ou áudio de TV, distorcidos. Resolvi voltar a bobina original, e ver se conseguia sintonizar algo, não deu muito certo.
Como não modifiquei o filtro passa baixa e o passa banda, a FI deve estar optimizado para algo torno de 70kHz. Para verificar isso, precisaria amostrar a mais de 140kHz, não tenho uma placa de som com amostragem a 192kHz (96kHz de banda). Mas, a placa de TV (bt878) tem um ADC que chega a 448kHz, ou seja, 224kHz de banda, mas o funcionamento desse ADC e um pouco temperamental. Reconectei os cabos para a entrada do ADC da TV, e realmente, o sinal esta mais forte em torno de 80kHz. Consegui sintonizar algumas emissora locais de FM, com distorção, e o áudio do canal 6 (TV) sem distorção (ou pouca). O meu computador não tem potência suficiente para processar a largura de banda exigida para WBFM, motivo da distorção, a FM da TV tem profundidade de modulação menor que a de FM.
Algumas modificações
No CD1088, aparentemente existe um filtro passa alta, com corte de uns 40dB em aproximadamente 1kHz, e 5dB lá por 20kHz, ou seja, existe um grande atenuação para frequencias abaixo de 20kHz. Mesmo removendo (ou desacoplando) os filtros, esse passa alta não muda. Com o CD9088 isso aparentemente não ocorre.
O filtro passa baixa pode ser reconfigurado para outra frequência, mudando os capacitores do fitro "Sallen-key", capacitor entre o pino 6 e o 8, eo capacitor do pino 7. Com 22nF e 1nF a frequência de corte fica em 33kHz.

Não tenho um outro hardware para SDR similar para dizer se os resultados obtidos com a modificação do rádio FM são bons ou ruim. Comparado com o QSD I/Q o desempenho e muito ruim.


quarta-feira, 11 de fevereiro de 2009

Gravando uma PEROM

As flash PEROM (Programable Erasable Read Only Memory) podem ser gravados por circuitos tão simples quanto o necessário para a sua leitura, necessitando de uma alimentação de 5V e da sinalização de gravação.
Devido a essa simplicidade, muitos aparelhos eletrônicos, como placas de computador, tem a capacidade de atualizarem o firmware sem a necessidade de remover o chip (Circuito Integrado) e colocar-lo em um gravador próprio, como no caso das EPROM tradicionais.
Placas mães e algumas placas de rede possem esse recurso, no caso da placa mãe e necessário, trocar de chip a 'quente', ou seja, remover o chip que contem a BIOS e colocar o PEROM que deseja gravar. Uma operação que pode danificar as partes envolvidas. Recomenda-se usar uma placa mãe que não esteja sendo usada.
Para fazer a gravação pode se utilizar o software de atualização de bios do próprio fabricante, ou então o Uniflash (http://www.rainbow-software.org/uniflash/)
Um demostração desse método pode ser visto neste vídeo:


Um outro meio de gravar uma flash PEROM e usando uma placa de rede, como as que usam o chip da Realtek RTL8139 versões A, B e C, muito comuns e baratas. A versão D (RTL8139D) teve essa e outras funcionalidades removidas.
Os fabricantes de placas, para economizar míseros centavos, usam um soquete de 28 pinos em vez do de 32 pinos, necessário para a gravação, ou quando e de 32 pinos, não fazem a trilha do sinal de gravação.


A placa com o soquete de 28 pinos precisa ser modificada para poder efetuar a gravação, para tanto e necessário substituir o soquete por um de 32 pinos, será preciso dobrar os pinos adicionar, ou se a placa permitir, fazer furos extras. Ou montar o soquete de 32 pinos em cima do de 28 pinos.
Os diversos tamanhos dos chips de memoria ROM possuem muitos dos pinos em comum, de modo a possibilitar o uso de um mesmo soquete, deixando os pinos próximos a marca do pino 1 vazios.
Os seguintes pinos do soquete de 32 pinos precisa ser ligados, pino 31 deve ir ao 89 (/WE) do RTL8139C, e o 2 (A16) a o 70.


O pino 30, ou seja o 28 do soquete de 28 pinos, que corresponde ao VCC (5V) dos CHIPs de 28 pinos, e ao A17 nos de 32 pinos, de capacidade maior que 1Mb. O RTL8139 e capaz de endereçar no máximo 1Mb ou 256KB, portanto as linhas de endereçamento A17 e A18 não são utilizados. Esses pinos podem ser ligados no GND ou no VCC, mas dependendo da capacidade do PEROM, eles podem ser usando para selecionar qual a porção de 1Mb que será endereçada. Portando seria interessante colocar um jumper para selecionar o nível lógico desses pinos. E o pino 32 deve ter ligado a o VCC.


O RTL8139 precisa ser configurado para utilizar uma BOOT ROM, que é realizado pelo programa de configuração RSET8139.EXE.


A gravação e feita pelo programa fornecido pela realtek, o rtflash.exe, que e um programa de linha de comando, sem interface.
Use a opção -l para ver a lista de PEROM testados, bem como a identificação do chip atual.
O -s para salvar o conteúdo da ROM atual, -v para realizar uma verificação.
Para gravar: rtflash imagem.rom
Para veriricar: rtflash -v imagem.rom


O uso mais comum de ROMs gravados dessa forma e para realizar o boot pela rede, usando por exemplo o PXE.
O projeto Etherboot (http://www.etherboot.com) desenvolve soluções open source para o boot remoto, diversos sistemas operacionais, até mesmo o que aparentemente não possuem esse recurso podem ser carregados pela rede, no site do Etherboot, há vários tutoriais.

No caso de reaproveitar chips já usados, como BIOS de placas mãe fora de uso, para gravar um ROM de boot remoto, ou outro código que não tenha o tamanho exato da capacidade do PEROM, e interessante prevenir que algum lixo fique gravado, e como os programas não possuem a opção de apagar (isso e feito automaticamente quando se grava), assim e necessário gerar uma imagem do tamanho exato da PEROM, e ter os bits não usando setados em nível lógico alto (1), que costuma ser o valor de uma PEROM vazia. Uma imagem assim pode ser criado usando algumas ferramentas Unix, como o dd e o tr.
Criando um arquivo de 256KB (2Mb) cheio de 0xff:
dd if=/dev/zero bs=1 count=256k | tr '\000' '\377' >imagem.rom
Copiando a imagem para o primeiro megabit:
dd if=gpxe-git-10ec8139.rom of=imagem.rom conv=notrunc
Onde gpxe-git-10ec8139.rom e a imagem para a placa de rede realtek 8139.

Copiando para o segundo megabit:
dd if=gpxe-0.9.6-10ec8139.rom bs=1 seek=128k of=imagem.rom conv=notrunc

Imagem de 2Mb somente pode ser gravado pelo método da placa mãe.
Pela placa de rede, somente 1Mb podem ser gravados por vez, selecionando manualmente do endereçamento do pino 30, e ou do 1.

Dessa forma, temos imagens em duas regiões da PEROM, que pode ser selecionado mudando o nível do pino 30.


O RSET8139.EXE e o RTFLASH.EXE podem ser baixados do site da realtek.
Existe também a possibilidade de usar este programa: http://ctflasher.sourceforge.net/