18/11/2019

Software melhorado para a fonte de alimentação FAU201

Hoje faculto o software mais actual para a fonte de alimentação FAU201, mais precisamente os pacotes contendo os comandos de controlo e a interface gráfica. O código-fonte dos comandos de controlo foi revisto, de modo a que os mesmos executem de forma um pouco mais eficiente. Contudo, a grande melhoria foi feita na interface gráfica, que agora possibilita o carregamento e a gravação de parâmetros em formato XML.

Nova versão da interface gráfica.

Os pacotes estão disponíveis para transferência através dos links abaixo. O software aqui disponível pode ser utilizado com a versão já existente da fonte de alimentação, não havendo quaisquer incompatibilidades.

Links importantes:
Comandos de controlo: https://app.box.com/s/2x2h...rzow
Interface gráfica: https://app.box.com/s/57zv...dxx9

29/10/2019

Fonte de alimentação FAU200 (Rev. 1)

Trata-se é uma revisão correctiva ao projecto apresentado no post de 18 de Novembro do ano passado. Antes de mais, é importante referir que a versão original desta fonte de alimentação mostra demasiado ruído, que não é condizente com a topologia em questão. Para além do mais, é susceptível a latch-up em determinadas condições, sobretudo quando a natureza da carga é fortemente indutiva. Esta nova revisão visa corrigir os problemas acima mencionados. Por conseguinte, a nova versão da fonte FAU200 apresenta-se bastante mais estável.

Parâmetros de funcionamento:
– V d. mín. = 4,92V
– V d. nom. = 5V
– V d. máx. = 5,25V
– I L máx. = 200mA


Características eléctricas:
– I d. (V out = 2V, I L = 0mA) = 71,91mA
– I d. (V out = 2V, I L = 200mA) = 490,5mA
– P (V out = 2V, I L = 0mA) = 359,5mW
– P (V out = 2V, I L = 200mA) = 2,453W


Características da saída:
– Tensão máxima: 4,09V
– Incremento em tensão: 1mV
– Ruído (V out = 2V, I L = 0mA): 880µVrms
– Ruído (V out = 2V, I L = 200mA): 918µVrms
– Exactidão: ±(0,782% + 7,5mV)
– Regulação de carga: 9,72mV/A
– Corrente em curto-circuito (I SC): 258mA


Outras características:
– Coeficiente de temperatura da referência de tensão: 10ppm/°C
– Resolução do controlo de tensão: 12bit


As modificações ao circuito foram feitas apenas ao nível da etapa de regulação, conforme evidenciado no diagrama da imagem abaixo. A sublinhar, o resistor R7 limita a corrente na entrada inversora do amplificador operacional em IC9. Deste modo, impede-se que um transiente residual cause o latch-up da referida entrada. Desta forma, previne-se a destruição do amplificador operacional. O mesmo resistor, em conjunção com o condensador em C20, forma uma malha de compensação que confere mais estabilidade ao circuito.

Circuito da etapa de regulação.

O díodo em D5 é agora do tipo TVS. Este tipo de díodo oferece protecção contra picos de tensão que sigam a polaridade da fonte de alimentação, para além da protecção contra transientes de origem indutiva que o MMSD4148 já oferecia. Para finalizar, o resistor de descarga (R10) assume um valor mais baixo, de 2,2KΩ ao invés de 4,7KΩ.

Lista de componentes:
C1/2/4-6/15-19/21 – Condensador cerâmico multi-camada 100nF 10V (0805);
C3/12 – Condensador cerâmico multi-camada 1µF 10V (0805);
C7 – Condensador electrolítico de nióbio NOJA475M006 (NOJA475M006RWJ ou equiv.);
C8/9 – Condensador electrolítico de nióbio NOJA475M010 (NOJA475M010RWJ ou equiv.);
C10 – Condensador cerâmico multi-camada 470pF 1KV (1206);
C11/14 – Condensador cerâmico multi-camada 2,2µF 10V (0805);
C13 – Condensador cerâmico multi-camada 10nF 10V (0805);
C20 – Condensador cerâmico multi-camada 3,3nF 10V (0805);
C22 – Condensador electrolítico de nióbio NOJC476M010 (NOJC476M010RWJ ou equiv.);
D1 – LED WP1503CB/ID;
D2 – LED WP1503CB/YD;
D3 – LED WP1503CB/GD;
D4 – Díodo rectificador S1A;
D5 – Díodo TVS SMBJ5.0A;
IC1 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2/3 – Circuito de protecção TVS SP4021-01FTG;
IC4 – Conversor USB-SPI CP2130 (CP2130-F01-GM);
IC5 – Conversor DC-DC isolado RI3-0509S;
IC6 – Regulador de tensão LP2985-50 (LP2985-50DBV);
IC7 – Isolador digital ADuM1310 (ADuM1310ARWZ);
IC8 – Conversor digital-analógico LTC2640CTS8-HZ12;
IC9 – Amplificador operacional OPA705 (OPA705NA);
J1 – Conector USB Molex 67068-9001;
J2 – Bloco de terminais de 2 bornes;
L1 – Indutor de potência XFL3012-103ME (XFL3012-103MEB ou XFL3012-103MEC);
Q1 – Transístor MOSFET de potência FDN327N;
Q2 – Transístor bipolar de potência MJD31C;
Q3 – Transístor bipolar MMBT3904;
R1 – Resistor de filme espesso 1MΩ±5% 1/8W (0805);
R2/3 – Resistor de filme espesso 4,7KΩ±5% 1/8W (0805);
R4/5 – Resistor de filme espesso 82Ω±5% 1/8W (0805);
R6 – Resistor de filme espesso 180Ω±5% 1/8W (0805);
R7 – Resistor de filme espesso 1KΩ±5% 1/8W (0805);
R8 – Resistor de filme espesso 470Ω±5% 1/8W (0805);
R9 – Resistor de filme espesso 2,7Ω±5% 1/2W (1210);
R10 – Resistor de filme espesso 2,2KΩ±5% 1/8W (0805).


