# Dudas y consejos con hacer un PIC-osciloscopio



## gongonni (Oct 20, 2010)

Hola! Soy bastante aficionado a la electrónica, pero sé bastante de programación y estoy estudiando ingenieria industrial superior. Os explico, mi idea principal por ahora es de hacerme con las herramientas básicas de medición y testeo pues me empiezan a hacer falta, ya no me basta con un "simple" multimetro digital..

Asi que busqué y recopilé información (y esquemas) de los aparatos y me encontré con proyectos de armado de osciloscopios un poco interesantes. Pero siempre tenian "inconvenientes" puesto que los diagramas eran muy complejos (y eso se traducia en el coste del aparato), o demasiado simples, o de especificaciones insuficientes... Asi que mis ánimos decayeron un poco puesto que el osciloscopio es bastante necesario para según qué cosas... Ya creía que hacer un "buen" osciloscopio sin ser demasiado caro era cosa imposible, me encontré con éste intento de osciloscopio. Los chicos se ve que lo consiguieron aunque no consiguieron todos los objetivos propuestos. Su idea era de un osciloscopio de 20Mhz hecho por partes (conversor ADC por un lado, pic por el otro, memoria, ...) y creo recordar que solo puedieron llegar a medir ondas de hasta 4Mhz u 8Mhz... Segun dicen uno de los problemas eran las propias interferencias que comportaba trabajar con éstas frecuencias.

Asi que me gustó la idea, si bien en un principio es bastante barato (y más si contamos que supuestamente podemos conseguir parte del material a través de SAMPLES gratuitos de webs) vi que como mínimo podria tener un osciloscopio algo decente de hasta 4Mhz. Puesto que 4Mhz ya eran bastante comparado con las tarjetas de sonido de los PCs (creo que no superan 100Khz).

Vi la fecha de publicación: Septiembre de 2006 y me propuse hacer un proyecto muy similar, siguiendo un poco el esquema, pero con componentes actuales, puesto que la electronica a avanzado un poquito más hasta el dia de hoy. Asi que he obtenido algunos resultados un tanto interesantes, para los cuales necesito de vuestra enorme sabiduría!! 

Asi que propongo varias formas para armar un osciloscopio simple pero potente, aunque antes, las dudas, son bastante generales, pero ya que no dispongo de mucho tiempo (se acercan exámenes en la universidad ) voy a pediros un poco de piedad en las respuestas:
1.- No sé como encajar muy bien los conceptos de frecuencia de oscilacion interna del PIC, frecuencia de trabajo del PIC con los MIPS. Eso aplicado a un programa.
Si me traen un PIC con... pongamos una velocidad de reloj de 8Mhz y 12MIPS pudiendo llegar a una velocidad máxima de... 48Mhz, creo saber (corregidme por favor) que la velocidad en que se ejecutarán las instrucciones dentro del PIC será de Ttrabajo = Tosc/4 osea 2Mhz. Si a eso le añadimos que el PIC ejecuta 12 Millones de instrucciones por segundo, eso hace que pueda ejecutar 2M*12M = 24*10^12 instrucciones?

La ejecucion de esas instrucciones, que están en un programa, ¿son cada línia de programa o no tiene por qué?

2.- Creo recordar que si en vez de utilizar un oscilador interno (del propio PIC) utilizamos uno externo (ejemplo los 20Mhz máximos), la relacion de Ttrabajo y Tosc es diferente a la anterior, estoy en lo cierto? sabeis cúal es?

3.- Si un PIC contiene un ADC de.. pongamos 12bit@100 Ksps y además un módulo USB integrado, y quiséramos coger las muestras del ADC y enviarlas por usb al PC, a qué velocidad teórica necesitariamos enviarlas? porque... 1 muestra serian 12 bits, entonces:
100Ksps*(12bits/muestra) = 1,2Mbits/s ??? paso por alto alguna cosa? La pregunta va dirigida para saber y sopesar otras posibilidades: El puerto USB será capaz de enviar TODAS las muestras al PC? y el SPI? I2C? RS-232 ?? más adelante veréis por qué.

4.- Si por casualidad se le añadiera un LCD, se podria refrescar la pantalla "en tiempo real" o "sincronizado" (sin un retardo demasiado grande) con la adquisición de las muestras?

ESAS DUDAS son bastante cruciales. Ahora voy a deciros unas cuantas combinaciones para lo que podria ser mi futuro Osciloscopio !!! allá vamos!
*1.-* Siguiendo el esquema propuesto en la web: *ADC + Memoria + PIC(con USB)->PC* con componentes actuales: Buscando ADCs en Texas Instruments, he podido comprobar que se puede conseguir ADCs bastante buenos y con velocidades de adquisición muy altos, el ADC no es problema entonces. La memoria faltaria por determinar puesto que no domino muy bien el tema y no sé como se hace la comunicación con las memorias. Pero uno de los problemas es el PIC que transmite los datos al PC. En el supuesto caso que pudiésemos instalar y armar sin problemas de ruidos un ADC de cualquier velocidad, ésta vendria limitada por los actuales PIC que disponen de USB (máx 48Mhz) y siguiendo un criterio (que no recuerdo el nombre pero que viene a decir "la velocidad de muestreo debe ser como mínimo 2 veces la de adquisición") y teniendo en cuenta la relacion entre Ttrabajo y Tosc, la velocidad máxima teórica del ADC seria de:
48Mhz*(1/4)*(1/2) = *6 Mhz* por tanto, viene limitada por la frec. de trabajo del PIC si se desea hacer "bien"..

2.-Modificando el esquema propuesto en la web: *ADC + Memoria + PIC(sin USB)->PC*
Como hemos visto, los PICs CON USB, no sobrepasan de 48Mhz (adelante, buscad!) y eso nos limita el ADC. Asi que otra posibilidad seria de hacer uso de otras vias de comunicación con el PC: RS-232, ... y utilizar PICs con velocidades más altas. Pero no sé que tasa de transferencia máxima soportan dichas vias de comunicación (tampoco sé si los calculos hechos por mi más arriba son correctos, de aqui preguntar primero  tan solo soy un aficionado!)

3.- Partiendo desde cero: *PIC(+ADC bueno) + (USB, RS232, ...)->PC*
Si, en el link que os he puesto más arriba incitandoos a buscar PICs, podeis ver que hay un PIC un poco especial (lo sé me he tragado todo el PDF...) el pic en cuestión és este: *dsPIC33FJ16GS502 *que tiene varias cosas a destacar:· Frec Interna de 7,37Mhz, Frec Máx de *120Mhz* y *40 MIPS*
· *2x* ADC de 10 bits @ *4 Msps*
· Encapsulado *SPDIP* !!!
· 4 DAC de 10 bits @ 640 Ksps (que no vienen al caso, pero ya que os digo lo + importante... )​Con él podemos reducir el circuito de los chicos de la web a una "simple" funcion dentro del PIC y transmitirla al PC... ¿ cuál es el problema? que no tiene USB. Por lo que se abren de nuevo las posibilidades anteriores: Combinación con otro PIC que sí tenga, utilización de otras vias de comunicación (RS232, otro pic con Ethernet, ...), un driver de USB (existen?  )

