miércoles, 26 de agosto de 2020

ARDUINO -Trazador curvas de transistores

  Página principal

ARDUINO
Trazador curvas de transistores



 Versión  posterior realizada en Gambas (VB linux)

https://seta43.blogspot.com/2020/10/trazador-de-curvas-de-transistores.html

_____________________________________

Hace muchos años en la revista Elektor salió un artículo explicaba como realizar un trazador de curvas de transistores.
Las curvas se podían visualizar en un osciloscopio, y era bastante sencilla su realización.
Como era sencilla su realización, lo monté y pude ver las curvas en mi osciloscopio.

Circuito de la revista Elektor.

Han pasado muchos años desde entonces, pero su diseño sencillo me cautivó.
El problema de visualizar las curvas en el osciloscopio es que no se podían comparar unas con otras, además no se podían imprimir.
Ahora es fácil con los microcontroladores capturar los datos y poder guardarlos.
Me puse manos a la obra y adapté el circuito para poder capturar los datos con el arduino.

Circuito trazador de curvas de transistores con arduino.

Voy a explicar un poco el funcionamiento del circuito.
El transistor Q2 produce una corriente constante que hace cargar linealmente el condensador C1, una señal de diente de sierra lineal.
Esta señal que toma valores desde 0 a 5 V, se aplica al colector del transistor a probar mediante el transistor Q1.
Para descargar la carga del condensador se utiliza el transistor Q3.
La carga y descarga del condensador se realiza con el Pin  D13 del arduino.
Para generar las diferentes intensidades que se le aplica a la base del transistor de prueba, utilizamos los Pin D2-D3-D4 del arduino.
Con las diferentes combinaciones de los Pin D2-D3-D4 podemos mediante resistencias y diodos aplicar una intensidad al transistor de prueba. Al ser 3 bits las combinaciones el número de curvas son 8.
La intensidad se mide mediante la resistencia R6, y es capturado  con el Pin A0.

Circuito montado.

En la parte de programación en el Arduino el funcionamiento es el siguiente:
-El Pin 13 se pone a 1, con lo que conseguimos dos cosas, descargar el condensador C1 y anular el generador de intensidad constante.
-El pin 13 se pone a 0, anulamos la puesta a cero del condensador, y activamos la cargar linealmente el condensador C1 .
-Mediante el Pin A0 medimos la corriente en el transistor 10 veces durante la carga del condensador.
-El paso anterior se repite 8 veces, con las diferentes intensidades en la base del transistor de prueba.
-Terminadas la medidas se mandad mediante el puerto serie.

Para representar las curvas se me ocurrió hacer un programa, pero me lo pensé dos veces y he utilizado una hoja de cálculo con representación gráfica. Solo tienes que copiar datos procedentes del arduino y pegarlos en la hoja de cálculo. Es fácil y quedan bastante bonitas, además de ahorrarme unas horas de programación.


Copiado de datos desde el terminal.


Pegado de datos a la hoja de cálculo. (BC547)



Alta ganancia

Darlington



Conclusiones y notas.
Después de muchas medidas con diferentes transistores y con iguales modelos pero de diferentes fabricantes he obsevado que:
-Aunque sea el mismo tipo (BC547), las curvas son muy diferentes entre los diferentes fabricantes.
-Hay transistores bastante especiales, 2SD2375 con una ganancia enorme.
-Los Darlington como se puede ver tienen otro tipo de curvas, y su tensión B-E es de 1.4V.
Mi conclusión es que se fabrican lotes de transistores comunes, y dependiendo de los resultados en los test, los numeran con un numero que se adapte a las tablas standard. Eso creo que pasaba en el pasado, ahora creo que son más precisos a la hora de su fabricación.

Los transistores no funcionan igual con tensiones más altas  de 5V, pero no he querido complicar el circuito para poder alimentarlo a partir del Arduino.
También se podría hacer que la entrada A0 digitalizase más rápido además de con más ganancia, pero he querido usar técnicas normales del arduino.
Otra forma de medir la señal sería medir en la resistencia  R7 e invertir la señal, pero he creído no necesario complicar las cosas.

Es un sencillo montaje que permite observar el funcionamiento de los diferentes transistores, no se pretende mucho más, no se quiere hacer un instrumento de medida exacto.

PROGRAMA


Saludos.
Juan Galaz




jueves, 13 de agosto de 2020

O.T.L.A. Project Amplificador para ZXSpectrum

O.T.L.A. Project
Amplificador para ZXSpectrum


Todos tenemos un pasado, y en mi pasado está el ZXSpectrum, fue mi primer ordenador.
El estar cargando los programas desde las cintas es una experiencia que la gente joven desconoce.
En el  tiempo que tardaban los programas en cargar se podía uno hacer un bocadillo, y aún sobraba tiempo.
Y estábamos contentos si no se producía ningún error de carga, las cintas alguna vez daban problemas.
El caso que en estos días he estado cachareando con el Spectrum, y en mi anterior montaje había realizado un cargador de programas desde una SD. zxard.html
Como una cosa traen a otra, mirando por internet encontré un programa que prometía reducir el tiempo de carga de los programas del ZXSpectrum a 30 segundos. Esto me parecía bastante difícil, pero había que probarlo.
El proyecto se encuentra en: https://code.google.com/archive/p/otla/wikis/ProyectoOtla.wiki
Existe una página que explica bastante bien todos los pasos:
https://sites.google.com/site/hyperkingproject/tutoriales/modificaciones/compresiondejuegosdespectrumaaltavelocidadotla