Como é usual, o layout da placa está disponível nos formatos .brd (Eagle 7.7.0) e Gerber. Novamente, sugiro que a encomenda da placa seja feita através do OSH Park, uma vez que o respectivo desenho foi feito com as especificações deste serviço em mente. Porém, pode opter por outro serviço de fabrico, desde que o mesmo suporte layouts de quatro camadas com furação mínima de 0,5mm. No que diz respeito à montagem do projecto, aplicam-se as recomendações dadas aquando a apresentação do projecto original.

Por fim, é sempre necessário configurar o interface CP2130 da fonte de alimentação. Como anteriormente, só é possível fazê-lo em Linux, após a instalação do programa de configuração incluso no pacote "fau200-r1-conf-1.0.tar.gz", que por seu turno está disponível na pasta "Software". Para mais informações, deverá ler as notas do projecto. Todos os ficheiros e pastas podem ser encontrados na pasta do projecto.

Links importantes:
Diagrama do circuito (pdf): https://app.box.com/s/b7b8...ghso
Diagrama do circuito (Eagle 7.7.0 sch): https://app.box.com/s/nsp4...3ggh
Layout da placa (pdf): https://app.box.com/s/f2wq...895g
Layout da placa (Eagle 7.7.0 brd): https://app.box.com/s/sw42...kl72
Ficheiros Gerber: https://app.box.com/s/vh8r...f2h5
Guia de furação: https://app.box.com/s/m0tc...0ki1s
Drivers (Windows): https://app.box.com/s/ju8l...qlzm
Software (Linux): https://app.box.com/s/33fj...ahqo
Notas do projecto: https://app.box.com/s/c9ev...pufm
Pasta contendo todos os ficheiros: https://app.box.com/s/vwgb...gptr
Projecto no OSH Park: https://oshpark.com/shared_projects/s9RPSoFT

10/10/2019

Em desenvolvimento: Interruptor de teste ITUSB1

Este é mais um projecto que estou a desenvolver. Trata-se de um interruptor de teste USB, a ser utilizado em testes que envolvam a ligação entre um determinado dispositivo USB e o anfitrião. O ITUSB1 tem a capacidade de ligar e desligar a alimentação e as linhas de dados, de forma independente, assim como medir a corrente de consumo.

Placa do interruptor de teste ITUSB1, vista de cima.

A placa anterior vista do lado inverso.

Como as imagens atestam, o hardware está na sua fase final de concepção e, inclusivamente, já existe um protótipo. Todavia, ainda falta caracterizar o dispositivo e desenvolver parte do software de controlo. Espero, contudo, lançar o projecto ainda este ano.

23/09/2019

Bloguetrónica no Minds

Desde 5 de Junho que o blogue tem assinalado a sua presença no Minds, uma plataforma social alternativa ao Facebook. Visto que a experiência tem sido positiva, decidi oficializar tal presença na dita plataforma. Pode agora acompanhar o Bloguetrónica no Minds, em https://www.minds.com/bloguetronica.

08/08/2019

Programa de demonstração para a placa de desenvolvimento "Prop S"

Trata-se de um programa desenvolvido na mesma linha dos programas de demonstração para as placas Prop (post de 2 de Agosto de 2016) e Prop II (post de 13 de Novembro de 2016). Com a finalidade de avaliar o desempenho da placa, este programa utiliza os oito núcleos de processamento que o P8X32A oferece. Basicamente, o utilizador introduz os valores limite, e o programa calcula então todos os números primos entre os ditos valores. Convém sublinhar que o código foi significativamente optimizado. Embora seja mais eficiente face aos programas anteriores, é igualmente intensivo em termos de processamento.

Novamente, para executar o programa, é necessário recorrer à aplicação SimpleIDE da Parallax. Caso não o tenha feito antes, deve transferir o ficheiro "prop-s.cfg" para a pasta "propeller-load" da sua instalação, de modo a utilizar o perfil de hardware correspondente à placa em questão. Deverá também transferir o ficheiro do projecto e o código C para a pasta dos projectos do SimpleIDE. Por fim, com a placa ligada ao computador, abra o projecto com o nome "Prop_S_primos.side" e escolha a opção "Run with Terminal" (tecla F8).

Programa de demonstração a correr no terminal do SimpleIDE.

Se bem que fiz esta ressalva em posts anteriores, nunca é demais frisar que o terminal do SimpleIDE é lento e, por conseguinte, pode não apresentar todos os resultados. Como alternativa, sugiro que utilize a opção "Load EEPROM & Run" (tecla F11) aquando o carregamento do programa, para que o mesmo fique guardado na EEPROM. Feita esta operação, pode utilizar qualquer outra aplicação de comunicação série (como por exemplo, o PuTTY) para executar o programa.

Programa a correr no PuTTY. O SimpleIDE é visível em segundo plano.

Links importantes:
Projecto SimpleIDE: https://app.box.com/s/5k37...n6ta
Programa em C: https://app.box.com/s/9ahb...wkpk
Perfil de hardware: https://app.box.com/s/x0u4...cdtd
Pasta contendo todos os ficheiros: https://app.box.com/s/eu1n...we4v

06/08/2019

Programa de teste para a placa de desenvolvimento "Prop S"