Asi que ya veis por dónde van los tiros: El *dsPIC33FJ16GS502 *nos ofrece un ADC nada despreciable de 4Msps, que vendrian a ser 4Mhz? lo que consiguieron dentro de un chip programable ! 

Solo faltaria ponerle una pantalla y osciloscopio portable ! Pero de momento me conformo con poderlo transmitir al PC... y hacer un programa específico para ello.(Descargar al PIC del trabajo de procesamiento y tratamiento de la información.. si fuera el caso)

¿qué opinan? Les gusta la idea?


----------



## Pablet (Oct 22, 2010)

vaya pedazo de pregunta!!!! pero bueno voy a intentar resolverte algunas dudas.
un pic, y casi cualquier microconrolador tarda en ejecutar una instrucción 4/Fosc (s), es decir, con un reloj de 4MHz ejecuta cada instruccion en 1us, pero cada instruccion de codigo ensamblador. lo de las MIPS no lo he llegado a entender nunca porque un pic con un reloj de 8MHz puede ejecutar en un segundo 2 millones de instrucciones. .  osea. .  2MIPS, asi que eso se queda en el aire. y supongo que dara lo mismo si utilizas oscilador interno o externo ya que el oscilador interno es un bloque  es como si lo pusieras fuera pero esta dentro y puedes seleccionar un postescalar.
En cuanto a las memorias, todas funcionan con comunicacion serie sincrona, i2c en su mayoria, aunque tambien las hay por SPI. no tendras problema porque casi todos los pics incorporan estos protocolos.
el lcd si que se podria poner pero ello implica mas codigo. .  mas instrucciones. .  menor velocidad de lectura
en cuanto al adc, la formula esta 48Mhz*(1/4)*(1/2) = 6 Mhz no es correcta, ya que el pic no tarda solo un ciclo de reloj en leer el puerto, como mínimo tiene que guardarlo en el acumulador, y del acumulador a la variable, con lo que son 2 instrucciones y esa frecuencia se reduce a la mitad, ahora debes tener en cuenta que tu código no va  atener solo esas dos instrucciones, pues debes enviarlas, visualizarlas, tratarlas. . .  así que esa velocidad de reducira a unos cientos de kHz. . . . de todas forma en el articulo ese hay algo extraño, dice que la velocidad de muestreo de 8MSPS viene limitada por la frecuecia de oscilación de 8MHz. . .  quieren decir que con un oscilador de mas frecuencia conseguirían medir frecuencias mayores?? realmente si han conseguido lo que dicen es un muy buen trabajo. .  en fin
ahora vamos a hablar de cosas serias, el dsPIC33FJ16GS502, este aparato ya no es técnicamente un micrcontrolador, sino un dsp, funciona a 16 bits, una frecuencia de oscilación bastante mas grande y permite ejecutar acciones en paralelo. en internet hay bastantes proyectos de osciloscópio que funcionan con dsps. en cuanto al tema de que no tiene usb no es un problema muy grande, ya que existen integrados como el MCP2200 que convierten el protocolo rs232 en usb. lo de la pantalla se ira viendo. .  jaja espero haberte despejado algunas dudas.
Un saludo


----------



## gongonni (Oct 23, 2010)

gracias! me has ayudado bastante! ahora podré ser más realista frente a  los cálculos y al diseño del circuito. Voy a ver el MCP2200 que me  dices.

En qué se diferencia un microcontrolador con un dsp? Si dices que puede  ejecutar acciones en paralelo, puede servirme muchísimo a la hora de  tratar la información. Aunque, si debo comunicarme a través de RS232  para convertirlo en usb... a qué velocidad máxima puede transferir el  RS232?

Saludos!


----------



## Scooter (Oct 23, 2010)

La frecuencia del sistema suele ser un submultiplo de la frecuencia de reloj, pero eso no siempre es así, hay microcontroladores de 1 ciclo y los hay con multiplicador interno que con 8MHz hace 40MIPS.
Por otro lado, el conversor suele ser lento, del orden de 1/(nº de bits) * frecuencia, si además el osciloscopio es de varios canales.... pues divides por el número de canales, aunque maxim tiene un conversor de 8 entradas con 8 conversores, en lugar de un conversor y un multiplexor de 8 entradas.
Osea que hay que buscar un conversor externo, preferentemente flash converter, que no son nada baratos. Los flash hace una conversión instantánea.
Eso o usar el adc interno y hacer un osciloscopio "hasta donde se llegue".

El RS232 suele llegar a unos 128kbps que son unos 12 ó 13 KB por segundo. Los 256Kbps no le suelen sentar bien al rs232 ni a sus drivers, léase max232 ó 233 aunque es probable que funcione. Eso daría unos 24KB por sgundo, que no está mal si consideramos que el osciloscopio toma las muestras y solo manda un "pantallazo" al PC. Si tomas 1024 muestras a 16 bits, dos canales salen 4KB osea que lo trasnmite al PC en 0,20" que tampoco es insufrible.

Los conversores rápidos de maxim:
http://para.maxim-ic.com/en/search.mvp?fam=fast_adc&tree=adconverters

Además está el tema del encapsulado que probablemente no sea "hobbista~compatible"


----------



## rodri_go100 (Oct 25, 2010)

Siendo que es un proyecto en el que tu te has embarcado, tu sabras si te es rentable el gasto de tiempo y dinero que vas a hacer, porque hoy en dia con el acceso que tenemos a comprar cosas en China directamente, un osciloscopio funcional y bastante decente digital de 20Mhz y 500MSa/s sale por unos 200€, esto te lo digo porque yo empecé igual, con ganas de hacerme un osciloscopio y al final por cuestiones de tiempo, decidí comprar uno digital en China, y de momento estoy muy contento con el.

Bueno, solo queria decirte eso, un saludo


----------



## gongonni (Oct 25, 2010)

No tengo 200€ para gastarme... ése es el motivo por el cual estoy buscando algo BBB (bueno, bonito, barato)
Es un proyecto un poco a largo plazo, puesto que todavía debo aprender a manejar el usb del PIC, etc. Por eso este proyecto tambien me sirve para eso, para aprender. Aunque gracias por la recomendación !


----------



## seaarg (Oct 25, 2010)

Bueno, yo hice mi experiencia y te la cuento:

1)- Consegui un ADC tecnologia flash de 80msps como sample en Analog Devices (TI tambien tiene uno de 40msps muy interesante) No recuerdo los nros ahora. Creo que era AD80100 o algo asi.
2)- Saque de una lectora de CD para PC, una memoria SRAM de 32Kbytes
3)- Compre 2 contadores CD4040, los conecte a la memoria (uno entero y algunos bits del otro)
4)- De unos motherboard viejisimos, saque un par de transceivers 74F245. Uno lo conecte desde la memoria al ADC, y el otro, desde la memoria al puerto paralelo de la PC. Creo que hay de estos en lectoras tambien, no recuerdo.
5)- Con un pic 16F628 y unas compuertas nand, controle todos estos componentes para hacer lo siguiente:

a)- Con una señal de reloj a 40MHZ (oscilador a cristal integrado, tambien obtenido de una placa de PC 386) que comanda todo el sistema, excepto el micro, sampleo las muestras del ADC y almaceno en memoria. La misma se llena en un cortisimo tiempo (ms). O sea, obtengo 40msps (sampleo una señal de 4mhz en 10 puntos si quisiera) Teoricamente podria llegar a 80msps pero el circuito no se la aguanta 
b)- Cuando el PIC recibe el estado alto que desbordo el contador, por medio de las nand detiene la captura, resetea los contadores, cambia los transceivers y empieza a mandar datos a la PC por medio del puerto paralelo (1Mbyte/s como mucho, con suerte).

Por supuesto, antes del ADC tengo una etapa con operacional TL074, fuente partida, llaves, etc. que acondicionan la señal.

Con esto, y un programa hecho por mi en visual basic 6, usando librerias de DirectX, pude hacer un osciloscopio funcional de unos 4mhz maximo (en realidad mas pero se deforma la señal por falta de puntos de sample... se corrige con mas velocidad).

Para que te des una idea, esto me da una pantalla por segundo aproximadamente, y la verdad que me sorprendio el resultado, excepto por una falla que tuve en el sistema de trigger y que hace que se descoordine todo.

Tengo planes y los componentes ahi para hacer la version USB, que sera muchisimo mas rapida en transferencia hacia la PC, con un proceso de captura mejorado. Pero falta tiempo para hacerla 

RS232, olvidalo, demasiado lento. Puerto paralelo es apenas aceptable.
Por el tema componentes SMD, no te asustes... son muy faciles de soldar con un poco de maña. El ADC y unos inversores en mi caso son SMD y de los mas chiquitos! Los solde a lo bruto y despues limpie con malla dessoldante, quedan optimos.

Con todo esto, lo que pretendo es darte animos, comentarte mi experiencia y si te puedo ayudar en alguna idea o duda que tengas, pregunta que si la se la contesto.

Ah! un truco para optimizar velocidad: Que la PC le diga al micro "basta" en la transferencia cuando ya lleno su pantalla. Acelera muchisimo las cosas.

Ejemplo: Mi pantalla creo que era de 800 pixeles de ancho, entonces, segun la escala hdiv del osciloscopio eran la cantidad de samples a solicitar al PIC. El PIC permitia llenar los 32k de la SRAM, pero a la PC le transferia los necesarios para llenar una pantalla nomas. (800 en maxima resolucion, 1600 en una escala del doble, etc.)


----------



## Scooter (Oct 25, 2010)

Sigue el esquema de searg, pero para ahorrar mas conecta la memoria al puerto paralelo, haces un doble acceso con unos 74xx245...
Yo tengo 512kB de sram de unos 40MHz de la caché de dos 486, de todos modos comprar 1MB de sram no subirá mucho.

Usa la tarjeta de sonido como osciloscopio, pones un par de operacionales para aislar un poco, o un par de amplificadores ópticamente aislados para aislar un mucho...


----------



## gongonni (Oct 25, 2010)

A eso me refiero, a fabricar un osciloscopio "decente". Con electronica sencilla no creo que podamos llegar muy lejos, pero más que unos 10Khz... seguro que si (hice un curso de programación robótica y "Pololu" utiliza un programador AVR con un PIC18F14K50... viene con un programa llamado "SLOscope" que permite funcionar como si fuera un osciloscopio de 10Khz... es el ADC del PIC en otras palabras) Éste no me sirve para visualizar ciertas frecuencias.. Estuve montando un generador de ondas, y las ondas de poca frecuencia las mostraba, pero las altas, no. Asi que no pude terminar de armarlo porque no sabia si funcionaba correctamente (el generador de ondas me refiero) Asi que hasta que no tenga un osciloscopio un poco decente, no podré terminar de hacer algunos proyectos que tengo.

Además, tengo guardado por casa TODO de electronica reciclada. tengo CDs, disqueteras, placas base, módulos de RAM, Fuentes de PC, tarjetas de audio antiguas, ... hasta un televisor.  Seguro que encontraré componentes. Tu utilizaste una SRAM de una lectora de CD de 32Kb, serviria algunos chips de RAM del PC?? la mayoria que tengo es antigua, te hablo de SDRAM.... aqui mismo tengo dos módulos que me encontré tirados por la calle de SDRAM. Cada chip es de... "2 Banks x 1M X 8 Bit Synchronous DRAM"  osea 16Mbs...?



seaarg dijo:


> a)- Con una señal de reloj a 40MHZ (oscilador a cristal integrado, tambien obtenido de una placa de PC 386) que comanda todo el sistema, excepto el micro, sampleo las muestras del ADC y almaceno en memoria. La misma se llena en un cortisimo tiempo (ms). O sea, obtengo 40msps (sampleo una señal de 4mhz en 10 puntos si quisiera) Teoricamente podria llegar a 80msps pero el circuito no se la aguanta


Osea, quieres decir que por cada periodo de 4Mhz, obtienes 10 puntos (samples) ?



seaarg dijo:


> Con esto, y un programa hecho por mi en visual basic 6, usando librerias de DirectX, pude hacer un osciloscopio funcional de unos 4mhz maximo (en realidad mas pero se deforma la señal por falta de puntos de sample... se corrige con mas velocidad).
> 
> Para que te des una idea, esto me da una pantalla por segundo aproximadamente, y la verdad que me sorprendio el resultado, excepto por una falla que tuve en el sistema de trigger y que hace que se descoordine todo.


Por tanto, el problema es de la comunicación PIC->PC no hay forma de transmitir datos más rapidamente? El adaptador RS232 a USB es lento (utiliza una etapa de RS232), no existe algun canal (tipo SPI o I2C) que convierta a USB ? de modo que no se vea limitada la conexion?

Tu osciloscopio es a ráfagas? almacenas y transmites.. yo pensaba en algo más de tomar muestra y enviar. Por eso me hace falta ir más rápido que el ADC... pero veo que es bastante dificil.

Uno de mis problemas es que aun no me he metido en el tema de memorias... no sé como se conectan, como se "usan" para leer, escribir, etc...

saludos y gracias por los ánimos!


----------



## Scooter (Oct 25, 2010)

En principio solo te valdrá la Sram o quiás SDRAM, DRAM tendrías que hacer el circuito de refresco que lo lía todo bastante.
No conozco adaptadores SPI-USB aunque es probable que existan
Lo normal de un osciloscopio digital es hacerlo "a ráfagas", si no lo haces sería un analógico "digitalizado", al final le das las condiciones de disparo y frecuencia de muestreo, guardas todos los samples y visualizas, en tiempo real no sería muy útil, creo yo.


----------



## seaarg (Oct 25, 2010)

Te adjunto una captura de pantalla de lo que estaba diseñando para el PIC18F2550 (con usb)

Esto solo es el modulo de control de memoria, arriba esta el buffer 74F245 que simula ser el ADC que voy a utilizar TLC5540 (tiene d0-d7 y CE) de 40mhz

En la version que hice por puerto paralelo utilice un ADS831E de 80mhz haciendolo andar a 40mhz

En respuesta a tu pregunta, si, para una señal de 4mhz toma 10 samples (40 msps o 40mhz)

Como te comento Scooter, no te sirve la memoria DRAM porque requiere un controlador especializado, se complica mucho.

Tambien, como dice Scooter, puedes usar un modulo de memoria cache de los 486 ya armado pero considero que tanta memoria no es necesaria, a menos que te interese saber eventos anteriores al trigger. (ademas, es mas lento llenarla)