Para crear el audio debemos utilizar el programa llamado O.T.L.A. que transforma diferentes formatos a un fichero de mp3.

El programa funciona en Windows, aunque yo lo he probado en Linux con Wine y funciona perfectamente.
Soporta varios formatos, pero el que menos problemas me ha dado fue el Z80, que es una imagen de memoria.
Como podéis observar no solo sirve para el Spectrum, funciona para MSX, CPC y Z81.
Existen numerosas opciones, pero yo no he tocado nada respecto a las que vienen prefijadas.
Cargamos el fichero en formato Z80 y luego lo transformamos en un fichero MP3.
El fichero ya lo podemos utilizar tanto con la salida de audio del PC como con un MÓVIL o TABLET.

Aquí me encontré el primer problema, los niveles de audio.
En algunos modelos de PC o MÓVIL  las salidas de audio no suele superar 1V, esto ya pasaba con algunos cassetes que no servían para los Spectrum. He tenido que crear un adaptador/amplificador de niveles de audio, solo emplea un transistor, condensadores y resistencias, es el típico amplificador.
Para la alimentación he utilizado un conector USB, de esta forma puedo utilizar un cargador común de Red,  o una POWER-BANK como en mi caso.




Circuito montado.


También podéis mirar en otros modelos de móvil si la salida tiene suficiente nivel de audio, yo he encontrado uno que tenía retirado. WIKO lubi3 , se puede encontrar desde 15€ y funciona de maravilla para reproducir MP3.


Las pruebas son sorprendentes, nunca pensé que se pudiera cargar tan rápido los programas, 30 segundos.
No he probado a modificar ninguna opción, me he quedado paralizado por la sorpresa, me sobra cualquier otra prueba.
He reproducido los MP3 generados tanto en el PC como en un MÓVIL funcionando perfectamente, eso sí, debemos de ajustar los niveles de audio, pero eso ya nos pasaba cuando utilizábamos las cassettes.
LARGA VIDA AL ZX SPECTRUM

 


otla_bin_win_2.2.0.zip

VIDEO DE LA PRUEBA

Saludos.
Juan Galaz


Bibliografía:

https://code.google.com/archive/p/otla/wikis/ProyectoOtla.wiki
https://sites.google.com/site/hyperkingproject/tutoriales/modificaciones/compresiondejuegosdespectrumaaltavelocidadotla

domingo, 2 de agosto de 2020

TZXDuino Arduino - ZXSpectrum


TZXDuino
Arduino - ZXSpectrum


En los años 80 compré mi primer ordenador, el ZXSpectrum.
Era mi primer contacto con los ordenadores, y después de muchos años aún sigo con la programación.
Aprendí  a programar en Basic, por lo cual tengo mucho cariño al Basic y sigo pensando que es muy buen lenguaje de programación.
El oír el audio de los programas cargando en el ordenador, aún me emociono.
El otro día descubrí el proyecto TZXDuino, era una especie de casete que transforma los ficheros TAP en audio que lee el Spectrum.
Es fácil de realizar y bastante barato.  Se necesita un arduino, LCD, SD, 5 botones, y algunos componentes mas.
El proyecto original utiliza un amplificador LM386, como no tenía este Chip, he modificado el esquema y utilizo un transistor común.
El proyecto original está en: https://github.com/sadken/TZXDuino
También se han creado muchos proyectos paralelos para cargar programas de MSX,  Amstrad, C64, etc...
Este montaje solo lo he probado en ZXSpectrum, funcionando perfectamente.
También he cambiado el módulo adaptador SD por unas resistencias que adaptan los niveles de la SD al Arduino.
Como podéis ver lo he modificado para ser lo más simple y batato posible.



Con el adaptador SD







Con las resistencias adaptadoras de voltajes.
Se  repite el esquema debido a que los esquemas que se hacen con  Tritzing son bastante malos.

He colocado un puente con un condensador para filtrar la señal de salida, en el caso de Spectrum utilizado funciona igual, pero en otros modelos puede ayudar a leer mejor los programas.
Me hubiese gustado colocar un potenciómetro en vez de las dos resistencias, pero no he querido complicar el circuito.

Con el filtro.

sin el filtro.


Montado todo en un circuito impreso.


Funcionando el circuito.

Tenemos que colocar todos los ficheros TAP en el directorio raíz de la tarjeta SD.
Con los pulsadores de circuito seleccionaremos el fichero correspondiente que se quiere reproducir.
Existe un menú con opciones que podremos seleccionar para las diferentes configuraciones.
Como hay varias versiones del TZXDuino, incluyo los que he utilizado en este montaje, y es la que he probado en el Spectrum..
La alimentación se puede realizar de diferentes formas, desde el USB del arduino, con adaptador de un cargador común a la Red,  con una POWER-BANK como en mi caso. También mediante una pila de 9V colocada al pin  del arduino Vin,  (admite entre 5 y 12V).
El consumo del circuito está entre los 30 a 35 mA.

PROGRAMA





VIDEO

Saludos.
Juan Galaz


Bibliografía:

https://github.com/sadken/TZXDuino
https://github.com/rcmolina/MaxDuino_v1.56
https://auamstrad.es/hardware/conoce-el-maxduino/
Colección de ficheros TAP  http://biotoxin.speccy.org/p.html