Este é um programa que serve para examinar o funcionamento da placa Prop S. Essencialmente, o programa permite testar individualmente os pinos da placa, de modo a verificar a existência de curto-circuitos à massa ou à alimentação. Basta ao utilizador introduzir o número do pino a comutar, e o programa então indica se a operação foi bem sucedida ou se ocorreu um erro. É de referir que este programa foi concebido sob o mesmo princípio dos programas de teste para as placas Prop (post de 24 de Julho de 2016) e Prop II (post de 5 de Outubro de 2016), porém tendo o código mais desenvolvido.

Programa de teste a correr no terminal do SimpleIDE.

Para correr o teste é preciso utilizar a aplicação SimpleIDE da Parallax. Primeiro que tudo, deve transferir o ficheiro "prop-s.cfg" para a pasta "propeller-load" da sua instalação. Tal é necessário por forma a utilizar o perfil de hardware adequado à placa. Deverá também transferir o ficheiro do projecto e o código C para a pasta dos projectos do SimpleIDE. Finalmente, estando a placa ligada ao computador, basta abrir o projecto com o nome "Prop_S_teste.side" e escolher a opção "Run with Terminal" (ou simplesmente premir F8) para executar o programa.

Links importantes:
Projecto SimpleIDE: https://app.box.com/s/1tqc...tlso
Programa em C: https://app.box.com/s/r45j...k5np
Perfil de hardware: https://app.box.com/s/yps0...x402
Pasta contendo todos os ficheiros: https://app.box.com/s/i30z...vse8

20/07/2019

Gerador de funções GF2 (Rev. A)

Esta é uma revisão rectificativa ao projecto apresentado no post de 10 de Julho do ano passado. Essencialmente, a versão original mostrou uma limitação relacionada com o amplificador operacional que fora empregue na etapa final, um OPA2830 da Texas Instruments. Tal limitação causava distorções no sinal de saída, quando o gerador de funções produzia um sinal cuja frequência estava sensivelmente acima dos 2MHz, com a saída analógica terminada com uma carga de 50Ω (veja o post de 8 de Abril para saber mais pormenores).

Esta nova revisão visa assim rectificar a referida limitação. Por conseguinte, a nova versão do gerador de funções é capaz de gerar sinais com forma de onda sinusoidal até 8MHz em qualquer regime de carga, sem que haja distorção. No entanto, a geração de sinais com forma de onda triangular continua limitada à frequência máxima de 2MHz.

Parâmetros de funcionamento:
– V d. mín. = 4,74V
– V d. nom. = 5V
– V d. máx. = 5,25V
– Z L mín. = 50Ω


Características eléctricas:
– I d. (Z L = 50Ω@0V) = 131,6mA
– I d. (Z L > 100KΩ) = 81,96mA
– P (Z L = 50Ω@0V) = 658,2mW
– P (Z L > 100KΩ) = 409,8mW


Características da saída analógica:
– Frequência máxima (onda sinusoidal): 8MHz
– Frequência máxima (onda triangular): 2MHz
– Incremento em frequência: 298mHz
– Incremento em fase: 0,0879°
– Amplitude máxima (Z L = 50Ω@0V): 4,01Vpp
– Amplitude máxima (Z L > 100KΩ): 8,02Vpp
– Incremento em amplitude (Z L = 50Ω@0V): 3,92mVpp
– Incremento em amplitude (Z L > 100KΩ): 7,83mVpp
– Ruído (Z L = 50Ω@0V): 2,68mVrms
– Ruído (Z L > 100KΩ): 5,35mVrms
– Relação sinal-ruído (SNR dB): 54,5dB
– Impedância de saída (Z S): 49,9Ω


Características da saída digital:
– Frequência máxima: 24MHz
– Incremento em frequência: 298mHz
– Incremento em fase: 0,0879°
– Razão cíclica: 0,5
– Amplitude (Z L = 50Ω@0V): 2,13Vpp
– Amplitude (Z L = 50Ω@1,65V): 2,32Vpp
– Amplitude (Z L > 100KΩ): 3,30Vpp
– Impedância de saída (Z S): 27,5Ω


Outras características:
– Base de tempo: 80MHz±50ppm
– Taxa de amostragem: 80MSa/s
– Resolução do acumulador de fase: 28bit
– Resolução da compensação de fase: 12bit
– Resolução do conversor D/A: 10bit
– Resolução do controlo de amplitude: 10bit
– Tensão de histerese do comparador: 21,4mV


Função sinusoidal com frequência a 8MHz e amplitude a 3Vpp. Ambas as saídas estão terminadas a 50Ω.

Função triangular com frequência a 2MHz e amplitude a 3Vpp. Novamente, as saídas estão terminadas a 50Ω.

A modificação mais notável feita ao nível do circuito foi a substituição do amplificador operacional que abrange as duas etapas de amplificação final da saída analógica. Originalmente um OPA2830 da Texas Instruments, o amplificador operacional em IC14 passa a ser do tipo LMH6612, do mesmo fabricante. É de frisar que este último tipo apresenta melhores características que o anterior no que concerne à capacidade de trabalhar sob carga em regime de altas frequências. Em contrapartida, o LMH6612 requer uma tensão de alimentação um pouco maior, de modo a produzir sinais com amplitude até 4Vpp.

Circuito das etapas de amplificação final da saída analógica.

De modo a acomodar o novo amplificador operacional, as tensões de alimentação da secção analógica foram aumentadas em cerca de 300mV, para 4,5V e -4,5V. Para tal, foram feitas alternações em torno dos reguladores de tensão em IC6 e IC8. O regulador em IC6 é agora um TPS79901, a versão ajustável da série TPS799. Repare que a tensão de referência deste regulador é dada pelo divisor de tensão constituído por R6 e R7. Por sua vez, o regulador em IC8 continua a ser o mesmo, mas a razão do respectivo divisor de tensão foi alterada.