Mi osciloscopio es a rafagas, y se puede samplear en tiempo real haciendo un cambio en el software, obviamente la velocidad estara atada a que tan rapido puedas transferir a la PC y dibujar en pantalla. El usb es bastante rapido para esto. Te comento que los osciloscopios digitales comerciales funcionan asi, almacenan y envian.

Para usar la memoria, fijate en este esquematico que te envie. Es MUY facil. En el veras un generador de reloj de proteus. Este seria el oscilador a cristal de 40mhz.

Para grabar en la memoria basicamente, habilitas la señal CE, deshabilitas OE, pones la direccion, metes datos en d0-d7 y das un pulso a WE.
Para leerla, habilitas CE, habilitas OE, pones la direccion y lees.

Como recomendacion, mucho cuidado en el diseño de la PCB, filtros de interferencia, etc. ya que son 40mhz!!! El mio actualmente tiene unos problemillas con eso (algunos picos en la señal que son problemas de layout creo) supongo lo corregire cuando arme la version usb.


----------



## antiworldx (Oct 26, 2010)

Si quieres sampliar 40MHZ (minimo 80Msamples), con decente resolucion, tendras que usar un verdadero DSP, y no habra mas. La interface visual se puede arreglar manejando frames, a fin de cuentas solo puedes ver 30 fotogramas por segundo. Y por ultimo... con docientos euros no podras hacer mucho.

En resumen, con dispositivos simples pic, avr, y otros microcontroladores, no te serviran. Siento no poder alentarte a algo que incluso yo mismo trate de investigar.


----------



## seaarg (Oct 26, 2010)

Personalmente creo que se necesitan al menos 8 puntos de sample para ver una señal decentemente. Esto nos da que en un adc de 40msps podriamos ver una señal de hasta 4mhz. A mi se me hace suficiente para una aplicacion diy.

Pregunta relacionada pero no tanto: un dsPIC se puede programar con el clon del pickit2? saben si en CCS C estan soportados? Me gusto para un osciloscopio sencillo no muy ambicioso.


----------



## lubeck (Oct 26, 2010)

Seaarg
Me intereso eso de la memoria pero no entendi.....

intentare explicar lo que entendí lo mas sencillo posible en puntos..

1.-el ADC toma lectura y lo lee el 74245 para mandarlo a la memoria...
2.-el micro lee la lectura de la memoria ...
3.-el micro hace un barrido con el 744040 de la memoria en cada registro para tomar las lecturas...

pero lo que no entiendo es que de cualquier manera se tiene que esperar a hacer el barrido no es lo mismo que si fuera en tiempo real???...
o realmente cual es la ventaja de la memoria?...
es decir primero hace la toma de las 32000 muestras despues se tarda en enviar las mismas 32000 al micro para visualizarlas y luego toma de nuevo y envia de nuevo que pasa con ese lapso de tiempo???


----------



## antiworldx (Oct 26, 2010)

seaarg dijo:


> Personalmente creo que se necesitan al menos 8 puntos de sample para ver una señal decentemente. Esto nos da que en un adc de 40msps podriamos ver una señal de hasta 4mhz. A mi se me hace suficiente para una aplicacion diy.
> 
> Pregunta relacionada pero no tanto: un dsPIC se puede programar con el clon del pickit2? saben si en CCS C estan soportados? Me gusto para un osciloscopio sencillo no muy ambicioso.



El DSPic, en sus versiones "motor controller" solo soportan hasta 500Ksps. Muy lejos de lo que requieren. Sin contar que solo es a 10 bits.


----------



## Scooter (Oct 26, 2010)

Normalmente, con 12 bits se "ve" bastante bien. La teoría dice que 2 samples por ciclo con interpolación senoidal.... claro que si la señal no es senoidal pues no se parecerá a la realidad, así que por lo menos 4 ó 6 muestras por semiciclo.
Con un microcontrolador "normal", difícilmente pasarás de los 100k muestras, que tampoco está mal para muchas aplicaciones, teniendo en cuenta que el "ociloscopio" te puede costar 20€.

Revisa las prestaciones de los osciloscopios chinos, hay maravillas por 200€


----------



## seaarg (Oct 26, 2010)

lubeck dijo:


> Seaarg
> Me intereso eso de la memoria pero no entendi.....
> 
> intentare explicar lo que entendí lo mas sencillo posible en puntos..
> ...



Espera, en el jpg que subi es la version con pic usb. No lleva 74245 (el que hay simula ser el integrado ADC nada mas)

En esta version es asi:
1)- Se pone la memoria en modo escritura
2)- Se barren las direcciones con los contadores a 40mhz. El clock de los mismos esta sincronizado con el clock del ADC, por lo tanto, el ADC esta escribiendo en la memoria. El pic esta en modo entrada asi que no participa
3)- Se pone la memoria en modo lectura y se deshabilita el ADC (se pone en tri-state)
4)- Se barren los contadores pero a "velocidad pic" leyendo la memoria con el micro y enviando por USB

La version puerto paralelo tiene 2 74245 uno hacia el puerto y otro al ADC. En el medio esta la memoria y el micro nunca la lee sino que la maneja.

En esta version es asi:
1)- Se pone la memoria en modo escritura
2)- Se deshabilita el 74245 que va al puerto, y se habilita el del ADC
3)- Se barren los contadores a 40mhz con clock sincronizado al ADC
4)- Se deshabilita el 74245 del ADC y se habilita el del puerto
5)- Se lee la memoria (el pic hace de clock y señales de control al puerto nada mas)

O sea, se toman las 32k muestras extremadamente rapido, en 0,0008 segundos. (40mhz / 32k) Luego se transfieren a la PC a la velocidad que la conexion nos permita y se visualizan. Mientras tanto, no pasa nada en el osciloscopio.


----------



## lubeck (Oct 26, 2010)

Ahh ok.. ya entendi...

oye estuve pensado la verdad suena interesante el método, pero me surgió una duda crees que si pusieran dos memorias seria mas rápido??? es decir hacerlo que mientras uno recoje información el otro entrega y se intercalan, o sera innecesario por la velocidad de captura del puerto...


----------



## Scooter (Oct 26, 2010)

El cuello de botella está en la comunicación...
Lo que si que debería de tener es una condición de disparo; a esas velocidades disparar "a ojo" no tiene mucha utilidad. Por ejemplo un comparador que de un pulso al llegar a cierta tensión. De paso debería de saberse si es por subida o bajada.

seaarg, ¿El conversor es de solo 8 bits?


----------



## seaarg (Oct 26, 2010)

lubeck: No, porque suponte que vos tenes una memoria llena, tendrias que  transferirlo a la otra que es la que se vaciara en la PC, mientras  tanto ya llenaste la primera de nuevo y recien la segunda estaria  empezando a transmitir. No ganas absolutamente nada, si es que te  entendi bien. Ademas y esto es medio en chiste... ¿sabes lo que es  rutear las lineas de direccion, mas las de datos en el PCB? un dolor de  cabeza para una sola memoria jaja.

Scooter: Totalmente, aunque USB en modo de transferencia como las  camaras de video (bulk creo que era) es muy rapido. Si pensas, cada  imagen de una camarita son facil los 32k de nuestra memoria del osc... y  transfieren varias por segundo. (no muchas pero suficientes). O sea, si  ya para mi esta siendo "usable" el osciloscopio por puerto paralelo,  por usb va a ser perfecto!

