› Foros › PlayStation 2 › Scene
Koolk escribió:el PIC16F88 o otro está conectado entre el lector y la placa de la PS2 de una manera que detecte los id del juego al introducir un DVD.
Koolk escribió:También detecta cuando le falta un juego, cuando has introducido un juego, cuando expulsa un juego, cuando enciende o reinicia la consola, etc.
Koolk escribió:Si pueden o los que sepan, pueden ponerme cualquier información sobre las PS2 y sus placas bases más lectores. Mi modelo de PS2 es el SCPH-39004. Pueden poner el que quieran. Sólo encuentro poner chip pero eso no me interesa.
airam1809 escribió:Muy interesante tu proyecto, ayudaré en lo que pueda.Koolk escribió:el PIC16F88 o otro está conectado entre el lector y la placa de la PS2 de una manera que detecte los id del juego al introducir un DVD.
Esto último no sé hasta que punto es buena idea, si aceptas sugerencias, no sería mejor hacer un programita para ps2 y que saque los datos por el puerto usb por ejemplo..? Me explico, se podria configurar esa máquina para que antes de lanzar un juego, salte ese programa y lea la linea BOOT2 = cdrom0:/xxxxxx;1 del SYSTEM.CNF y tenga la ID de juego ( el sces, sles, slus etc) y entonces mande la información por usb, el pic la recoge y la ps2 lanza el ejectutable.
Esa parte que dices está mejor, debo informarme como hacerlo. He abierto de un jueg original el Mortal Kombat:SM y el archivo SYSTEM.CNF pone:
BOOT2 = cdrom0:\SLES_535.24;1
VER = 1.02
VMODE = PAL
Nunca el nombre del juego por lo que parece, excepto que esté en otro archivo por ahí. Espero que no haya que descodificarlo. Debo encontrar más información sobre este tema por todo internet. Más información aquí.Koolk escribió:También detecta cuando le falta un juego, cuando has introducido un juego, cuando expulsa un juego, cuando enciende o reinicia la consola, etc.
Eso es tan sencillo como llevar cables a los pulsadores y finales de carrera de la bandeja, que usan una lógica ttl. Tambien podría llevarte un cable a la patilla 18 del BA6664FM (el que controla el giro motor) y hacer que el lcd muestre tambien cuando se lee y cuando no. En esta pata nivel alto = disco parado y nivel bajo = disco girando.
Lo último del sisco parado y girando no se me había ocurrido, eso que siempre sentía curiosiadad hace años desde PS1 para saber cuando gira y cuando no. Lo haré. Todo lo demás es más fácil y se puede hacer hasta con PS3.
hilo_sobre-30001r-ntsc-el-ba6664fm-comprobacion_474352
Ver hoja de datos del BA6664FM.Koolk escribió:Si pueden o los que sepan, pueden ponerme cualquier información sobre las PS2 y sus placas bases más lectores. Mi modelo de PS2 es el SCPH-39004. Pueden poner el que quieran. Sólo encuentro poner chip pero eso no me interesa.
Lectores, estos son los tipos de lectores que encontrarás en ps2 fat: KHS400A, B y C. Las 400a no se ven porque son las que se montaban en modelo japoneses. Las 400b se montaban en placas v3 y v4, y las 400c se montan desde la v5 hasta la v10, donde en modelos v9 y superiores aparece una 400c pero modelo nuevo, con un arito amarillo rodeando la lente externa pero su fucnionamiento es igual.
A partir de las v5 tambien estan las lentes hd7 de sanyo, se ven sobre todo en v9 y superiores. Todos los modelos funcionan igual, ya que son intercambiables fisicamente. La única lente diferente es la que monta el modelo v11 ( http://download.elotrolado.net/imagenes/ps2v11a.jpg ), que no es intercambiable con ninguna y es más parecida a lentes de pstwo slim que no a las tochas.
Muchísimas gracias por la información sobre este tema de los lectores. Aquí parece que hay algo de info.
Es muy interesante esto, estaré aquí para lo que pudiera hacer falta. Saludos
airam1809 escribió:Una pena que no llegue a entender el funcionamiento del pic tanto como me gustaría. Si me dan programación y esquema sabría montarlo y hacerlo funcionar, pero no su funcionamiento o hacerlo yo desde cero...
Tampoco entiendo que quieres decir con "Dice en el esquema de arriba que son 12V que pasa por ahí". Si te refieres al esquemita de la botonera, fíjate que esos 12v son para alimentar a los leds. Los pulsadores hacen simples pulsos de masa, por lo que sólo tendrías que reconocer un cero lógico en esa entrada del pic.
Eso es lo que quiero saber, gracias. El PIC debe detectar un pulso bajo si has pulsado Reset. ¿Cierto?
Me temo que a parte del hardware de ps2, no podré ayudarte mucho más.
Me estás ayudando más de lo que imaginas.
Por cierto si el pic que usas ahora tiene solo 3 entradas tendras que cambiar a uno mayor casi seguro, pues por ahora tienes todas estas entradas: reset, eject, open, close, brake.
Usaré uno mayor de pines, la arquitectura interna del PIC es la misma pero con más pines y funciones, más memoria, etc. Sólo cuesta un €uro más. Usaré el 16F886. ¿Qué eso del brake? ¿Detectar el giro del motor del DVD?
Haz escrito "reset, eject, open, close, brake." por mi me puedes dar más ideas. (Sigue dando ideas). Lo del open y close deja ver si se puede hacerlo con un solo pin, si te refieres abrir y cerrar la bandeja del DVD. ¿Y el eject? Si funciona con pin de entrada.
En cuanto lo del PIC, no te preocupes que me encargo de él. Que sepas, tiene 4 entradas por suerte. Si lo hago funcionar como decoder, tiene 16 mensajes diferentes. Ya con la tabla de la verdad bien explicado se consigue todo. Aunque me da que estás pensando en cada pin del PIC un sensor independiente. Si es con el PIC16F886 ya que sobra pines lo haré así.
Olvidé decir que el PIC16F88 puedo meterle dos entradas más ya que uso el oscilador interno para aprovechar no usar más componente. Por ahora lo estamos estudiando. Tengo programado lo básico para el PIC16F88 (18 pines), pero puedo adaptarlo al PIC16F886 (28 pines).
Mañana te paso los puntos de apertura y cierre de la bandeja, se ve cada vez mejor tu idea, espero que en brebe podamos ver algún video/foto de su funcionamiento.
Las ideas las tenemos poco a poco según vayan surgiendo. Hace un tiempo estaba mucho con los LCD y grabé este vídeo. Lo acabaré físicamente, lo grabaré en vídeo con honor y lo presentaré como proyecto al igual que hice con este.
Recuerda. Ya que han nombrado reset, eject, open, close, brake, ¿se te ocurre alguna idea más?
Otros visitantes si nos están leyendo, pueden participar.
Saludos
Koolk escribió:Haz escrito "reset, eject, open, close, brake." por mi me puedes dar más ideas. (Sigue dando ideas).
Koolk escribió:Aunque me da que estás pensando en cada pin del PIC un sensor independiente. Si es con el PIC16F886 ya que sobra pines lo haré así.
Koolk escribió:Ya que hablas del Led de la "Memory Card", no tiene que ser oficial.
Koolk escribió:
Ya estoy preparando el PIC16F886 de 28 pines. Tienes 8 sensores como mínimo del puerto C. Si quieres más entradas y salidas también más pines por ahí.
RC0 = Reset
RC1 = Eject
RC2 = Open
RC3 = Close
RC4 = Brake
RC5 = Libre
RC6 = Libre
RC7 = Libre
---------------------------------
TOTAL = 5 de 8 entradas. (Recuerda que con este PIC16F886 tienes más entradas o salidas).
¿Deseas algún sensor más?
De la imagen que pusiste arriba para conectar el Resent, etc. ¿Sabes la tensión o voltios que tiene?
Saludo.
De la imagen que pusiste arriba para conectar el Resent, etc. ¿Sabes la tensión o voltios que tiene?
airam1809 escribió:Koolk escribió:Ya que hablas del Led de la "Memory Card", no tiene que ser oficial.
El led es añadido, mira: http://www.youtube.com/watch?v=eJVF7BQAe_U
Muy bueno el vídeo, pero las Memory Card que tengo son de 8 MB, quizás sea diferente.
Parece que son 3v, no se si son sufiecientes para que el pic detecte que es un pulso alto, se podría utilizar un transistor.
No lo detecta. Hay PIC que si son de 3v. Si es para este PIC que funcionan a 5V como el 16F886, se mete la salida de 3V a la base de un transistor, de ahí al PIC con sus 5V.
En la imagen de abajo cuya entrada muestra 5V, vamos a suponer que son 3V, así conseguiremos que detecte el PIC los estados 1 y 0. Ya que dices que son 3V, fíajte bien. ¿Son 3V o 3.3V realmente?Koolk escribió:
Ya estoy preparando el PIC16F886 de 28 pines. Tienes 8 sensores como mínimo del puerto C. Si quieres más entradas y salidas también más pines por ahí.
RC0 = Reset
RC1 = Eject
RC2 = Open
RC3 = Close
RC4 = Brake
RC5 = Libre
RC6 = Libre
RC7 = Libre
---------------------------------
TOTAL = 5 de 8 entradas. (Recuerda que con este PIC16F886 tienes más entradas o salidas).
¿Deseas algún sensor más?
De la imagen que pusiste arriba para conectar el Reset, etc. ¿Sabes la tensión o voltios que tiene?
Saludo.
Ahora que lo pienso, para detectar modo stamby ó encendido, sería mejor conectar entradas a "green on" y "red on" que no solo a reset. Esas entradas funcionarían igual que todas, pulso bajo en red significaria consola en stamby, y pulso bajo en green estaría encendida.
Cierto. Hay que averiguar de cuantos son los pulsos. En PIC detecta pulso alto a 5V y pulso bajo a 0V. ¿Sabes cuál es el que indicas? Parece que son 12V. No te preocupes, ya me encargaré de estos temas para que funcione bien.
Podría ser algo así.
RC0 = Reset : Si está red a 0, al detectar reset = 0, mostría mensaje "encendiendo", si está green a 0 y detecta reset = 0 --> mensaje reiniciando
RC1 = Eject : Si está close a = (Aquí no has puesto nada), y detecta pulso bajo en eject -> mensaje "abriendo bandeja", hasta que open = 0 --> "bandeja abierta". Después sería "cerrando", "cerrada" siguiendo el procedimiento al revés
RC2 = Open
RC3 = Close
RC4 = Brake Si = 1, "disco parado", sí = 0 "Disco girando"
RC5 = green : Si green = 0 -> "consola encendida"
RC6 = red : Si red = 0 -> "consola apagada"
RC7 = mc : Sí mc=1, pixeles del lcd que encienden al leer/ecribir mc, si = 0 pixeles apagadosDe la imagen que pusiste arriba para conectar el Resent, etc. ¿Sabes la tensión o voltios que tiene?
tanto para reset como eject, mientras se acciona el pulsador hay un pulso bajo, si está en reposo no habría nada.
Cada vez hay más mensajes. Si esto sigue así a lo plan bestia, habrá que usar una EEPROM externa. jejejeje. no te preocupes, lo bueno de la EEPROM externa, es que puedes con un programador barato de 10€, grabar cualquier mensaje directamente hasta guardarlo en un .txt.
Piensa en todos los sensores e ideas que quieras. Cada vez tenemos las cosas claras. Ya que sobran pines, también te recuerdo que lo puedes usar como salidas. Ejemplos: Zumbador de 5V, para que te pinte la PS2 dependiendo de un acción, activar o desactivar otros motores que tengas para refigeración de PS2, etc...
Saludos
Muy bueno el vídeo, pero las Memory Card que tengo son de 8 MB, quizás sea diferente.
No lo detecta. Hay PIC que si son de 3v. Si es para este PIC que funcionan a 5V como el 16F886, se mete la salida de 3V a la base de un transistor, de ahí al PIC con sus 5V.
En la imagen de abajo cuya entrada muestra 5V, vamos a suponer que son 3V, así conseguiremos que detecte el PIC los estados 1 y 0. Ya que dices que son 3V, fíajte bien. ¿Son 3V o 3.3V realmente?
Ahora que lo pienso, para detectar modo stamby ó encendido, sería mejor conectar entradas a "green on" y "red on" que no solo a reset. Esas entradas funcionarían igual que todas, pulso bajo en red significaria consola en stamby, y pulso bajo en green estaría encendida.
Cierto. Hay que averiguar de cuantos son los pulsos. En PIC detecta pulso alto a 5V y pulso bajo a 0V. ¿Sabes cuál es el que indicas? Parece que son 12V. No te preocupes, ya me encargaré de estos temas para que funcione bien.
RC0 = Reset
Si está red = 0, al detectar reset = 0, mostría mensaje "encendiendo"
Si está green = 0 y detecta reset = 0 mostría mensaje "reiniciando"
RC1 = Eject
Si está close a = 0, y detecta pulso bajo en eject -> mensaje "abriendo bandeja", hasta que open = 0 --> "bandeja abierta". Después sería "cerrando", "cerrada" siguiendo el procedimiento al revés
RC2 = Open
RC3 = Close
RC4 = Brake
Si brake = 1, "disco parado", sí brake = 0 "Disco girando"
RC5 = green
Si green = 0 -> "consola encendida"
RC6 = red
Si red = 0 -> "consola apagada"
RC7 = mc
Sí mc = 1, pixeles del lcd que encienden al leer/ecribir mc, si mc = 0 pixeles apagados
Cada vez hay más mensajes. Si esto sigue así a lo plan bestia, habrá que usar una EEPROM externa. jejejeje.
Ahora cosas malas que anunciarte, he abierto la ps2 y le he soldado cables a todos esos puntos para comprobar que toda la información era correcta, y me he dado cuenta de que el punto al que llamamos "brake", no funciona de la forma que yo creía. Es un punto de control, pero no podemos sacar lógica ttl "entendible" por el pic a partir de ahí.
No pasa nada, se buscará en otro punto.
te he dado información errónea, lo siento.
No pasa nada campeón. Los errores forman parte del aprendizaje. Ya sabemos que no, ahora toca buscar una solución si es que realmente existe.
Se me ha calentado la ps2 por tenerla trabajando sin ventilador xD Tengo que esperar a que se enfrie.
Si, puedes poner un ventilador de PC encima.
Koolk escribió:Otra cosa. Lo de la Memory Card no es lo mismo leyendo datos que guardado. Asegúrate bien como funciona el Led. Quiero saber si el mismo Led hace de función lectura/escritura de datos a la vez. Si está separado se puede añadir en el LCD lectura y escritura de la Memory Card.
Koolk escribió:Estoy un poco perdido. Deja ver si me explico y me cuentas.1) Con la bandeja cerrada. ¿Está el "Close" a 1 o a 0?
2) Si pulso "Eject", mientras la bandeja esté saliendo en todo momento. Supongamos que está a la mitad de abrirse. ¿Qué estado tiene "Close" en este momento 1 ó 0?
3) Mientras la bandeja está cerrada o abriéndose, supuestamente parece que "Open" está a 1. ¿Cierto?
4) Si "Open" se pone a 0 entonce la bandeja está abierta.
5) Si pulso "Eject" de nuevo. La bandeja se cerrará, entonces, ¿"Open" se pone a 0 justo cuando la bandeja se está cerrando o haya cerrado del todo?
Saludo.
; ZONA DE DATOS **********************************************************************
TITLE "LCD Sensor PS2"
SUBTITLE "Revisión 1.00"
LIST P=16F886
INCLUDE <P16F886.INC>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
CBLOCK 0x20
CONTADOR
ENDC
#DEFINE RESET_ PORTC,0
#DEFINE EJECT PORTC,1
#DEFINE OPEN PORTC,2
#DEFINE CLOSE PORTC,3
#DEFINE BREAK PORTC,4
#DEFINE _1 PORTC,5
#DEFINE _2 PORTC,6
#DEFINE _3 PORTC,7
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
call LCD_Inicializa
BANKSEL TRISC ; Banco 1.
bsf RESET_ ; Se configura como entradas.
bsf EJECT
bsf OPEN
bsf CLOSE
bsf BREAK
bsf _1
bsf _2
bsf _3
BANKSEL PORTC ; Banco 0.
clrw
Principal
movf PORTC,W ; Lee los sensores.
andlw b'00000111' ; Máscara para quedarse con el valor de los sensores.
addwf PCL,F ; Salta a la configuración adecuada.
goto Configuracion0 ; 0 0 0
goto Configuracion1 ; 0 0 1
goto Configuracion2 ; 0 1 0
goto Configuracion3 ; 0 1 1
goto Configuracion4 ; 1 0 0
goto Configuracion5 ; 1 0 1
goto Configuracion6 ; 1 1 0
goto Configuracion7 ; 1 1 1
Configuracion0
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje1_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea2
movlw Mensaje1_2
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea3
movlw Mensaje2_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea4
movlw Mensaje2_2
call LCD_Mensaje
goto ActivaSalida
Configuracion1 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje4_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea2
movlw Mensaje4_2
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea3
movlw Mensaje3_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea4
movlw Mensaje3_2
call LCD_Mensaje
goto ActivaSalida
Configuracion2 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje3_1
call LCD_Mensaje
call LCD_Linea2
movlw Mensaje3_2
call LCD_Mensaje
goto ActivaSalida
Configuracion3 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje4_1
call LCD_Mensaje
call LCD_Linea2
movlw Mensaje4_2
call LCD_Mensaje
goto ActivaSalida
Configuracion4
goto ActivaSalida
Configuracion5
goto ActivaSalida
Configuracion6
goto ActivaSalida
Configuracion7
goto ActivaSalida
ActivaSalida
; movwf PORTB
goto Principal
;
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
addwf PCL,F
Mensaje1_1
DT "PlayStation 2: OFF", 0x00
Mensaje1_2
DT "Abriendo bandeja.", 0x00
Mensaje2_1
DT "Motor parado.", 0x00
Mensaje2_2
DT "MC:", 0x00
Mensaje3_1
DT "Mensaje 3-1 ", 0x00
Mensaje3_2
DT "Mensaje 3-2 ", 0x00
Mensaje4_1
DT "Mensaje 4-1 ", 0x00
Mensaje4_2
DT "Mensaje 4-2 ", 0x00
FinTabla
;MensajeAnuncio
; DT " foros elec. ", 0x00
IF (FinTabla > 0xFF)
ERROR "¡CUIDADO!: La tabla ha superado el tamaño de la página de los"
MESSG "primeros 256 bytes de memoria ROM. NO funcionará correctamente."
ENDIF
INCLUDE <LCD_4BIT.INC>
INCLUDE <LCD_MENS.INC>
INCLUDE <RETARDOS.INC>
END
Koolk escribió:El esquema de la bandeja es así por lo que he entendido hasta ahora.
Koolk escribió:Hi:
Estoy casi seguro que el motor es un motor paso a paso. ¿Ves las H+ y H-?
Son las bobinas del motor y se controla por 4 por lo que veo. No es un motor de continua de dos cablitos, este tiene 8. Si fuera así sería fácil. Por ahí tiene que haber un aviso de estado del motor cuando está activo.
El BA6664FM habrá por ahí cerca para saber si el motor está en marcha o no. No es buena idea coger una pequeña corriente de unas de sus bobinas ya que no obtendría la velicidad adecuada con el resultado no esprado.
Koolk escribió:Mirando la tabla de verdad. Fíjate bien en todo y lo puedes completar si me he despistado. Cuando acabe la tabla de la verdad COMPLETA, empezaré a programar el PIC, después te daré el simulador de prueba para que juegues con él. El simulador es el reflejo de la posible realidad.
Ahora mismo a estas horas voy a armar la PS2 en una sola pieza. Tardaré pero quiero probar lo de la Memory Card. Ya te avisaré cuando la tenga montada.
Koolk escribió:Acaba de encender la PS2, pero el disco no gira. Da muchos fallos en el botón Eject. Se me fastidió el cablito fino. Deja ver si consigo uno por Inernet, pero moviéndolo bien puedo encender la PS3 sin que se me encienda el LEd azul. No puedo juegar, el disco no gira pero puedo comprobar la MC.
Me cuesta encontrar esquemas de la MC.
Cambio de última hora para que lo sepas. No me lee nada la Memory Card en el tester, si lo detecta la PS2, pero no me da tiempo al medir. Cuando lo logro no me sale nada de tensión. Intentará más tarde haber que pasa con la MC.
Otra cosa con la MC. Tiene dos MC, la MC1 y la MC2. Usaré 2 pines del PORTA del PIC16F886 y el pin RC7 del PORTC lo dejaremos para otro sensor que busquemos. Así en el LCD pondré algo de esto:
MC1: * MC2: *
Si sale el * parpadeando, significa lectura/excritura de datos de la Memory Card.
Si no me ocurre una cosa me ocurre otra.
Koolk escribió:Ya que quieres ver un trozo de código del PIC, este es un formato de prueba para mostrar algún mensaje del LCD. Está a la chapuza, no me extraña que no entiendas mucho.; ZONA DE DATOS **********************************************************************
TITLE "LCD Sensor PS2"
SUBTITLE "Revisión 1.00"
LIST P=16F886
INCLUDE <P16F886.INC>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
CBLOCK 0x20
CONTADOR
ENDC
#DEFINE RESET_ PORTC,0
#DEFINE EJECT PORTC,1
#DEFINE OPEN PORTC,2
#DEFINE CLOSE PORTC,3
#DEFINE BREAK PORTC,4
#DEFINE _1 PORTC,5
#DEFINE _2 PORTC,6
#DEFINE _3 PORTC,7
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
call LCD_Inicializa
BANKSEL TRISC ; Banco 1.
bsf RESET_ ; Se configura como entradas.
bsf EJECT
bsf OPEN
bsf CLOSE
bsf BREAK
bsf _1
bsf _2
bsf _3
BANKSEL PORTC ; Banco 0.
clrw
Principal
movf PORTC,W ; Lee los sensores.
andlw b'00000111' ; Máscara para quedarse con el valor de los sensores.
addwf PCL,F ; Salta a la configuración adecuada.
goto Configuracion0 ; 0 0 0
goto Configuracion1 ; 0 0 1
goto Configuracion2 ; 0 1 0
goto Configuracion3 ; 0 1 1
goto Configuracion4 ; 1 0 0
goto Configuracion5 ; 1 0 1
goto Configuracion6 ; 1 1 0
goto Configuracion7 ; 1 1 1
Configuracion0
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje1_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea2
movlw Mensaje1_2
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea3
movlw Mensaje2_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea4
movlw Mensaje2_2
call LCD_Mensaje
goto ActivaSalida
Configuracion1 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje4_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea2
movlw Mensaje4_2
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea3
movlw Mensaje3_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea4
movlw Mensaje3_2
call LCD_Mensaje
goto ActivaSalida
Configuracion2 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje3_1
call LCD_Mensaje
call LCD_Linea2
movlw Mensaje3_2
call LCD_Mensaje
goto ActivaSalida
Configuracion3 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje4_1
call LCD_Mensaje
call LCD_Linea2
movlw Mensaje4_2
call LCD_Mensaje
goto ActivaSalida
Configuracion4
goto ActivaSalida
Configuracion5
goto ActivaSalida
Configuracion6
goto ActivaSalida
Configuracion7
goto ActivaSalida
ActivaSalida
; movwf PORTB
goto Principal
;
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
addwf PCL,F
Mensaje1_1
DT "PlayStation 2: OFF", 0x00
Mensaje1_2
DT "Abriendo bandeja.", 0x00
Mensaje2_1
DT "Motor parado.", 0x00
Mensaje2_2
DT "MC:", 0x00
Mensaje3_1
DT "Mensaje 3-1 ", 0x00
Mensaje3_2
DT "Mensaje 3-2 ", 0x00
Mensaje4_1
DT "Mensaje 4-1 ", 0x00
Mensaje4_2
DT "Mensaje 4-2 ", 0x00
FinTabla
;MensajeAnuncio
; DT " foros elec. ", 0x00
IF (FinTabla > 0xFF)
ERROR "¡CUIDADO!: La tabla ha superado el tamaño de la página de los"
MESSG "primeros 256 bytes de memoria ROM. NO funcionará correctamente."
ENDIF
INCLUDE <LCD_4BIT.INC>
INCLUDE <LCD_MENS.INC>
INCLUDE <RETARDOS.INC>
END
Saludo.
airam1809 escribió:Koolk escribió:El esquema de la bandeja es así por lo que he entendido hasta ahora.
No había visto esto. El esquema es así, y no puede haber ninguna funcion en 0/0 ya que eso es fisicamente imposible a no ser que fuerces sensores.
Es lo que quería saber. Muchas gracias.
Perdona por tardar, el PC se me reiniciaba cada dos por tres, e incluso no me encendía, reparé la fuente de alimentación, la memoria RAM se colgaba y me funcionaba la mitad. Llevo desde las 14:00 hasta las más de las 20:00 investigando el fallo. Por fin me puedo conectar al PC. Que susto, me vi sin ordenador durante muchos meses.Koolk escribió:Hi:
Estoy casi seguro que el motor es un motor paso a paso. ¿Ves las H+ y H-?
Son las bobinas del motor y se controla por 4 por lo que veo. No es un motor de continua de dos cablitos, este tiene 8. Si fuera así sería fácil. Por ahí tiene que haber un aviso de estado del motor cuando está activo.
El BA6664FM habrá por ahí cerca para saber si el motor está en marcha o no. No es buena idea coger una pequeña corriente de unas de sus bobinas ya que no obtendría la velicidad adecuada con el resultado no esprado.
Mmmm, un motor Dc normal se le podría sacar un 1/0 de forma sencilla, ya que siempre gira en el mismo sentido, pero un paso-a-paso no tengo ni idea. Yo sigo probando con el BA, ya contaré.
Puede que haya un punto que indique algo del motor activo o no.Koolk escribió:Mirando la tabla de verdad. Fíjate bien en todo y lo puedes completar si me he despistado. Cuando acabe la tabla de la verdad COMPLETA, empezaré a programar el PIC, después te daré el simulador de prueba para que juegues con él. El simulador es el reflejo de la posible realidad.
Ahora mismo a estas horas voy a armar la PS2 en una sola pieza. Tardaré pero quiero probar lo de la Memory Card. Ya te avisaré cuando la tenga montada.
La tabla no la entiendo mucho, a ver si puedes explicarme como funciona y ya cuando la sepa manejar me pongo a ella.
En cada línea en horizontal, significa los estados en cada momento que le entran datos de los sensores al PIC al mismo tiempo. Sólo eso. Lo voy a modificar. Fíjate donde pone "Iniciando...". Sólo puse un 0 en "Red" y "Reset" ya que indicaste que si detecta estos 0 significa "Iniciando". No he puesto ningún dato más en los otros sensores, sólo debo pones "x" ya que no importa los estados en esos momento desde que inicie el sistama PlayStation 2.
Así con cada línea horizontal. ¿Entiendes ahora?
Si no lo entiendes te lo explicaré mejor en dibujo, como debo dibujar, tardaré hacer la explicaciónen dibujo para que se entienda, entiendan o entendamos mejor pasa a paso para poder seguir sin perdernos por el camino. Como he modificado la parte del "Brake" y las Memory Card, debo cambiar el código fuente desde cero al PIC que ya te pasaré. Claro que antes debo poner en cada sensor el pin al PIC.Koolk escribió:Acaba de encender la PS2, pero el disco no gira. Da muchos fallos en el botón Eject. Se me fastidió el cablito fino. Deja ver si consigo uno por Inernet, pero moviéndolo bien puedo encender la PS3 sin que se me encienda el LEd azul. No puedo juegar, el disco no gira pero puedo comprobar la MC.
Me cuesta encontrar esquemas de la MC.
Cambio de última hora para que lo sepas. No me lee nada la Memory Card en el tester, si lo detecta la PS2, pero no me da tiempo al medir. Cuando lo logro no me sale nada de tensión. Intentará más tarde haber que pasa con la MC.
Otra cosa con la MC. Tiene dos MC, la MC1 y la MC2. Usaré 2 pines del PORTA del PIC16F886 y el pin RC7 del PORTC lo dejaremos para otro sensor que busquemos. Así en el LCD pondré algo de esto:
MC1: * MC2: *
Si sale el * parpadeando, significa lectura/excritura de datos de la Memory Card.
Si no me ocurre una cosa me ocurre otra.
Entonces tampoco te aparece tensión en el pin 1 de la mc? :ss cosa rara, ese punto tendremos que seguir mirando. El modo de mostrarlo en el lcd me parece muy acertado, no se me habría ocurrido eso.
respecto a la avería, lo siento. Dime de donde eres, alomejor estamos cerca uno del otro, y no me importaría conseguirte un cable o repararte ese que tienes (se puede sultituir por cables de dentro de los cat. 5e)
Vivo muy lejos de ti. Estoy buscando esos cables por ahí a ver quien tiene uno. En internet lo he encontrado por ahí y éste es un enlace de ello que me parece caro para lo que es, incluyendo el IGIC, aduanas y gastos de envío que no se incluye, para eso me compro otra PS2 FAT a 40 € como venden por ahí, al menos antes.Koolk escribió:Ya que quieres ver un trozo de código del PIC, este es un formato de prueba para mostrar algún mensaje del LCD. Está a la chapuza, no me extraña que no entiendas mucho.; ZONA DE DATOS **********************************************************************
TITLE "LCD Sensor PS2"
SUBTITLE "Revisión 1.00"
LIST P=16F886
INCLUDE <P16F886.INC>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
CBLOCK 0x20
CONTADOR
ENDC
#DEFINE RESET_ PORTC,0
#DEFINE EJECT PORTC,1
#DEFINE OPEN PORTC,2
#DEFINE CLOSE PORTC,3
#DEFINE BREAK PORTC,4
#DEFINE _1 PORTC,5
#DEFINE _2 PORTC,6
#DEFINE _3 PORTC,7
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
call LCD_Inicializa
BANKSEL TRISC ; Banco 1.
bsf RESET_ ; Se configura como entradas.
bsf EJECT
bsf OPEN
bsf CLOSE
bsf BREAK
bsf _1
bsf _2
bsf _3
BANKSEL PORTC ; Banco 0.
clrw
Principal
movf PORTC,W ; Lee los sensores.
andlw b'00000111' ; Máscara para quedarse con el valor de los sensores.
addwf PCL,F ; Salta a la configuración adecuada.
goto Configuracion0 ; 0 0 0
goto Configuracion1 ; 0 0 1
goto Configuracion2 ; 0 1 0
goto Configuracion3 ; 0 1 1
goto Configuracion4 ; 1 0 0
goto Configuracion5 ; 1 0 1
goto Configuracion6 ; 1 1 0
goto Configuracion7 ; 1 1 1
Configuracion0
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje1_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea2
movlw Mensaje1_2
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea3
movlw Mensaje2_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea4
movlw Mensaje2_2
call LCD_Mensaje
goto ActivaSalida
Configuracion1 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje4_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea2
movlw Mensaje4_2
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea3
movlw Mensaje3_1
call LCD_Mensaje
call LCD_LineaEnBlanco
call LCD_Linea4
movlw Mensaje3_2
call LCD_Mensaje
goto ActivaSalida
Configuracion2 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje3_1
call LCD_Mensaje
call LCD_Linea2
movlw Mensaje3_2
call LCD_Mensaje
goto ActivaSalida
Configuracion3 ;
call LCD_LineaEnBlanco
call LCD_Linea1
movlw Mensaje4_1
call LCD_Mensaje
call LCD_Linea2
movlw Mensaje4_2
call LCD_Mensaje
goto ActivaSalida
Configuracion4
goto ActivaSalida
Configuracion5
goto ActivaSalida
Configuracion6
goto ActivaSalida
Configuracion7
goto ActivaSalida
ActivaSalida
; movwf PORTB
goto Principal
;
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
addwf PCL,F
Mensaje1_1
DT "PlayStation 2: OFF", 0x00
Mensaje1_2
DT "Abriendo bandeja.", 0x00
Mensaje2_1
DT "Motor parado.", 0x00
Mensaje2_2
DT "MC:", 0x00
Mensaje3_1
DT "Mensaje 3-1 ", 0x00
Mensaje3_2
DT "Mensaje 3-2 ", 0x00
Mensaje4_1
DT "Mensaje 4-1 ", 0x00
Mensaje4_2
DT "Mensaje 4-2 ", 0x00
FinTabla
;MensajeAnuncio
; DT " foros elec. ", 0x00
IF (FinTabla > 0xFF)
ERROR "¡CUIDADO!: La tabla ha superado el tamaño de la página de los"
MESSG "primeros 256 bytes de memoria ROM. NO funcionará correctamente."
ENDIF
INCLUDE <LCD_4BIT.INC>
INCLUDE <LCD_MENS.INC>
INCLUDE <RETARDOS.INC>
END
Saludo.
Entiendo muchas cosas, pero también hay otras muchas que no. He conseguido el libro del pic 16f84 ese que tu tienes, es bueno? me lo estoy empezando
Es buenísimo y con él estoy aprendiendo mucho. En el apartado PRÓLOGO XXIII de la tercera edición me parace mi nombre como colaborador. Muy recomendado el libro.
Voy a cambiar el código y no será al estilo como que te publiqué, sino a mi manera ya que usamos 7 bits de un puerto y dos del otro. Procuraré hacer un diagrama de flujo para el código.
Otra cosa. ¿Te interesa el pin sobrante meterle un Zumbador de 5V. Funciona como los PC, al ensenderse la PS2 suena un pitido, al apagarse suene tres pitidos, con posibilidad de desactivación?
Sigo probando y ahora comento, saludos
EDITO: El control del disco se me resiste, puedo controlar el disco poniendo puntos a 0v, a 1v o a 2.5v, pero no detectar cuando lo hace la consola automaticamente (me da que son micropulsos...)
Si son micropulsos, los motores paso a paso PAP funcionan así.
A ver si tu tienes mas suerte con la mc
Seguiré investigando. No me lee el lector y me falla los botones Poweer y Eject. Espero que esto no le afecte a lo que busco.
Parece ser que mi modelo de la PS2 es la V7.
http://www.vilecha.com/Neo/mod_con.html
Hay 19 modelos de PS2 y no todas las Web las comentan.
Koolk escribió:Hay que dejar claro que si el Led verde está verde, significa 1 y es constante. El botón Reset y Eject si lo pulsas un avez se queda 1 pero luego vuelve el estado a 0. Hay que tenerlo en cuenta al programarlo.
3.2 Bandeja abierta y pulsamos para cerrar -> cerrando bandeja
red = x
green = 0
open = 0
close = x
reset = x
eject = 0
Obviamente aparecería solo un segundo, se debería meter un temporizador o algo para que el mensaje se quede más tiempo))
airam1809 escribió:Mira, así tengo yo mi mc (con un leds de esos cuadrados)
El GND es todo lo que indicas con la flecha hasta el patillaje 4 de la MC.
En cuanto a las imágenes y a los puntos del puerto de mandos me parece genial. Ya solo queda que te pongas con el programa no?
Hay que comprobar primero que no falle nada de nada antes de programarlo. Lo reviso y te digo.
Si tienes algún zócalo por ahí creo que ya lo podrías montar, al menos para ir probando. Cuando quieras cambiar la programación solo sería quitarlo del zócalo y enchufarlo en el programador, mucho menos engorroso que tener que desoldar cables.
Mejor usar zócalos para tu PCB.
En cuanto al circuito eléctrico cualquier duda me la pasas, ya sea de puntos o del circuito de alimentación.. que por cierto que vas a usar un 7805?
¿Dónde lo vamos a conectar? Dentro de la PS2 o con fuente de alimentación externa. Eso es lo primero que debes preguntarte. Si hay que coger 5V por ahí en la PS2 que no le afecte lo cogeremos, pero debo saber cuando consumen en total. Los Led del LCD consume lo suyo, así que cogeré la tensión en la PS2 corriente por ahí.
OFF: El libro me lo estoy leyendo poco a poco y se ve genial aunque me asaltan algunas dudas. Solo es necesario meterle a alimentación y activar el reset para que funcione? Porque pensaba que necesitaría componentes externos tipo condensadores u osciladores...
Tampoco tengo programador, había pensado en montar este, es recomendable?
Por último haber si me pudieras recomendar algún sitio donde pillar el material, me he estado mirando rs-online pero no sé como serán...
Ya me comentarás que tal, Saludos
Koolk escribió:¿Dónde lo vamos a conectar? Dentro de la PS2 o con fuente de alimentación externa. Eso es lo primero que debes preguntarte. Si hay que coger 5V por ahí en la PS2 que no le afecte lo cogeremos, pero debo saber cuando consumen en total. Los Led del LCD consume lo suyo, así que cogeré la tensión en la PS2 corriente por ahí.
airam1809 escribió:Koolk escribió:¿Dónde lo vamos a conectar? Dentro de la PS2 o con fuente de alimentación externa. Eso es lo primero que debes preguntarte. Si hay que coger 5V por ahí en la PS2 que no le afecte lo cogeremos, pero debo saber cuando consumen en total. Los Led del LCD consume lo suyo, así que cogeré la tensión en la PS2 corriente por ahí.
Yo lo conectaría directo a la fuente de alimentación, pasando por un fusible y un 7805 para conseguir 5v estables. La fuente puede de sobra con el pic y el lcd (aunque desconozco su consumo)
Lo haremos así como dices.
Ten en cuenta que la fuente está diseñada para aguantar lo suyo, ejemplo de ponerla a tope: Consola con dvd dentro, volcando un juego al hdd, con 8 memorys, 8 mandos, el consumo de los adaptadores, y 2 discos externos usb. Sí, una burrada que no hace nadie, pero lo aguanta. Dudo mucho que el lcd tire más que un hdd, por ejemplo.
Cierto. Entonces no hay problema, querías hasta conectarlo en el USB, que por cierto, cada vez que lo mido con el tester se me apaga la SP2. El LCD lo acaba de comprobar, que los LED de retroiluminación que son muchos, consumen aproximadamente 140 mA a 5V.
En cuanto a la imagen, ese estado sería cerrando, ya que cuando apagas con la bandeja abierta y luego enciendes, la bandeja se cierra (da igual que pulses eject o reset). Es un pelín rebuscao pero son cosas que hay que tener en cuenta. Buen apunte ,jejejej
Los programadores me lo miro a ver que tal, gracias
Eso, pueden dar pistas. ejjeje.
Saludos
PD: Parece que este hilo sea exclusivamente nuestro, y me consta que aquí hay gente que domina mucho de hardware de ps2, gente que con solo mirar sabrían ayudarnos con nuestros problemas al detectar lectura de mc o giro del motor.. ¿Donde estáis?
A ver si vienen algún día gente. Porque se que hay gente que le interesa los LCD.
EDIT; Ahora que lo pienso serían dos estados, stamby con bandeja abierta (cuando vuelve la luz) y encendida cerrando bandeja (estado 5)
Me he dado cuenta que en cada Memory Card hay que usar dos pines de los Led. Entoncen en el LCD se mostraría así:
>MC1* MC2
El símbolo > al lado de MC1 significa que está conectada a la PS2, y el * que parpadea mientras pasa datos al guardar o leer.
Si se te ocurre otra manera mejor avisa desde aquí.
vita1911 escribió:yo utilizo un DD externo y el volante conectado a los puertos usb, se veria muy bien leds parpadeando constantemente cuando la informacion fluye.
vita1911 escribió:metiendo la cucharota donde no me llaman, pero....
... asi como yo, hay muchos que no usan discos (DVDs), solo usamos pendrives o discos duros externos, los cuales conectamos por medio de los puertos (2) USB que tiene el PS2.
pueden tomarlos en cuenta (si es que ustedes quieren) para alguna programacion, o tambien para que cuando se conecte un pendrive o DD externo, con un led, indicar que esta leyendo o que esta conectado.
Lo tendremos en cuenta. Hay que hacerlo paso por paso y si es que realmente se puede hacer y logro hacerlo.
yo utilizo un DD externo y el volante conectado a los puertos usb, se veria muy bien leds parpadeando constantemente cuando la informacion fluye.
bueno, es una idea, asi como la idea de las memory cards, pero colocar los leds en la carcasa del PS2.
4 leds, uno para la memory card 1, otro para la memory card 2, otro para el puerto usb 1 y el otro para el puerto usb 2.
Ruddi.
salu...
PD EDITO ¿como puedo poner la foto para que se vea?
airam1809 escribió:@vita1911, Aguanta 12v sin problemas. En cuanto a leds usb a ver si tienes alguna información
Aguanta 12V, 0.16 Amp. Consume muy poquito, alguno ventiladores de PC consumen idéntico al de la PS2, lo normal para PC son 12V, 0.26A. Si saco energía de esos ventiladores, el ventitador ventila poco. jejejeje. Suena gracioso pero es así. Mejor no tocarlo.
@Koolk, hdd interno lo he estado mirando es es facil de implementar. Hay un punto en la placa que cuando se lee/escribe el hdd = 0
No sabía eso del disco duro. Es bueno saberlo. Voy a volver hacer otra tabla de la verdad. Es bueno sacar esquemas de esto y fotos.
Saludos