Contudo, as modificações implementadas nesta revisão não foram feitas somente em consequência da substituição do amplificador operacional anteriormente referido. É de notar que o filtro de reconstrução é agora de 7ª ordem, se bem que ainda com alinhamento próximo a Chebyshev de 0,01dB. Esta modificação foi feita com vista a minorar ainda mais as harmónicas resultantes do processo de síntese digital directa inerente ao AD9834. É, porém, importante salientar que, na prática, esta melhoria não se traduz num efeito imediatamente observável.

Lista de componentes:
C1/2/4-6/21/23/25/27/29/30/39/40/42/44/45/51 – Condensador cerâmico multi-camada 100nF 10V (0805);
C3/9/12/16/19/50 – Condensador cerâmico multi-camada 1µF 10V (0805);
C7 – Condensador electrolítico de nióbio NOJA475M006 (NOJA475M006RWJ ou equiv.);
C8 – Condensador electrolítico de nióbio NOJA475M010 (NOJA475M010RWJ ou equiv.);
C10/26/28/46/47 – Condensador cerâmico multi-camada 10nF 10V (0805);
C11/14/15/18/20/48/49 – Condensador cerâmico multi-camada 2,2µF 10V (0805);
C17 – Condensador cerâmico multi-camada 470nF 10V (0805);
C22 – Condensador electrolítico de nióbio NOJA106M006 (NOJA106M006RWJ ou equiv.);
C24/41/43 – Condensador electrolítico de nióbio NOJA106M010 (NOJA106M010RWJ ou equiv.);
C31/32/37/38 – Condensador cerâmico multi-camada 22pF±5% C0G 10V (0805);
C33-36 – Condensador cerâmico multi-camada 56pF±5% C0G 10V (0805);
D1 – LED WP1503CB/ID;
D2 – LED WP1503CB/YD;
IC1 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2/3 – Circuito de protecção TVS SP4021-01FTG;
IC4 – Conversor USB-SPI CP2130 (CP2130-F01-GM);
IC5 – Regulador de tensão TPS79933 (TPS79933DDC);
IC6 – Regulador de tensão TPS79901 (TPS79901DDC);
IC7 – Conversor 'charge-pump' LM2776 (LM2776DBV);
IC8 – Regulador de tensão TPS72301 (TPS72301DBV);
IC9 – Oscilador de cristal CTS 636L3C080M00000;
IC10 – Gerador de funções AD9834 (AD9834CRUZ);
IC11 – Conversor digital-analógico AD5310 (AD5310BRTZ);
IC12 – Amplificador operacional LMV611 (LMV611MF);
IC13 – Amplificador operacional OPA2832 (OPA2832ID);
IC14 – Amplificador operacional LMH6612 (LMH6612MA);
IC15 – Comparador TLV3501 (TLV3501AIDBV);
IC16 – 'Buffer' de relógio CDCLVC1102 (CDCLVC1102PW);
IC17 – Circuito de protecção TVS SP4021-01FTG-C;
IC18 – Circuito de protecção TVS SP4020-01FTG;
J1 – Conector USB Molex 67068-9001;
J2/3 – Conector BNC Amphenol RF 112659;
L1/2/9 – Conta de ferrite MPZ2012S331A (MPZ2012S331AT000);
L3/4/7/8 – Indutor MLF2012A1R8J (MLF2012A1R8JT000);
L5/6 – Indutor MLF2012A2R2J (MLF2012A2R2JT000);
R1/30/32 – Resistor de filme espesso 1MΩ±5% 1/8W (0805);
R2/3/31/33 – Resistor de filme espesso 4,7KΩ±5% 1/8W (0805);
R4/5 – Resistor de filme espesso 82Ω±5% 1/8W (0805);
R6/8 – Resistor de filme espesso 28KΩ±1% 1/8W (0805);
R7/9 – Resistor de filme espesso 10KΩ±1% 1/8W (0805);
R10 – Resistor de filme espesso 0Ω 1/8W (0805);
R11/14 – Resistor de filme espesso 100KΩ±1% 1/8W (0805);
R12/13 – Resistor de filme espesso 402KΩ±1% 1/8W (0805);
R15 – Resistor de filme espesso 5,9KΩ±1% 1/8W (0805);
R16-19 – Resistor de filme espesso 200Ω±1% 1/8W (0805);
R20/22/25 – Resistor de filme espesso 499Ω±1% 1/8W (0805);
R21/23 – Resistor de filme espesso 1,43KΩ±1% 1/8W (0805);
R24 – Resistor de filme espesso 715Ω±1% 1/8W (0805);
R26 – Resistor de filme espesso 49,9Ω±1% 3/4W (2010);
R27/28 – Resistor de filme espesso 10KΩ±5% 1/8W (0805);
R29 – Resistor de filme espesso 1KΩ±5% 1/8W (0805);
R34/35 – Resistor de filme espesso 10Ω±5% 1/8W (0805).


À semelhança de outros projectos, o layout da placa está disponível nos formatos brd (Eagle 7.7.0) e Gerber. Novamente, recomendo que a encomenda da placa seja feita através do OSH Park, dado que o respectivo layout foi desenhado tendo em conta as especificações deste serviço. Em alternativa, pode utilizar outro serviço de fabrico, desde que o mesmo suporte layouts de quatro camadas com furação mínima de 0,5mm. Relativamente à montagem, aplicam-se as recomendações que foram dadas no post do projecto original.

