• No tenia planeado dedicarme a probar mi sintetizador en PC, porque es una plataforma que nunca me atrajo demasiado, pero se dieron varias situaciones que me llevaron a armar una placa que al final quedó bastante interesante.
    Cuando empecé el desarrollo del sintetizador y le agregué una entrada de datos para que el usuario pudiera controlarlo, me decidí por usar una conexión RS232, y me armé las placas correspondientes para probar mas comodamente desde una PC usando un programa emulador de terminal.
    Los años pasaron, hice placas para Commodore 64 y después para MSX, y llegado a ese punto necesité que la máquina pudiera saber cuando se termina de reproducir el sonido, para que los programas se pudieran sincronizar con el sintetizador. Por eso la versión para MSX fue la primera que tuvo conectada esa entrada, usando el puerto de joystick para simular un RS232. Luego adapté la placa para Commodore 64 para que también tuviera esa entrada conectada y el soft pudiera sincronizarse con el sonido.
    Yo sólo usaba las placas RS232 para el desarrollo, probando textos con esas placas antes de implementarlos en la máquina final (Commodore, MSX, etc.), pero ocurrieron dos situaciones que me hicieron revisar esa placa para hacerla más apta para el uso diario, por un lado un amigo quería probar la aventura conversacional que adapté para agregarle voz, y sólo tenía a mano la placa RS232, esto me decidió a adaptar la aventura a GW-BASIC. Pero dado que adapté la aventura para Commodore y MSX, que disponían de la señal que indica cuando el sintetizador termina de emitir sonido, me encontré en la PC con el problema de que esta placa RS232 no enviaba esa información, por lo que la aventura en PC imprimía todo el texto por un lado y por el otro lo enviaba al sintetizador, sin ningún tipo de sincronismo entre el sonido y la pantalla. Por otro lado, otras personas quisieron armar una placa para MSX reutilizando la placa RS232, es decir armando una placa intermedia a la que se le conectara la placa RS232, y ahí nos encontramos también con que haría falta esa señal para detectar el fin de la reproducción de sonido.
    Analizando la situación, ví que no quedaba otra alternativa que agregar un segundo MAX232 para darle esa funcionalidad, ya que cada MAX232 dispone de dos entradas y dos salidas, y las dos salidas (desde el PIC) ya estaban siendo usadas (CTS y RX), por lo que no se podía agregar una más sin otro chip. Ya que de esta manera la placa quedaría muy complicada, decidí hacer un experimento conectando el PIC al RS232 sin usar MAX232, para que se redujera la complejidad de la placa y entonces se pudiera agregar esa otra salida hacia la PC. Y ya que estaba haciendo experimentos, quise ver si también podía alimentar la placa desde el puerto serie, para evitar la otra incomodidad que no tienen las versiones de Commodore y MSX, que es el requerimiento de usar una fuente de alimentación externa.
    Las primeras pruebas no anduvieron bien, pero al final y luego de un montón de reformas tanto de hard como de soft, salió andando. Muchos de los problemas tuvieron que ver con la polaridad de las señales, ya que al eliminar el MAX232 las líneas quedaban invertidas, por lo cual hubo que agregar un 7404 y ya la placa no quedó tan simple como pretendía, pero aún así creo que es más fácil de armar que la vieja placa RS232. También hubo que pelear un poco con el GW-BASIC y su manejo del puerto serie, pero eso da para una discusión mas detallada en alguna otra ocasión.
    Este es un video de la prueba, mostrando un detalle de la placa y luego corriendo la aventura en GW-BASIC, para que se vea que ahora sí está el texto sincronizado con el sonido. Esta vez el sintetizador que usé es el HR4.



    Como se puede ver, el prototipo es un desastre, no le basta con los puentes que también tiene rutas y autopistas. biglaugh.png
    Estaba armada un poco mejor antes, pero al descubrir que había que invertir todas las señales hubo que cortar varios cables, desviarlos hacia el 7404 y luego continuar hacia donde iban originalmente. Por alguna razón la salida de datos desde el PIC no es recibida correctamente en la PC, está conectada pero igual ningún programa la usa. También tuve que puentear CTS con DSR porque GW-BASIC se niega a abrir el puerto serie si no detecta DSR activada. Esta placa, al ser alimentada por el puerto serie tiene la particularidad de que a diferencia de las otras, se puede apagar y encender por software, y de hecho al ejecutar la instrucción OPEN ocurre eso, porque se toma la alimentación de las líneas DTR y RTS, que son activadas al abrir el puerto. Por esta razón tuve que cablear los jumpers para que se deshabilite el mensaje de arranque (sintetizador listo), ya que al ejecutar la aventura se emitía al abrir el puerto. También eliminé los leds para ahorrar energía al máximo, pero ahora que logré que funcionara se podria poner al menos un led que indique cuando está alimentada la placa, ya que no hay ningún tipo de indicación, salvo el sonido, de que está funcionando.
    Acá se ven unas fotos de la placa:

    1424266293 75 FT0 101 0678s

    1424266293 75 FT0 101 0679s

    1424266293 75 FT0 101 0680s

    1424266293 75 FT0 101 0682s

    Un poco más detalladas:

    1424266425 75 FT0 101 0683s

    1424266425 75 FT0 101 0684s

    1424266427 75 FT0 101 0685s

    1424266427 75 FT0 101 0686s

    1424266427 75 FT0 101 0687s

    Voy a ver si paso en limpio el circuito, y si puedo armar una placa mejor, porque esta como se ve es bastante frágil.

     

  • Impresionante !!! Y yo que pensaba que era enquilombado para armar cosas.
     

  • Las placas que se ven mas ordenadas las armo tambien asi, solo que analizo muy bien donde ubicar cada cosa antes. En este caso no sabia si iba a funcionar lo de evitar el MAX232 y tampoco sabia si se podria alimentar del puerto. Tire unos diodos con resistencias para tomar alimentacion de las señales DTR y RTS y me dio un poco mas de 8V, usando el cable de USB a RS232, recien cuando verifique eso arme el resto, pero no sabia si la corriente seria suficiente para el consumo del circuito.
    Como el unico negocio de electronica de la ciudad cerro hace unos meses, no quise desperdiciar una de las pocas placas que tengo para armar algo que no sabia como iba a funcionar, por eso use el unico pedazo de placa que tenia que no me importaba desperdiciar, una placa donde apenas cabia medio PIC si lo ponia atravesado. Hubo muchos contratiempos porque no tenia resistencias ni de 1K ni de 22K, ni diodos 1N4148, asi que hay por ahi dos resistencias de 470 y de 10K en serie, y diodos 1N4005, todo contribuyendo a que no entrara nada en la placa. Y por supuesto el agregado del 7404 termino de descompaginar todo.
    El circuito es este, que esta pendiente de revision porque quedo un poco desordenado, ahi estan los valores que deberia haber usado, 10K y 22K (use dos de 10K en serie), y 1K (use dos de 470 en serie), agregue un capacitor de .1uF que no esta en la placa y debe ir para filtrar ruidos en la alimentacion del PIC, y un led de encendido que tampoco esta y seria necesario para saber cuando la placa esta funcionando (hay que tener en cuenta que se puede encender y apagar con un simple OUT desde el BASIC).

    1424397073 75 FT97160 Picsynth232 3
     

  • Esto deberia ir en el foro de portatiles, pero no aporta lo suficiente como para empezar un tema nuevo, en realidad la prueba que hice con la IBM pensaba hacerla originalmente con mi PoqetPC Plus, que es una XT portatil con placa CGA, MSDOS 5 en ROM, dos conectores PCMCIA, uno de los cuales tiene un adaptador a CF con una tarjeta de 32MB, y el procesador es un NEC V30 (una especie de super 8086). En este caso el procesador esta corriendo a 16MHz, pero la maquina permite seleccionar tambien 2, 4 u 8MHz. La maquina tiene ademas la opcion de activar la iluminacion de la pantalla, algo no muy comun en ese tipo de maquinas.
    Como en el momento de probar la placa no pude encontrar el cable RS232 especifico de esa maquina (muy dificil de conseguir por el conector raro que usa), no tuve mas remedio que probar con la IBM. Pero la idea era que el juego corriera en XT, por eso no tiene ni siquiera un minimo de color.
    Si bien esta PoqetPC Plus es demasiado rapida comparada con una XT promedio, igual sirve para la prueba. De paso aprovecho para verificar si el circuito tiene un consumo razonable, que por lo visto es lo que ocurre, al funcionar en un RS232 comun, en un cable adaptador de USB a RS232, y ahora en una XT portatil.
    Este es el video:

     

  • Ahora si, placa armada como corresponde, se nota la diferencia con el prototipo:

    1424620173 75 FT97160 101 0713s

    1424620173 75 FT97160 101 0712s

    Aca se ve mejor la placa nueva:

    1424620173 75 FT97160 101 0714s

    1424620173 75 FT97160 101 0715s

    1424620173 75 FT97160 101 0716s
     

  • Espectacular ! , quedo muy bien el formato final y muy prolijo , hay que probarlo en la XT !
     

  • Te felicito quedo muy bueno!! Saludos cordiales
     
  •  

Moderador (s): thierry, homecomputer, Selandari, pastbytes, Cyberboy, Durandal