El disparo por supuesto que no es a ojo. Las compuertas nand que  controlan todo junto con el micro, se disparan mediante un trigger. En  mi version puerto paralelo tengo un trigger con un operacional, funciona  por flanco de subida o de bajada y la unica pena es que dispara una  interrupcion al PIC para comenzar la captura... son 200ns x cantidad de  instrucciones hasta que se empieza.

Tambien implemente un trigger por software. O sea,  capturo-transmito-capturo-transmito todo el tiempo y el soft de la PC se  encarga de detectar el flanco a partir desde el cual graficar.

El conversor es de 8 bits tecnologia pipeline CMOS (ADS831) y el que voy  a usar en el usb cuando lo termine es el TLC5540 semiflash CMOS. Aunque  no parezca son suficientes! Ambos los pedi como samples por si se  animan.

Lamentablemente no tengo esquematico (no soy de hacerlo, y es una falla mia). Pero les adjunto el archivo de PCB Wizard de la placa. Quiza no se entienda porque los componentes SMD no tienen plantilla sino son simples tracks. Lo comparto para que el que quiera lo vea un poco pero no les recomendaria intentar hacerlo con este PCB.

Les adjunto tambien el esquematico de un osciloscopio por puerto paralelo, del cual practicamente copie la entrada (solo que yo la hice con llaves digitales 4066). No recuerdo la pagina web de donde lo saque asi que me da pena no poder darle credito a su autor. Esta hecho con un conversor mas comun y lento, de 1.5us x sample.

Les aviso que un amigo lo hizo y es muy limitado en velocidad, pero me parece que es por soft el problema y no por hard. Y como no tiene una memoria intermedia la velocidad de sample sera limitada principalmente por la velocidad del LPT y no tanto del ADC.

La etapa de entrada del mio es un operacional de 100mhz de ancho de banda. Mas arriba puse que era un TL074, me equivoque (escribia en el trabajo y el osc lo hice hace como 1 año) El TL074 da unos 3mhz. Despues aprendi que hay que limitar el ancho de banda del operacional con filtro pasabajos a razon de al menos (Velocidad conversor / 8), o sea 4mhz en mi caso deberia haber sido el operacional. (o ponerle filtro)


----------



## lubeck (Oct 26, 2010)

> lubeck: No, porque suponte que vos tenes una memoria llena, tendrias que transferirlo a la otra que es la que se vaciara en la PC, mientras tanto ya llenaste la primera de nuevo y recien la segunda estaria empezando a transmitir. No ganas absolutamente nada, si es que te entendi bien. Ademas y esto es medio en chiste... ¿sabes lo que es rutear las lineas de direccion, mas las de datos en el PCB? un dolor de cabeza para una sola memoria jaja.



me imagine lo del llenado de la memoria pero quise confirmarlo con tu opinión... te agradezco la aclaracion... a ver si se me ocurre una idea para abatir ese inconveniente (que lo dudo... )

pd..lo de las rutas... utilizo proteus (isis y ares) creo que no estaría complicado... creo...


----------



## seaarg (Oct 26, 2010)

lubeck, vos queres hacerlo real-time por alguna razon en particular? La velocidad usb es mucha, yo no me complicaria mucho con eso.

Quiza este demas aclararlo pero, cuidado con la longitud de los tracks en el PCB. Si vas a 40mhz los efectos capacitivos e inductivos son importantes. (Lo se por experiencia fea en el mio jeje)


----------



## lubeck (Oct 26, 2010)

> vos queres hacerlo real-time por alguna razon en particular?


no.. no hay ninguna razón en particular pero me gustaría intentarlo y básicamente son dudas que me sirven como antecedente... para no cometer errores, como eso de la capacitancia e inductancia no tenia idea...
por lo pronto me quedo como mirón en este tema para aprender un poco mas....

de nuevo gracias seaarg....


----------



## gongonni (Oct 27, 2010)

seaarg, tengo una pregunta, parece que tu osciloscopio puede rendir más si se modifican algunas cosas. Como hemos visto, Con el dspic que propuse (4Msps) solo podria tomar frecuencias de hasta 400Khz... con resolucion de onda aceptable. Tu, parece que conseguiste mucho más, pero por culpa del puerto paralelo la comunicación se ralentiza. Mi pregunta viene a ser la siguiente o mejor, mi propuesta:

Tu quieres pasar tu osciloscopio a USB y dices que será más rápido, ya sea por el medio de transmisión (el propio USB) como por la potencia de los PICs que integran dichos módulos y

el PIC18F14K50 con USB integrado (al igual que PIC18F2550 que propusiste), tiene una arquitectura de 8bits y una velocidad máxima de 48Mhz con 12MIPS, lo que, relacionandolos se obtendria una potencia de cálculo de:
48Mhz*12MIPS*8Bits = 4608
pero si utilizásemos el PIC24FJ32GB002 (SPDIP, QFN, SOIC) con arquitectura de 16bits, velocidad máxima de 32Mhz y 16MIPS, obtendriamos una potencia de cálculo de:
32Mhz*16MIPS*16Bits = 8192 lo que significa un 177% más que el PIC18F14K50....

Puesto que la tarea *pesada* del PIC seria ir a memoria, leer y transmitir por USB (y más si utilizásemos un ADC de 16bits si queremos buena definición), ¿no nos saldria más a cuenta el PIC24FJ32GB002 ?

Comparado con el PIC16F628 que tenias por puerto paralelo... serian:
5MIPS*8Bits*20MHz = 800
lo que supone que el PIC18F2550 iría 576% más rapido y con el PIC24FJ32GB002 iría 1024% más rápido. Ambos tienen USB...

Apunto que estas relaciones las he hecho yo. Para algo sirven las mates... relacionar las cosas que te interesan 

salu2


----------



## seaarg (Oct 27, 2010)

Bueno, primero lo primero: Existe, conseguible, utilizable y sencillo un ADC de 16 bits? Te comento que todos los osc comerciales que "podemos" comprar son 8 bits.

La entrada de un ADC de 8 bits (de memoria no tengo ahora el datasheet), es de 2vpp y de 5vpp depende cual de los dos que propuse sea. Por lo tanto: 2vpp / 256 = 0,0078 volts de resolucion y 5vpp / 256 = 0,019 volts de resolucion.

Te remarco esto porque la resolucion es mas que buena! Vale la pena 16 bits? Las memorias SRAM son de 8 bits, tendrias que poner 2 funcionando en paralelo y complica mucho la PCB.

Ahora el micro: En lo que yo propuse no necesitas para nada potencia de calculo, ya que el micro NO hace ninguna matematica, solo envia datos.

Vamos a los numeros: En un pic a 20mhz

Para transmitir 1 byte debemos:
1)- Setear direccion (200ns)
2)- Leer el puerto (200ns)
3)- Transmitir por usb ese byte (no se, asumamos 3us = 30 instrucciones)

Por lo tanto, cada byte usa unos 4us * 32768 bytes = 131072us = 0,13 segundos !!!

Si la PC es potente estariamos viendo unas 3 pantallas por segundo, o sea, es rapidisimo con un pic a "solo" 20mhz. No estoy seguro pero creo que el 18F2550 puede correr a 48mhz, habria que revisar el hilo de este foro donde se estudia la comunicacion usb con este pic.