Por último, é necessário configurar o interface CP2130 do gerador de funções. Em ambiente Windows, poderá fazê-lo através da aplicação "CP21xx Customization Utility" da Silicon labs (que vem incluída no pacote CP2130_SDK para Windows XP e Vista), utilizando para tal o ficheiro de configuração que está dentro da pasta "Firmware". Caso disponha de Linux, deverá utilizar o programa incluso no pacote "gf2-ra-conf-1.0.tar.gz", por seu turno localizado na pasta "Software". Também estão disponíveis versões actuais dos comandos de controlo e da interface gráfica na pasta anterior (remeta ao post de 20 de Abril para mais detalhes).

Links importantes:
Diagrama do circuito (pdf): https://app.box.com/s/vwgm...ckll
Diagrama do circuito (Eagle 7.7.0 sch): https://app.box.com/s/ptdy...frr7
Layout da placa (pdf): https://app.box.com/s/9058...fiat
Layout da placa (Eagle 7.7.0 brd): https://app.box.com/s/0rpb...hcu
Ficheiros Gerber: https://app.box.com/s/b1qd...las3
Guia de furação: https://app.box.com/s/w5l6...ej1y
Firmware (com instruções): https://app.box.com/s/2a10...toqu
Drivers (Windows): https://app.box.com/s/ufqi...oibv
Software (Linux): https://app.box.com/s/ykxg...3b7a
Notas do projecto: https://app.box.com/s/6dz6...nte8
Pasta contendo todos os ficheiros: https://app.box.com/s/toaf...jzpo
Projecto no OSH Park: https://oshpark.com/shared_projects/MLbU2XTa
CP2130_SDK: http://www.silabs.com/.../CP2130_SDK_Windows_XP_Vista.exe

23/06/2019

Software melhorado para a fonte de alimentação FAU200

Disponibilizo aqui o software mais recente para a fonte de alimentação FAU200, mais especificamente os pacotes contendo os comandos de controlo e a interface gráfica. Os comandos de controlo foram melhorados, ao nível do respectivo código-fonte, para que os mesmos executem de forma mais eficiente. Por sua vez, a interface gráfica permite agora carregar e guardar parâmetros em formato XML.

Nova versão da interface gráfica.

Os pacotes estão disponíveis para transferência através dos links abaixo. É de salientar que o novo software é aplicável à versão actual da fonte de alimentação, não existindo quaisquer incompatibilidades.

Links importantes:
Comandos de controlo: https://app.box.com/s/ik54...novz
Interface gráfica: https://app.box.com/s/63ob...n86i

29/05/2019

O novo micro-controlador da Parallax

No dia 29 de Novembro do ano passado, a Parallax lançou uma edição limitada de placas contendo a versão protótipo do novo micro-controlador Propeller 2 (ou simplesmente P2), ao qual foi dada a designação P2X8C4M64PES. Posto isto, decidi adquirir uma destas placas, e devo dizer que fiquei impressionado com as capacidades deste novo micro-controlador. De facto, pude verificar que o micro-controlador protótipo consegue ser oito vezes mais rápido do que o Propeller P8X32A, seu antecessor.


Pormenor do micro-controlador P2X8C4M64PES.

O P2X8C4M64PES é um micro-controlador de 32 bits com oito núcleos de processamento, desenvolvido com tecnologia de 180nm. Esta variante experimental opera a 180MHz sem overclock, se bem que a frequência de relógio possa ser aumentada para valores até 350MHz. Em termos de memória RAM, o micro-controlador ostenta 512KB de memória partilhada e 4KB de memória dedicada a cada núcleo, totalizando 544KB. Para além do mais, um núcleo CORDIC partilhado permite fazer cálculos complexos de forma eficiente.

Contudo, o que faz o P2 destacar-se é funcionalidade dos "smart pins", ou pinos inteligentes. Cada um dos 64 pinos tem a sua máquina de estados, podendo os mesmos operar independentemente dos núcleos de processamento. Isso faz com que os últimos possam ser empregues noutras tarefas. Para além de poderem actuar como entradas e saídas digitais, os pinos podem ser configurados como DACs, ADCs, ou geradores de funções. O P2 também oferece suporte nativo para USB 1.1 e VGA, entre outros protocolos.

Interagindo com a placa P2 Eval. O programa residente na memória ROM do micro-controlador permite manipular os pinos.

É de notar que o P2 ainda não está na fase final de produção, e é possível que os primeiros integrados sejam comercializados apenas em Dezembro deste ano. Entretanto está previsto um segundo lote de micro-controladores para finais de Agosto, de acordo com informações oficiosas da Parallax. Eventualmente surgirão variantes com menos núcleos de processamento e memória, se bem que essa é uma possibilidade ainda em estudo.

Links:
Parallax: https://www.parallax.com/
Propeller 2 (desenvolvimento): https://propeller.parallax.com/

20/04/2019

Software melhorado para o gerador de funções GF2

Na sequência do post anterior, disponibilizo o software mais actual para o gerador de funções GF2, mais especificamente novas versões dos pacotes contendo os comandos de controlo e a interface gráfica. O código-fonte dos comandos de controlo foi melhorado de modo a que estes executem de forma um pouco mais eficiente. Todavia, a melhoria mais assinalável foi feita na interface gráfica, que agora permite ao utilizador guardar os parâmetros de geração de sinal num ficheiro XML, assim como carregar os referidos parâmetros do mesmo.

Versão 2.0 da interface gráfica. Esta nova versão da aplicação permite carregar e guardar definições de geração de sinal.

Os pacotes podem ser descarregados através dos links abaixo. Devo sublinhar que todo este software é aplicável à versão já existente do gerador de funções, não havendo quaisquer incompatibilidades.

Links importantes:
Comandos de controlo: https://app.box.com/s/wpp6...6eus
Interface gráfica: https://app.box.com/s/47yr...qvq2

08/04/2019

Brevemente: Gerador de funções GF2 (Rev. A)

No post de 10 de Julho do ano passado apresentei uma primeira versão do gerador de funções GF2. Entretanto verifiquei que, ao produzir um sinal com frequência superior a 2MHz e com uma carga de 50Ω na respectiva saída analógica, esta primeira versão do GF2 mostra um sinal com distorções na passagem por 0V. Ainda mais, essas distorções tendem a agravar-se com o aumento da frequência ou da amplitude do sinal produzido, independentemente da forma de onda que o mesmo possa ter. Concluí que tal fenómeno se deve a uma limitação do amplificador operacional OPA2830, que opera na etapa de amplificação final da saída analógica (consulte o post acima indicado para mais pormenores).

De modo a resolver o problema, optei pela substituição do referido amplificador operacional, que nesta nova revisão passa a ser do tipo LMH6612. Fiz outras modificações ao projecto, as quais não irei enumerar aqui. Porém, é importante frisar que a nova versão do gerador de funções pode ir até 8MHz no que concerne à geração de sinais sinusoidais, sem que se verifique qualquer distorção. A imagem seguinte ilustra uma comparação dos sinais produzidos pela versão original (sinal traçado a vermelho) e pela nova versão (sinal traçado a amarelo).

Comparação entre formas de onda: revisão 0 (a vermelho) 'versus' revisão A (a amarelo). Ambos os instrumentos estão a gerar sinais sinusoidais com frequência e amplitude definidas a 8MHz e 3Vpp respectivamente, e têm cargas de 50Ω nas suas saídas.

Feita esta breve introdução, espero lançar a nova revisão do projecto dentro dos próximos meses. Adianto que todas as modificações que o projecto sofreu já foram testadas e validadas, estando o processo de revisão praticamente fechado.

14/03/2019

Placa de desenvolvimento "Prop S"

Trata-se de uma nova placa de desenvolvimento baseada no micro-controlador Propeller P8X32A da Parallax. Em verdade, é equivalente à ultima revisão da placa Prop II, cujo projecto foi apresentado no post de 9 de Dezembro de 2016. Porém, a área desta nova placa apresenta-se significativamente mais reduzida, sendo possível encaixá-la numa placa de ensaio, restando ainda espaço suficiente para as ligações.

Placa de desenvolvimento "Prop S".

Placa Prop S em funcionamento, montada numa placa de ensaio. O LED indica que a placa está a ser alimentada.

O circuito é em tudo semelhante ao circuito da placa acima mencionada, nada apresentando de novo. Por esse motivo, seria fastidioso detalhar sobre o seu funcionamento. Pode sempre consultar o referido post para saber mais pormenores.

Lista de componentes:
C1/2/4 – Condensador cerâmico multi-camada 1µF 10V (0805);
C3 – Condensador cerâmico multi-camada 10nF 10V (0805);
C5-10/13 – Condensador cerâmico multi-camada 100nF 10V (0805);
C11/12 – Condensador cerâmico multi-camada 47pF 10V (0805);
D1 – Díodo Schottky FYV0704S;
D2 – Díodo Zener BZX84-B3V3;
D3 – LED Kingbright APT2012EC (ou KPT-2012EC);
F1 – Fusível PPTC 1210L020;
IC1 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2 – Regulador de tensão TPS73233 (TPS73233DBV);
IC3 – Conversor USB-UART FT230X (FT230XQ);
IC4 – Micro-controlador P8X32A (P8X32A-Q44);
IC5 – Memória EEPROM M24512 (M24512-DFMC6TP);
J1 – Conector USB Hirose ZX62D-B-5PA8;
J2-7 – Conector header macho de 5 pinos;
Q1 – Transístor MOSFET BSS138;
Q2 – Tirístor SCR S4X8BS;
R1 – Resistor de filme espesso 47KΩ±5% 1/8W (0805);
R2 – Resistor de filme espesso 150Ω±5% 1/8W (0805);
R3 – Resistor de filme espesso 82Ω±5% 1/8W (0805);
R4/5 – Resistor de filme espesso 27Ω±5% 1/8W (0805);
R6/7 – Resistor de filme espesso 4,7KΩ±5% 1/8W (0805);
S1 – Interruptor pulsador C&K PTS525SMG15J (PTS525SMG15JSMTR2LFS);
X1 – Cristal Abracon ABMM-6.000MHz-B2-T.


O layout da placa está disponível nos formatos brd (Eagle 7.7.0) e Gerber. Mais uma vez recomendo que a encomenda da placa seja feita através do OSH Park, dado que o respectivo layout foi concebido de acordo com as especificações deste serviço. Caso opte por outro serviço de fabrico, deverá confirmar que o mesmo suporta layouts de quatro camadas com furação mínima de 0,5mm.

A montagem deste projecto exige equipamento próprio. Todos os componentes SMD devem ser soldados por refusão com ar quente, utilizando pasta de solda e stencil. À semelhança de outros projectos, primeiro devem ser soldados os componentes da face superior, e só depois os componentes da face inferior, aplicando a quantidade de calor estritamente necessária. Os componentes through-hole soldam-se em último lugar.

Uma vez montada a placa, é necessário proceder à configuração do seu interface FT230X. Tal deve ser feito através da aplicação FT_Prog. O ficheiro de configuração para esta placa encontra-se na pasta "Firmware", que por sua vez está dentro da pasta do projecto. Sugiro que leia as instruções antes de iniciar a configuração.