Y para terminar de exponer mi punto sobre los ADC de 8 bits: En el que tengo funcionando, utilizo la salida PWM del pic para generar una onda cuadrada de 2000hz 5v de calibracion. Cuando pongo la punta de osciloscopio en esa salida, puedo ver incluso la cresta redondeada de la onda, para que te des una idea de la resolucion y velocidad que tiene algo "sencillo" y comun.


----------



## gongonni (Nov 9, 2010)

Hola de nuevo! Ahora que he terminado exámenes, puedo dedicarme un poco más con el osciloscopio.
Seaarg, ¿puedes darme el modelo de la SRAM? estoy intentando buscar una y pedirla, pero no sé cual coger de las muchas... hay nvSRAM, SRAM síncrona, asíncrona, sin bus de latencia, algunas no te dan frecuencia sino "velocidad (ej. 40ns)" con mínimo 128x8, o mucho más como 128x16, 64x32, ... algunas pipeline otras flow-trough, ... :S

puedes ayudarme un poco?

salu2


----------



## seaarg (Nov 9, 2010)

Hola, podes usar esto:

http://pablohoffman.com/cgi-bin/twiki/bin/view/Oscusb/DocCap04Hardware#Memoria_RAM_est_tica

Como aqui no conseguia esas memorias, lo que hice fue obtener una de una lectora de CD. Si te asusta el SMD en encapsulado DIP las podes conseguir en placas base de 386 por ejemplo.

Vas a ver un integrado de 28 patas que dice algo de 256-xx donde xx puede ser 12, 15, 25, 60 esos son los nanosegundos de acceso. En el mio utilize 12ns pero la mayoria de las memorias que pude conseguir son de 25ns y eso te alcanza justo para 40mhz (demasiado justo para mi gusto).

Mi caso: T14L256A-12J (Lo mas rapido que pude conseguir en 5v, tengo de 8ns pero en 3.3v)
Otra opcion, en DIP: IS61C256AH

Son memorias de 32Kbytes

Consejo, mantenelo simple: no te compliques (128x16 seria complicarse si es que interpreto bien) y te aconsejo que descartes toda RAM que no sea SRAM.


----------



## gongonni (Nov 10, 2010)

gracias, pero si miras ésta web y clicas en Sincronous SRAM y luego bajas la página, verás que casi todas son DDRII, entonces, o algo entiendo mal o algo pasa, porque no sé cuales son las SRAM. Aunque por lo que me cuentas, creo que es SRAM asíncona, donde llegan los valores hasta 8ns. Voy a ver.

Por cierto, puedo coger una SRAM de digamos... 64Kbx8 o 128x8kb y utilizar tan solo 32kb? Supongo que será cosa de los contadores, no?

Gracias!


----------



## Scooter (Nov 10, 2010)

sram=ram estática
La ram dinámica es imprescindible para grandes volúmenes pero para los pequeños no tiene sentido.


----------



## seaarg (Nov 10, 2010)

Como dijo scooter, SRAM viene de STATIC ram, no de sincronous. Para que te des una idea, nunca vas a ver (creo) numeros de 1mb en memorias sram, porque son caras de fabricar asi que son pequeñas.

Ojo que las numeraciones de las memorias vienen expresadas en bits a veces, no bytes (algo tiene que ver con el 256 de su numero, si lo pensas)

64Kbx8 Si esto es 64k Words x 8 bits te sirve y yo la usaria toda, porque probablemente tengas que usar 2 contadores de 8 bits de todos modos, o como en mi caso, use 2 de 12 bits porque no conseguia de 8.


----------



## Scooter (Nov 10, 2010)

Hoy en día si que se encuentran sram de 1MB con facilidad, creo que hasta 10MB. Lo que no vas a ver es una de 1GB, eso seguro, el número de transistores por bit es muchísimo mas alto que en una DRAM (dinamic ram)


----------



## gongonni (Nov 13, 2010)

Sabeis qué es lo más triste que te puede pasar? Tener 4 Lectoras de CD  (Lectoras, regrabadoras de CD y una de DVD) y que todas tengan SDRAM...   DD

Seaarg, por casualidad no pediste la memoria via internet, no? 

Por cierto, éstos contadores de Microchip servirian?


----------



## seaarg (Nov 13, 2010)

Busca una grabadora de CD, esa seguramente tenga sram.

La memoria la saque de una grabadora TDK vieja. O de motherboards de 386.

Y el link que me pasaste es un ADC, no contador. ¿Conseguible facil?... un par de CD4040


----------



## gongonni (Nov 13, 2010)

mm.. tienes razón!
A ver, ya me llegó el ADC de Texas Instuments (el mismo que el tuyo, la cosa no ha cambiado hasta entonces) pero miraré MAXIM y alguna otra empresa a ver qué encuentro.

Estoy superperdido en el tema. Siento ser un poco carga! :/
Las webs que utilizo para buscar los componentes (y si se puede, coger samples) son las siguientes, quizás te sirva de algo:
Microchip
Texas Instruments
National Semiconductor
Maxim
Analog Devices
STMicroelectronics
Fairchild
Cypress
Exar
Me cuesta un poco buscar todo lo que me dices... Hasta ahora solo tengo el ADC y me falta:
- SRAM
- Contadores CD4040 (que en algunos está obsoleto)
- Buffers 74F245 (que en algunos está obsoleto)
- Puertas NAND (alta velocidad, bajo consumo, ...?)
- Operacionales
- Llaves digitales 4066

salu2


----------



## seaarg (Nov 14, 2010)

Si bien estas en Europa y deberia ser mas facil encontrar para vos, para SRAM lo mas rapido va a ser encontrar motherboards viejos y usar de ahi.

Llaves digitales 4066 tenia mi diseño previo, pero en el proximo lo voy a hacer con llaves manuales, menos problema. Te recomiendo lo mismo.

NAND, la mas rapida que encuentres. Tambien inversores muy rapidos si es que no conseguis el oscilador con cristal integrado. (inversores, para hacerte tu propio oscilador) o podrias usar el oscilador interno del PIC, como hacen en el proyecto de hoffman.

El CD4040 si esta obsoleto, aqui se consigue.

El 74F245 se consigue tambien en motherboards. Pero creo que no te haria falta. Depende como diseñes.

Operacionales, te recomiendo de instrumentacion, a menos que quieras acotar el ancho de banda analogica, entonces ahi unos simples TL074 pueden servirte.


----------



## Scooter (Nov 14, 2010)

Las sram que tengo son la caché de dos placas de 486
De todos modos me suena que en farnell y en RS hay de tamaños respetables a precios "razonables"


----------



## gongonni (Nov 14, 2010)

Siempre decís que se puede conseguir de placas antiguas de pc... una curiosidad ¿vosotros guardais motherboards o las conseguís en algun lado? Yo no tengo nada de motherboards antiguas (aunque pasaron por mis manos), Tampoco nos dejan "sacar" nada del punto de reciclaje (qué ironico).

Por una parte, aunque ya me llegó el ADC de texas instruments, creo que pediré también éste ADC de MAXIM, que parece que obtiene mejores resultados en los apartados de INL, DNL ,.. y funciona hasta un poco más de frecuencia. No sé si se conectará del mismo modo...