Links importantes:
Diagrama do circuito (pdf): https://app.box.com/s/weu0...frzo
Diagrama do circuito (Eagle 7.7.0 sch): https://app.box.com/s/5ojq...onyz
Layout da placa (pdf): https://app.box.com/s/8lxs...gc83
Layout da placa (Eagle 7.7.0 brd): https://app.box.com/s/5g37...037t
Ficheiros Gerber: https://app.box.com/s/jskk...w2cp
Firmware (com instruções): https://app.box.com/s/14bt...msrd
Notas do projecto: https://app.box.com/s/3kz7...l5ij
Pasta contendo todos os ficheiros: https://app.box.com/s/4vbk...ycpt
Projecto no OSH Park: https://oshpark.com/shared_projects/cJ3LPoD1
FT_Prog: https://www.ftdichip.com/Support/Utilities.htm#FT_PROG

15/02/2019

Fonte de alimentação FAU201

Esta é uma fonte de alimentação muito semelhante à fonte FAU200, cujo projecto foi apresentado no post de 18 de Novembro do ano passado. De facto, convém frisar que este novo projecto derivou do projecto acima mencionado, tendo sido feitas modificações no sentido de melhorar a exactidão no que concerne à tensão de saída. Por conseguinte, a FAU201 ostenta uma exactidão muito superior, podendo mesmo ser considerada uma fonte de precisão. Não obstante, as restantes características são idênticas, tendo as mesmas protecções contra curto-circuitos e corrente excessiva.

Parâmetros de funcionamento:
– V d. mín. = 4,92V
– V d. nom. = 5V
– V d. máx. = 5,25V
– I L máx. = 200mA


Características eléctricas:
– I d. (V out = 2V, I L = 0mA) = 74,26mA
– I d. (V out = 2V, I L = 200mA) = 492,9mA
– P (V out = 2V, I L = 0mA) = 371,3mW
– P (V out = 2V, I L = 200mA) = 2,464W


Características da saída:
– Tensão máxima: 4,09V
– Incremento em tensão: 1mV
– Ruído (V out = 2V, I L = 0mA): 1,37mVrms
– Ruído (V out = 2V, I L = 200mA): 1,43mVrms
– Exactidão: ±(0,154% + 2,5mV)
– Regulação de carga: 1,72mV/A
– Corrente em curto-circuito (I SC): 258mA


Outras características:
– Coeficiente de temperatura da referência de tensão: 6ppm/°C
– Resolução do controlo de tensão: 12bit


Fonte de alimentação FAU201.

Tensão de saída a ser verificada com um multímetro. O valor da mesma foi definido para 2,5V.

O circuito é sui generis no que diz respeito à topologia da etapa de saída. A salientar, os resistores R7, R8, R9 e R10 possibilitam a compensação da resistência dos fios que ligam aos terminais de saída. Note que estes resistores constituem dois divisores de tensão: um para o terminal positivo, e outro para o terminal negativo. A tensão efectivamente medida nos terminais de saída retorna através de J2. Por si só, cada divisor de tensão tem o efeito de compensar a queda de tensão verificada no respectivo fio de ligação. Desta forma, a tensão medida nos terminais de saída permanece bem regulada e independente da corrente de carga.

Porém, mesmo considerando a topologia da etapa de saída e somando-se o facto de os resistores R7 a R10 serem de grande precisão, a exactidão desta fonte de alimentação deve-se à escolha de outros componentes. O conversor digital-analógico em IC9, do tipo LTC2640ACTS8-HZ12, foi escolhido por ter uma exactidão excepcional. Note que este integrado está preparado para utilizar o REF3440 (IC8) ao invés da sua referência de tensão interna, menos exacta. Por seu turno, o amplificador operacional OPA703 (IC10) apresenta uma tensão de offset de entrada muito reduzida.

De resto, o circuito implementa soluções similares às empregues no circuito da fonte de alimentação FAU200. A protecção contra curto-circuitos à saída é exercida pelo transístor em Q3, cuja base fica polarizada quando se verifica uma queda de tensão superior a cerca de 0,65V no resistor R12. Quando o transístor anterior conduz, limita a tensão na base de Q2, o que faz com que a corrente de saída da fonte fique também limitada. Note que o valor limite da corrente da saída, de 258mA, é ditado pelo valor do resistor em R12.

Circuito da etapa de regulação.

O conversor digital-analógico (IC9) é controlado por SPI, por via do isolador digital ADuM1310 em IC7. Tal controlo é feito pelo interface CP2130 em IC4, um conversor USB-SPI, situado a montante do referido isolador. É importante salientar que a massa da etapa final está galvanicamente isolada da massa que é comum ao anfitrião USB, para que a fonte possa ser utilizada como referência flutuante. Vem daí a necessidade do isolador digital.

A alimentação da totalidade do circuito é feita por USB. O conversor DC-DC em IC5, do modelo RI3-0509S da Recom, converte os 5V provenientes do anfitrião para os 9V necessários à etapa de regulação final. Este conversor DC-DC tem isolamento galvânico, sendo necessário o condensador em C10 para acoplar as massas em AC por forma a minimizar o ruído à saída da fonte. À saída do dito conversor, o filtro constituído por C11, C12 e L2 reduz o ruído de comutação.

Esta fonte de alimentação inclui as habituais medidas de protecção contra sobre-tensões e descargas electrostáticas. O dispositivo PolyZen em IC1 protege o circuito contra sobre-tensões vindas da alimentação USB, para além de actuar em caso de corrente excessiva. Por sua vez, IC2 e IC3 oferecem protecção contra transientes nas linhas de dados do barramento USB. À saída da fonte, D5 suprime transientes originados por cargas de natureza indutiva. Por outro lado, D4 providencia um caminho de descarga quando a carga é predominantemente capacitiva.