Encontré tambien los contadores C4040 de fairchild. Los habian renombrado. Porque los primeros resultados que me dió su buscador fueron de partes obsoletas.

Os iré informando. Por cierto Seaarg, ¿podrias subir alguna imágen de cómo te quedó tu osciloscopio?

Podrias tambien, subir un poco el esquema que utilizaste para el acondicionamiento de la señal?

salu2

Aqui está el Buffer de 8bits non-inverting outputs, tiempo de retardo de aproximadamente 4ns
y aqui las NAND Gates con retardo de aprox. 3ns

Ahora solo me falta la SRAM que lo dejaré para lo último, las llaves y los operacionales.

Las llaves digitales:
En fairchild las han discontinuado asi como en National Semiconductor, en otras webs se pueden conseguir, entre ellas, MAXIM. Mi idea es utilizarlo para canalizar la señal a un circuito divisor o amplificador. Por lo tanto, necesitaremos que sea de baja impedancia y que pueda dejar pasar la señal. Como no soy superentendido, os redirijo a una pagina un tanto especial donde MAXIM explica un poco sus "analog switchers" os hago referencia a la tabla 1 y  a la 5, sobretodo a la 5. En ella encontraremos partes que utiliza MAXIM en dispositivos USB. Mi pregunta es.. ¿sevirian para nuestro proposito? Es decir, ¿cumplen los requisitos que pedimos? Veo que tienen caracteristicas bastante buenas. Tambien hay muchos en Analog Devices
De momento me quedo con éste de Analog Devices. Me limita directamente el ancho de banda a 18Mhz (más que suficiente) y tiene muy buenas especificaciones.


----------



## gongonni (Nov 14, 2010)

La SRAM queda pendiente y el amplificador... con el amplificador necesitaré ayuda.
Lo de la ganancia lo entiendo, lo que no entiendo es porque lo especifican en dB... Y no sé si coger un amplificador lineal, de ganancia variable o qué. Podria controlar la ganancia mediante el PIC y asi evitarme tener que hacer pasar la señal por un segundo amplificador si fuera el caso.

Me podeis hechar un cable?


----------



## Scooter (Nov 14, 2010)

No guardo placas de PC, le saqué los pocos ICs susceptibles de ser usados antes de tirarlas, esos ICs deben de estar rondando por mi casa como 10 años esperando que les de algún uso.
No estoy muy puesto, pero supongo que para el amplificador de entrada habrá que buscar alguna configuración que sea gobernada por tensión y ese control sacarlo de un DAC del pic.
Como en realidad necesitas mas un atenuador que un amplificador bastaría con unos divisores de tensión seleccionables.


----------



## gongonni (Nov 14, 2010)

ya pero para tensiones del orden de los milivolts, entonces deberia amplificarla. Léase por ejemplo, un electrocardiograma. Para divisiores de tension, tengo pensado hacerme con unos potenciometros digitales, y poder variar los 2 potenciometros del divisor mediante el pic. ME ENCANTA !!  Donde tendré más problemas será en el ruido.. Como soy aficionado, no conozco equaciones ni nada sobre el ruido. Tan solo los condensadores para filtrar. :/


----------



## Scooter (Nov 14, 2010)

Si no tienes caracterizado el ruido, es difícil acertar con el filtro.
Si primero amplificas y luego divides, meterás distorsión, así que yo intentaría separa ambos casos.


----------



## gongonni (Nov 14, 2010)

Si, los separaré con el "analog switcher". Primero el pic comenzará  un primer sampleo del ADC con la máxima división. llenará la memoria y  el pic buscará el valor más alto. Luego mediante matemáticas, adaptará  la división correspondiente de las resistencias. Si al buscar el valor  más alto, es cero, irá rebajando poco a poco la division. Si al llegar a  la mínima division es insuficiente, el pic hará pasar la señal por el  amplificador. Cabe destacar que el divisor de tension se encuentra despues del amplificador, el "analog swithcer" es el encargado de saltarse la etapa de amplificacion y unirla con la salida del amplificador o por el contrario, enviar la señal a la entrada.


----------



## seaarg (Nov 15, 2010)

gongonni dijo:


> Siempre decís que se puede conseguir de placas antiguas de pc... una curiosidad ¿vosotros guardais motherboards o las conseguís en algun lado? Yo no tengo nada de motherboards antiguas (aunque pasaron por mis manos), Tampoco nos dejan "sacar" nada del punto de reciclaje (qué ironico).



Ironico en verdad. Si yo tengo un placard lleno de chatarra vieja que reciclo.



gongonni dijo:


> Os iré informando. Por cierto Seaarg, ¿podrias subir alguna imágen de cómo te quedó tu osciloscopio?



Por supuesto, cuando este en casa saco fotos.



gongonni dijo:


> Podrias tambien, subir un poco el esquema que utilizaste para el acondicionamiento de la señal?



Muy mal de tu parte!  yo subo esquematicos y no los miras? jeje, mas arriba esta schema.zip Esa es con TL074. En mi caso le puse un operacional de mas ancho de banda, no recuerdo su nro. en este momento.



gongonni dijo:


> Si, los separaré con el "analog switcher". Primero el pic comenzará  un primer sampleo del ADC con la máxima división. llenará la memoria y  el pic buscará el valor más alto. Luego mediante matemáticas, adaptará  la división correspondiente de las resistencias. Si al buscar el valor  más alto, es cero, irá rebajando poco a poco la division. Si al llegar a  la mínima division es insuficiente, el pic hará pasar la señal por el  amplificador. Cabe destacar que el divisor de tension se encuentra despues del amplificador, el "analog swithcer" es el encargado de saltarse la etapa de amplificacion y unirla con la salida del amplificador o por el contrario, enviar la señal a la entrada.



Me parece excelente que lo quieras hacer "auto-range" pero desde la experiencia de hacer uno, te aconsejo: Hace una primera version SUPER simple, nada de llaves digitales, ni potenciometros digitales. Simples AO de entrada, llaves selectoras manuales y al ADC.

Para complicarlo hay tiempo!


----------



## gongonni (Nov 15, 2010)

Tienes razón en todo!  Lo del schema, ya lo vi, pero estaba todo tan retorcido que me costó entender lo que hacías. Entendí una parte, las llaves que tienes al principio y más adelante de la entrada de señal me liaban un poco.. en fin, más o menos lo entendí.

Sobre todo el resto de llaves digitales, potenciómetros digitales, ... tan solo estoy haciendo una previsión de lo que necesitaré. Luego lo pido (todo mediante samples, por supuesto) y si lo hago servir, bien, y si no, tambien !

hoy me han llegado unos samples que pedí a National Semiconductor. He abierto el sobre, y ha caído un trozo de plástico. Creí que me habian timado. Pero hacía ruido. Destapé un poco el plástico y lo vi. Lo primero que se me pasó por la cabeza fue.. ¿qué coj..?  1 recuadrido de 1x1mm cayó sobre la mesa. Se supone que es un sensor de temperatura SMD para otro proyecto. REPRESENTA que tengo que soldar un componente de 1x1mm con 3 pins y se supone que deberia hacerlo sin soldador por aire... jajajaja  No sé, pero cuando busqué su encapsulado por google, me parecía más grande.  Olé yo! 