Lista de componentes:
C1/2/4-6/16/17/20-23 – Condensador cerâmico multi-camada 100nF 10V (0805);
C3/13/18 – Condensador cerâmico multi-camada 1µF 10V (0805);
C7 – Condensador electrolítico de nióbio NOJA475M006 (NOJA475M006RWJ ou equiv.);
C8/9 – Condensador electrolítico de nióbio NOJA475M010 (NOJA475M010RWJ ou equiv.);
C10 – Condensador cerâmico multi-camada 470pF 1KV (1206);
C11/12/15 – Condensador cerâmico multi-camada 2,2µF 10V (0805);
C14 – Condensador cerâmico multi-camada 10nF 10V (0805);
C19 – Condensador cerâmico multi-camada 470nF 10V (0805);
C24 – Condensador electrolítico de nióbio NOJC476M010 (NOJC476M010RWJ ou equiv.);
D1 – LED WP1503CB/ID;
D2 – LED WP1503CB/YD;
D3 – LED WP1503CB/GD;
D4 – Díodo rectificador S1A;
D5 – Díodo de comutação rápida MMSD4148;
IC1 – Circuito de protecção PolyZen ZEN056V075A48LS;
IC2/3 – Circuito de protecção TVS SP4021-01FTG;
IC4 – Conversor USB-SPI CP2130 (CP2130-F01-GM);
IC5 – Conversor DC-DC isolado RI3-0509S;
IC6 – Regulador de tensão LP2985-50 (LP2985-50DBV);
IC7 – Isolador digital ADuM1310 (ADuM1310ARWZ);
IC8 – Referência de tensão REF3440 (REF3440IDBV);
IC9 – Conversor digital-analógico LTC2640ACTS8-HZ12;
IC10 – Amplificador operacional OPA703 (OPA703NA);
J1 – Conector USB Molex 67068-9001;
J2 – Conector header macho de 2 pinos;
J3 – Bloco de terminais de 2 bornes;
L1 – Indutor de potência XFL3012-103ME (XFL3012-103MEB ou XFL3012-103MEC);
L2 – Indutor de potência XFL3012-223ME (XFL3012-223MEB ou XFL3012-223MEC);
Q1 – Transístor MOSFET de potência FDN327N;
Q2 – Transístor bipolar de potência MJD31C;
Q3 – Transístor bipolar MMBT3904;
R1 – Resistor de filme espesso 1MΩ±5% 1/8W (0805);
R2/3 – Resistor de filme espesso 4,7KΩ±5% 1/8W (0805);
R4/5 – Resistor de filme espesso 82Ω±5% 1/8W (0805);
R6 – Resistor de filme espesso 180Ω±5% 1/8W (0805);
R7-10 – Resistor de filme fino 1KΩ±0,05% 1/8W (0805);
R11 – Resistor de filme espesso 470Ω±5% 1/8W (0805);
R12 – Resistor de filme espesso 2,7Ω±5% 1/2W (1210).


Como de costume, o layout da placa está disponível nos formatos brd (Eagle 7.7.0) e Gerber. Aconselho a que a encomenda da placa seja feita através do OSH Park, uma vez que o seu desenho foi concebido tendo em conta as especificações deste serviço. Contudo, pode utilizar outro serviço de fabrico, desde que o mesmo suporte layouts de quatro camadas com furação a partir de 0,5mm. O stackup e materiais não têm de corresponder aos especificados pelo OSH Park.

A montagem do projecto necessita de equipamento especializado. A soldadura de todos os componentes SMD deve ser feita por refusão com ar quente, utilizando pasta de solda e stencil. Em primeiro ligar são soldados os componentes SMD da face superior, e só depois os da face interior, tendo sempre o cuidado de aplicar a quantidade de calor adequada. Os componentes through-hole são soldados em último lugar, servindo para tal um simples ferro de soldar. Por fim, é necessário fazer as ligações da placa aos terminais, seguindo as indicações constantes nas notas do projecto.

Exemplo de cablagem para os terminais de saída.

À semelhança de outros projectos, a caixa recomendada é a Hammond 1457C801. Trata-se de uma caixa em alumínio anodizado e com tampas lacadas a pó preto. Em alternativa, pode optar pela caixa 1457C801BK do mesmo fabricante, que apenas difere da anterior por ter o corpo inteiramente lacado a pó preto. Em todo o caso, as tampas devem ser trabalhadas de acordo com o guia de furação. É importante referir que a furação do painel frontal foi feita para os bornes da série TP1 da Cliff.

Montada a fonte de alimentação, deve-se proceder à configuração do seu interface CP2130. Tal só é possível em Linux, após ter instalado o programa de configuração fornecido no pacote "fau201-r0-conf-1.0.tar.gz". Consulte as notas do projecto para saber mais detalhes. Todos os ficheiros e pastas relevantes, incluindo software, estão disponíveis na pasta do projecto.

Links importantes:
Diagrama do circuito (pdf): https://app.box.com/s/fjsw...v9at
Diagrama do circuito (Eagle 7.7.0 sch): https://app.box.com/s/lour...rqfm
Layout da placa (pdf): https://app.box.com/s/9ybu...251k
Layout da placa (Eagle 7.7.0 brd): https://app.box.com/s/vhbp...wbgo
Ficheiros Gerber: https://app.box.com/s/q683...h7ua
Guia de furação: https://app.box.com/s/5itb...8413
Drivers (Windows): https://app.box.com/s/q5oy...yxjv
Software (Linux): https://app.box.com/s/q7oc...6z7c
Notas do projecto: https://app.box.com/s/r6z9...14gi
Pasta contendo todos os ficheiros: https://app.box.com/s/sc7c...1jkz
Projecto no OSH Park: https://oshpark.com/shared_projects/H12W2hUs