Por cierto, Para el amplificador, estoy buscando algo que se alimente con una fuente simple, más adelante (mucho más adelante y si todo va bien) alimentaré el circuito con una pequeña batería (de móvil que ya tengo) o pilas y estoy buscando algo que no pase de 3.6V y ya puestos, pues lo busco una vez y listo. Pero me pierdo con tantos parámetros a tener en cuenta. Si dices que no me complique mucho, estaría bien tener un amplificador para que pueda leer tensiones del orden del milivoltio y pueda aceptar frecuencias de como mínimo 18Mhz. Ya sea ganancia fija o variable. Con la variable podria regularlo mediante PIC.

Sé que es un poco pedir demasiado, pero me harías un favor muy grande  enserio que en los amplificadores, me cuesta.

salu2


----------



## seaarg (Nov 15, 2010)

Aclaro que el archivo schema.gif que adjunte no es diseño mio. Utilice la entrada de ese proyecto para mi osciloscopio.

Como dije antes, aca te adjunto un par de fotos del osciloscopio terminado.

Sobre soldar SMD, ¿Alguna vez viste la distribucion de pines de un  inversor SMD? Sin embargo los he soldado manualmente sin problemas y  quedan perfectos. El truco es poner estaño sin importar los cortos, y  luego pasar malla dessoldante (todo con bastante flux). Si tu sensor es  de 3 pines, con una distribucion dos de un lado y uno del otro (como los  transistores) mas facil aun.

Si para una ganancia variable tenes que entrar algun voltaje variable por un pin del operacional (ni idea) te cuento una solucion que use para algo similar: Genero un PWM con el pic, a fin de liberarlo para atender otras tareas, este PWM se convierte en un voltaje por medio de un diodo+resistencia+capacitor a masa. Creo que es un filtro pasabajos eso... variando el duty cycle varias el voltaje de salida... voila! La pregunta es: ¿te conviene complicarte con ganancia variable? que ventaja te da?

Por ultimo:
LMH6644MA este es el operacional que utilice en la entrada
MAX477 Otro que podrias usar

ADC08100CIMTC Este ADC funciona con 3.3v
T14L256A-8J Esta memoria funciona con 3.3v

No te aconsejo fuente simple. Es posible pero mas complicado aun en un proyecto de por si complicado.

Bien, mucho mas no hay ya, es tu turno de leerte a fondo los datasheets, tomar las decisiones sobre los componentes, y presentar algun esquematico, pcb, etc. Saludos!


----------



## gongonni (Dic 23, 2010)

Bien. Tras mucho tiempo, vuelvo un poco por aqui.
He hecho un poco los deberes: Primero hice un barrido de webs donde podías pedir samples gratis y luego me puse como loco a buscar componentes restringiendome solo en ÉSAS webs. Tras todo ello, comprobé que algunas de ellas, a la hora de realizar el pedido, no dejaban. Asi que pedí algunas cosas para ver qué webs aceptaban samples y te lo enviaban. Con lo cual tendré que volver a buscar algunos componentes o sino, comprarlos. Pero ahora sé en cuáles puedo pedir 

Para información, ésas webs donde puedes pedir y te lo aceptan son: Texas Instruments, Maxim, Exar, Analog Devices, Microchip i National Semiconductor.

Y, ahora si señores, estoy haciendo una pequeña tabla con los componentes que necesito definitivamente. Antes iba un poco perdido sin saber qué características mirar. Ahora ya veo el camino 

Pero me surgen algunas dudas:
Serviria Éste contador? Sino, cual coger de todos ellos?

se me ha hecho tarde, mañana sigo !


----------



## seaarg (Dic 23, 2010)

Se lo ve bien, habria que simularlo para ver su funcionamiento (o tenerlo) Mi version de proteus no tiene el modelo de simulacion del mismo.

Pedi bien, a mi me mandaron UNA vez samples desde TI y AN. El resto de los pedidos los rechazaron.


----------



## gongonni (Dic 24, 2010)

Hola! 

Ya casi casi está! 

Solo un par de dudas más para encontrar bien los componentes y dimensionar bien el circuito... ¿Cómo haces para coger los datos de la memoria y pasarlos al puerto Paralelo/usb con el PIC?
Me refiero en el ámbito de programación... Usas I/O genéricos y luego vas leyendo pin por pin para crear un valor y enviarlo al pc o... usas algo diferente? (creo recordar algo de DMA en algunos pics...)

¿Serviría éste oscilador para el circuito? (lo digo por el Spread-Spectrum)
y ¿Para qué usas las NAND ?

Además, quizás sea de tu interés ÉSTE PIC, el 18F27J53... És un nuevo modelo que ha salido hace poco que ya está disponible y que quizás sea el que elija definitivamente para el osciloscopio. Basicamente por 2 motivos: USB y 8-DMA 

salu2 y FELIZ NAVIDAD !


----------



## gongonni (Dic 29, 2010)

Por cierto seaarg, ¿dijiste que no llegabas a llenar la SRAM de 32K ? sólo llenabas las 256 primeras posiciones de la SRAM, ¿no?


----------



## seaarg (Dic 29, 2010)

gongonni dijo:


> Solo un par de dudas más para encontrar bien los componentes y dimensionar bien el circuito... ¿Cómo haces para coger los datos de la memoria y pasarlos al puerto Paralelo/usb con el PIC?
> Me refiero en el ámbito de programación... Usas I/O genéricos y luego vas leyendo pin por pin para crear un valor y enviarlo al pc o... usas algo diferente? (creo recordar algo de DMA en algunos pics...)
> 
> ¿Serviría éste oscilador para el circuito? (lo digo por el Spread-Spectrum)
> y ¿Para qué usas las NAND ?



Relee lo que he escrito y volve a mirar el esquematico  Las nand manejan los distintos clocks y para pasar los datos al puerto paralelo, salen de la memoria directo, nunca pasan por el pic.

Lo otro, nunca llego a 32k porque mi programa tiene, no recuerdo, pero creo que 800 pixels horizontales. A escala 1:1 son 800 datos, a escala 1:2 1600 y asi


----------



## Norberto (May 15, 2012)

Que circuito de entrada se usaria en un osciloscopio de estas cualidades ya sea 40mhz o 10mhz etc, que operacionales responden a esas frecuencia con la mejor prestacion, y que respondan a señales cuadras o pulsos estrechos??


----------



## Sadohe (Jul 20, 2012)

Se que es algo pretencioso de mi parte, ya que he seguido con atención éste tema. Pero ya han checado el PCM2902 ó el PCM2906 de Texas Instruments?, ya traen integrados dos ADC así como el USB, por lo que sería posible usar cualquiera de ellos como Osciloscopio de dos canales así como generador de señal al mismo tiempo, y con cualquier SW como el VirtIns (Virtual Instrument Oscilloscope) en la PC tendríamos un Osciloscopio bastante aceptable, claro que habría que ver la frecuencia máxima que pueda muestrear.


----------



## seaarg (Jul 20, 2012)

Por lo poco que vi el datasheet, Sadohe, estos samplean en la banda de audio, como mucho 48khz. Seria mas o menos lo mismo que hacer el osciloscopio con tarjeta de sonido de la PC.


----------

