[Modificación] Hacer algo con la PS2 vieja. Instalación LCD visualización de disco insertado

vita1911 escribió:
airam1809 escribió:@vita1911 En cuanto a leds usb a ver si tienes alguna información

Saludos


yo decia, asi como los leds de las memory card, que se tomara la "corriente" o energia, desde la misma tarjeta del ps2 fat.
lo que no se, es si afecta la perdida de energia (por consumo del led) la informacion que fluye.

tomar la energia de "por aqui" (no se de donde XD)

Imagen

El motor no le debe faltar energía, si pones un Led por ahí le quitarás velocidad al motor. Hay más sitios por ahí para cger energía.

@Koolk: yo decia para poner el ventilador directo.
creo que tiene alguna resistencia que lo hacer girar muy lento.

Siempre tienen resistencia de protección.

@airam1809 y @Koolk:
el ventilador de la ps2 slim, tiene 3 cables, rojo, negro y amarillo. rojo (+), negro (-), amarillo (?).

El ventilador de la Slim no se como es. He encontrado lo de los tres cables.
http://www.cannabiscafe.net/foros/showt ... hp?t=45988
http://www.laneros.com/archive/index.php/t-17379.html

Ruddi.

salu...


Imagen
jajajajajajajajajaja...

.... no Koolk, yo decia de tomar la energia de "por ahi", con respecto a la energia que pasa por el puero usb, pero para poner un led, y que encienda cuando pasa la informacion, asi como en las memory card.

http://i34.servimg.com/u/f34/12/64/46/27/usb1al10.png

del punto 2 y 3, es por esos puertos donde pasa la informacion hacia un pendrive, o no?
es de "ahi", de los puertos usb del ps2, donde quisiera colocar un led, para que al momento que pase informacion se encienda.

lo del ventilador, ya esta resuelto, ponder uno externo para mejorar el enfriamiento. [sonrisa]

Ruddi.

salu...
Se a lo que te refieres con lo del usb vita1911. Te explico, el puerto usb tiene vcc (5v), Gnd, y luego 2 cables de datos. Si pillamos el led de vcc y gnd se quedaría siempre encendido, y si lo pillamos de la señal "datos +" funciona bien (parpadea al leer/escribir en el disco), el problema es que de esta manera casi al 100% de las veces interfiere con el hardware y termina creando problemas...

En definitiva, que por ahora no sé ninguna manera realmente efectiva de hacer eso que quieres. La única manera es, si ese disco dispone ya de un led, o se trata de un disco IDE, cablear desde el disco hasta la consola y ahí mostrar un led lectura/escritura, un lío amos..

En cuanto al ventilador, los de la ps2 fat aguantan 12v sin problemas, es más, yo lo tengo así desde hace años y da una mejor refrigeración.

Los de ps2 slim llevan 3 cables, el cable amarillo en ventiladores de pc es de control de rpm, opcional. En ps2 no sé como irá (puede que sea igual que los de pc, o que ese 3er cable sea para una 2da velocidad), y ahora mismo no tengo ninguna ps2 slim para mirar, cuando me entre una te digo... De todos modos puedes probar tu mismo a meterle 5 voltios a los otros dos cables (rojo + y negro - ) y probar si funciona.

Te digo 5v porque es una tensión segura para probar, y si te equivocas no estropearas nada. Esos ventiladores tienen que aguantar 8.5v mínimo

Koolk la ultima url no se ve, y coméntame si has mirado lo del punto del hdd.

Saludos
airam1809 escribió:Se a lo que te refieres con lo del usb vita1911. Te explico, el puerto usb tiene vcc (5v), Gnd, y luego 2 cables de datos. Si pillamos el led de vcc y gnd se quedaría siempre encendido, y si lo pillamos de la señal "datos +" funciona bien (parpadea al leer/escribir en el disco), el problema es que de esta manera casi al 100% de las veces interfiere con el hardware y termina creando problemas...

En definitiva, que por ahora no sé ninguna manera realmente efectiva de hacer eso que quieres. La única manera es, si ese disco dispone ya de un led, o se trata de un disco IDE, cablear desde el disco hasta la consola y ahí mostrar un led lectura/escritura, un lío amos..

En cuanto al ventilador, los de la ps2 fat aguantan 12v sin problemas, es más, yo lo tengo así desde hace años y da una mejor refrigeración.

Los de ps2 slim llevan 3 cables, el cable amarillo en ventiladores de pc es de control de rpm, opcional. En ps2 no sé como irá (puede que sea igual que los de pc, o que ese 3er cable sea para una 2da velocidad), y ahora mismo no tengo ninguna ps2 slim para mirar, cuando me entre una te digo... De todos modos puedes probar tu mismo a meterle 5 voltios a los otros dos cables (rojo + y negro - ) y probar si funciona.

Te digo 5v porque es una tensión segura para probar, y si te equivocas no estropearas nada. Esos ventiladores tienen que aguantar 8.5v mínimo.

Saludos

asunto resuelto.

agradezco mucho sus respuestas.

voy a seguir de cerca este tema, esta sumamente interesante.

Ruddi.

salu...

EDITO miren este video http://www.youtube.com/watch?v=ca-EjUwiAjM
Buenas:

En estos momentos estoy haciendo la Tabla de la Vedad de 64 bits, significa que tardaré en entragarla aquí y debo poner todas las combinaciones posibles.

Saludo.

Estoy haciendo el código base y ya tengo porblemas. Debo buscar otra forma de configuración.


; 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_RC0   PORTC,0
#DEFINE      EJECT_RC1   PORTC,1
#DEFINE      OPEN_RC2   PORTC,2
#DEFINE      CLOSE_RC3   PORTC,3
#DEFINE      GREEN_RC4   PORTC,4
#DEFINE      RED_RC5      PORTC,5
#DEFINE      Auxiliar_6   PORTC,6
#DEFINE      Auxiliar_7   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_RC0               ; Se configura como entradas.
   bsf      EJECT_RC1
   bsf      OPEN_RC2
   bsf      CLOSE_RC3               
   bsf      GREEN_RC4
   bsf      RED_RC5
   bsf      Auxiliar_6
   bsf      Auxiliar_7
   BANKSEL   PORTC               ; Banco 0.
   clrw

Principal
   movf   PORTC,W            ; Lee los sensores.
   andlw   b'00111111'         ; Máscara para quedarse con el valor de los sensores.
   addwf   PCL,F            ; Salta a la configuración adecuada.
   goto   Configuracion0      ; 0 0 0 0 0 0
   goto   Configuracion1      ; 0 0 0 0 0 1
   goto   Configuracion2      ; 0 0 0 0 1 0
   goto   Configuracion3      ; 0 0 0 0 1 1
   goto   Configuracion4      ; 0 0 0 1 0 0
   goto   Configuracion5      ; 0 0 0 1 0 1
   goto   Configuracion6      ; 0 0 0 1 1 0
   goto   Configuracion7      ; 0 0 0 1 1 1
   goto   Configuracion8      ; 0 0 1 0 0 0
   goto   Configuracion9      ; 0 0 1 0 0 1
   goto   Configuracion10      ; 0 0 1 0 1 0
   goto   Configuracion11      ; 0 0 1 0 1 1
   goto   Configuracion12      ; 0 0 1 1 0 0
   goto   Configuracion13      ; 0 0 1 1 0 1
   goto   Configuracion14      ; 0 0 1 1 1 0
   goto   Configuracion15      ; 0 0 1 1 1 1
   goto   Configuracion16      ; 0 1 0 0 0 0
   goto   Configuracion17      ; 0 1 0 0 0 1
   goto   Configuracion18      ; 0 1 0 0 1 0
   goto   Configuracion19      ; 0 1 0 0 1 1
   goto   Configuracion20      ; 0 1 0 1 0 0
   goto   Configuracion21      ; 0 1 0 1 0 1
   goto   Configuracion22      ; 0 1 0 1 1 0
   goto   Configuracion23      ; 0 1 0 1 1 1
   goto   Configuracion24      ; 0 1 1 0 0 0
   goto   Configuracion25      ; 0 1 1 0 0 1
   goto   Configuracion26      ; 0 1 1 0 1 0
   goto   Configuracion27      ; 0 1 1 0 1 1
   goto   Configuracion28      ; 0 1 1 1 0 0
   goto   Configuracion29      ; 0 1 1 1 0 1
   goto   Configuracion30      ; 0 1 1 1 1 0
   goto   Configuracion31      ; 0 1 1 1 1 1
   goto   Configuracion32
   goto   Configuracion33
   goto   Configuracion34
   goto   Configuracion35
   goto   Configuracion36
   goto   Configuracion37
   goto   Configuracion38
   goto   Configuracion39
   goto   Configuracion40
   goto   Configuracion41
   goto   Configuracion42
   goto   Configuracion43
   goto   Configuracion44
   goto   Configuracion45
   goto   Configuracion46
   goto   Configuracion47
   goto   Configuracion48
   goto   Configuracion49
   goto   Configuracion50
   goto   Configuracion51
   goto   Configuracion52
   goto   Configuracion53
   goto   Configuracion54
   goto   Configuracion55
   goto   Configuracion56
   goto   Configuracion57
   goto   Configuracion58
   goto   Configuracion59
   goto   Configuracion60
   goto   Configuracion61
   goto   Configuracion62
   goto   Configuracion63
Configuracion0                  
   goto   ActivaSalida
Configuracion1                  
   goto   ActivaSalida
Configuracion2               
   goto   ActivaSalida
Configuracion3               
   goto   ActivaSalida
Configuracion4
   goto   ActivaSalida
Configuracion5
   goto   ActivaSalida
Configuracion6
   goto   ActivaSalida
Configuracion7
   goto   ActivaSalida
Configuracion8
   goto   ActivaSalida
Configuracion9
   goto   ActivaSalida
Configuracion10
   goto   ActivaSalida
Configuracion11
   goto   ActivaSalida
Configuracion12
   goto   ActivaSalida
Configuracion13
   goto   ActivaSalida
Configuracion14
   goto   ActivaSalida
Configuracion15
   goto   ActivaSalida
Configuracion16
   goto   ActivaSalida
Configuracion17
   goto   ActivaSalida
Configuracion18
   goto   ActivaSalida
Configuracion19
   goto   ActivaSalida
Configuracion20
   goto   ActivaSalida
Configuracion21
   goto   ActivaSalida
Configuracion22
   goto   ActivaSalida
Configuracion23
   goto   ActivaSalida
Configuracion24
   goto   ActivaSalida
Configuracion25
   goto   ActivaSalida
Configuracion26
   goto   ActivaSalida
Configuracion27
   goto   ActivaSalida
Configuracion28
   goto   ActivaSalida
Configuracion29
   goto   ActivaSalida
Configuracion30
   goto   ActivaSalida
Configuracion31
   goto   ActivaSalida
Configuracion32
   goto   ActivaSalida
Configuracion33
   goto   ActivaSalida
Configuracion34
   goto   ActivaSalida
Configuracion35
   goto   ActivaSalida
Configuracion36
   goto   ActivaSalida
Configuracion37
   goto   ActivaSalida
Configuracion38
   goto   ActivaSalida
Configuracion39
   goto   ActivaSalida
Configuracion40
   goto   ActivaSalida
Configuracion41
   goto   ActivaSalida
Configuracion42
   goto   ActivaSalida
Configuracion43
   goto   ActivaSalida
Configuracion44
   goto   ActivaSalida
Configuracion45
   goto   ActivaSalida
Configuracion46
   goto   ActivaSalida
Configuracion47
   goto   ActivaSalida
Configuracion48
   goto   ActivaSalida
Configuracion49
   goto   ActivaSalida
Configuracion50
   goto   ActivaSalida
Configuracion51
   goto   ActivaSalida
Configuracion52
   goto   ActivaSalida
Configuracion53
   goto   ActivaSalida
Configuracion54
   goto   ActivaSalida
Configuracion55
   goto   ActivaSalida
Configuracion56
   goto   ActivaSalida
Configuracion57
   goto   ActivaSalida
Configuracion58
   goto   ActivaSalida
Configuracion59
   goto   ActivaSalida
Configuracion60
   goto   ActivaSalida
Configuracion61
   goto   ActivaSalida
Configuracion62
   goto   ActivaSalida
Configuracion63
   goto   ActivaSalida
ActivaSalida
;   movwf   PORTB            
   goto    Principal

;
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
   addwf   PCL,F
Mensaje1
   DT   "      STAND BY      ", 0x00
Mensaje2
   DT   "Abri/Cerran bandeja.", 0x00
Mensaje3
   DT    "Bandeja cerrada.", 0x00
Mensaje4
   DT   "Bandeja abierta.", 0x00
Mensaje5
   DT    "     MC1    MC2     ", 0x00
Mensaje6
   DT   "Motor girando...", 0x00
Mensaje7
   DT    "Sony PlayStation 2", 0x00
Mensaje8
   DT   "Mensaje 4-2     ", 0x00
FinTabla
;MensajeAnuncio
;   DT " EOL.net ", 0x00   

   [color=#FF0000][b]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[/b][/color]

   INCLUDE  <LCD_4BIT.INC>
   INCLUDE  <LCD_MENS.INC>
   INCLUDE  <RETARDOS.INC>
   END


O bien, intentaré usar esta técnica:
http://www.pic16f84a.org/index.php?opti ... &Itemid=59

O bien a usar una EEPROM externa como el 24LC256 o el que nos haga falta. Significa más programación y más €uros. Lo bueno que así se programa fácil los mensajes directamente en la EEPROM.

Obien buscar otras alternativas por Internet.
Imagen

Edito:

Aún sigo con el proyecto. Lo que no consigo es que me lea los mensajes de la EEPROM externa 24LC256. Deja ver si lo logro y lo tendré medio solucionado.

Imagen

Saludo.
posteo para que puedas poner tus avances

Saludos
Menos mal porque no podía, de todas formas te iba avisar por privado y al otro.

Estoy atascado con el EEPROM externo que no logro que me funcione, y los mensajes internos del PIC también. Es un problema y hay que solucionarlo.

Imagen

Sigo investigando...

...no pararé ahsta conseguirlo. Debo saber porqué en el PIC16F84A si me funciona la EEPROM externa y no con le 16F886. Algo no hago bien y lo averiguaré.

;**************************** Librería "M24LC256.INC"
;
; Estas subrutinas permiten realizar las tareas de manejo de la memoria EEPROM serie
; 24LC256 que transmite y recibe la información vía serie a través de un bus I2C.
;
; Subrutina "M24LC256_InicializaEscritura" ----------------------------------------------
;
; Prepara la memoria para iniciar su escritura a partir de la posición de memoria fijada
; por los registros:
; - (M24LC256_AddressHigh), indica el número del bloque o página de memoria a escribir.
; - (M24LC256_AddressLow), indica posición a escribir dentro del bloque.

   CBLOCK
   M24LC256_AddressHigh         ; Guarda el valor de la dirección de memoria a
   M24LC256_AddressLow            ; escribir o leer.
   M24LC256_Dato
   ENDC
;
M24LC256_DIR_ESCRITURA    EQU   b'10100000'; Dirección de la memoria 24LC256 para
M24LC256_DIR_LECTURA    EQU   b'10100001'; escritura y lectura respectivamente.

M24LC256_InicializaEscritura
   call   I2C_EnviaStart            ; Envía condición de Start.
   movlw   M24LC256_DIR_ESCRITURA      ; Envía dirección de escritura del
   call   I2C_EnviaByte            ; esclavo.
   movf   M24LC256_AddressHigh,W      ; A partir de la dirección apuntada por los
   call   I2C_EnviaByte            ; registros M24LC256_AddressHigh y
   movf   M24LC256_AddressLow,W      ; M24LC256_AddressLow.
   call   I2C_EnviaByte
   return   

; Subrutina "M24LC256_InicializaLectura" ------------------------------------------------
;
; Prepara la memoria para iniciar su lectura a partir de la posición de memoria fijada
; por los registros:
; - (M24LC256_AddressHigh), indica el número del bloque o página de memoria a leer.
; - (M24LC256_AddressLow), indica posición a escribir dentro del bloque.

M24LC256_InicializaLectura
   bcf      I2C_UltimoByteLeer         ; Todavía no ha comenzado a leer ningún dato.
   call   I2C_EnviaStart            ; Envía condición de Start.
   movlw   M24LC256_DIR_ESCRITURA      ; Envía dirección de escritura del
   call   I2C_EnviaByte            ; esclavo.
   movf   M24LC256_AddressHigh,W      ; A partir de la dirección apuntada por los
   call   I2C_EnviaByte            ; registros M24LC256_AddressHigh y
   movf   M24LC256_AddressLow,W      ; M24LC256_AddressLow.
   call   I2C_EnviaByte
   call   I2C_EnviaStop
;
   call   I2C_EnviaStart            ; Envía condición de Start.
   movlw   M24LC256_DIR_LECTURA      ; Indica a la memoria 24LC256 que va a
   call   I2C_EnviaByte            ; proceder a la lectura.
   return

; Subrutina "M24LC256_Mensaje_a_LCD" ----------------------------------------------------
;
; Lee el mensaje grabado en la memoria 24LC256 y lo visualiza en la pantalla del módulo LCD.
; En el registro de trabajo W se introduce la página de la memoria a partir de cuya primera
; posición se va a leer. La lectura termina cuando encuentre el código 0x00. Así por ejemplo,
; si (W)=2Fh lee el mensaje que comienza en la posición 0 de la página 2Fh de la memoria,
; que es la posición 2F00h absoluta.
;
   CBLOCK
;   M24LC256_ValorCaracter            ; Valor ASCII del carácter leído.
   ENDC

;M24LC256_Mensaje_a_LCD
   movwf   M24LC256_AddressHigh      ; Apunta al inicio de la página correspondiente.
   clrf   M24LC256_AddressLow
   call   M24LC256_InicializaLectura
M24LC256_LeeOtroByte
   call   I2C_LeeByte               ; Lee la memoria 24LC256.
   movwf   M24LC256_ValorCaracter      ; Guarda el valor de carácter.
   movf   M24LC256_ValorCaracter,F   ; Lo único que hace es posicionar flag Z. En caso
   btfsc   STATUS,Z               ; que sea "0x00", que es código indicador final   
   goto   M24LC256_FinMensaje         ; del mensaje, sale de la subrutina.
   movf   M24LC256_ValorCaracter,W   ; Recupera el valor leído.
   call   LCD_Caracter            ; Lo visualiza en la pantalla del LCD.
   incf   M24LC256_AddressLow,F      ; Apunta a la siguiente posición.
   goto   M24LC256_LeeOtroByte
;M24LC256_FinMensaje
;   call   M24LC_256_FinalizaLectura
;   return

; Subrutina "M24LC256_FinalizaLectura" ------------------------------------------------
;
; Activa el bit I2C_UltimoByteLeer para que la subrutina I2C_LeeByte ponga en alta
; impedancia la línea SDA y pueda ejecutarse posteriormente la condición de Start o Stop
; que fija el protocolo del bus I2C.

M24LC256_FinalizaLectura
   bsf   I2C_UltimoByteLeer            ; Con estas dos instrucciones se pone en
   call   I2C_LeeByte                ; alta impedancia la línea SDA. No importa el
   call   I2C_EnviaStop            ; resultado de la lectura realizada.
   return

; Subrutina "M24LC256_Mensaje_a_LCD" ----------------------------------------------------
;
; Lee un mensaje grabado en la memoria 24LC256 y lo visualiza por el módulo LCD. En caso que
; sea más largo que la longitud de la pantalla se desplaza hacia la izquierda con sensación
; de movimiento. En el registro de trabajo W se introduce la página de la memoria a partir
; de cuya primera posición va a leer. La visualización termina cuando encuentre el código
; 0x00. Así por ejemplo si (W)= 2Fh lee el mensaje que comienza en la posición 0 de la
; página 2Fh de la memoria, que es la posición 2F00h absoluta.
;
   CBLOCK
   M24LC256_ValorCaracter            ; Valor ASCII del carácter leído.
   M24LC256_CursorPosicion
   ENDC

M24LC256_Mensaje_a_LCD
   bcf   I2C_UltimoByteLeer
   movwf   M24LC256_AddressHigh      ; Apunta al inicio de la página correspondiente.
   clrf   M24LC256_AddressLow
   call   M24LC256_InicializaLectura
M24LC256_PrimeraPosicion
   clrf   M24LC256_CursorPosicion      ; El cursor en la posición 0 de la línea.
   call   LCD_Borra               ; Se sitúa en la primera posición de la línea 1 y
M24LC256_VisualizaCaracter            ; borra la pantalla.
   movlw   LCD_CaracteresPorLinea      ; ¿Ha llegado a final de línea?
   subwf   M24LC256_CursorPosicion,W
   btfss   STATUS,C
   goto   M24LC256_NoEsFinalLinea
M24LC256_EsFinalLinea
   call   Retardo_200ms            ; Lo mantiene visualizado durante este tiempo.
   call   Retardo_200ms
   call   M24LC256_FinalizaLectura
   incf   M24LC256_AddressLow,F
   call   M24LC256_InicializaLectura
   goto   M24LC256_PrimeraPosicion
M24LC256_NoEsFinalLinea
   call   I2C_LeeByte               ; Obtiene el ASCII del carácter apuntado.
   movwf   M24LC256_ValorCaracter      ; Guarda el valor de carácter.
   movf   M24LC256_ValorCaracter,F   ; Lo único que hace es posicionar flag Z. En caso
   btfsc   STATUS,Z               ; que sea "0x00", que es código indicador final
   goto   M24LC256_FinMensaje         ; de mensaje, sale fuera.
M24LC256_NoUltimoCaracter
   call   LCD_Caracter            ; Visualiza el carácter ASCII leído.
   incf   M24LC256_CursorPosicion,F   ; Contabiliza el incremento de posición del
                              ; cursor en la pantalla.
   goto   M24LC256_VisualizaCaracter   ; Vuelve a visualizar el siguiente carácter
M24LC256_FinMensaje                  ; de la línea.
   call   M24LC256_FinalizaLectura
   return


;**************************** Librería "BUS_I2C.INC"
;
; Estas subrutinas permiten realizar las tareas básicas de control del bus serie I2C,
; por parte de un solo microcontrolador maestro.
;
; ZONA DE DATOS *****************************
;
   CBLOCK
   I2C_ContadorBits            ; Cuenta los bits a transmitir o a recibir.
   I2C_Dato                  ; Dato a transmitir o recibido.
   I2C_Flags                  ; Guarda la información del estado del bus I2C.
   ENDC

#DEFINE I2C_UltimoByteLeer   I2C_Flags,0
;    -  (I2C_UltimoByteLeer)=0, NO es el último byte a leer por el maestro.
;    -  (I2C_UltimoByteLeer)=1, SÍ es el último byte a leer por el maestro.

; La definición de las líneas SCL y SDA del bus I2C se puede cambiar según las
; necesidades del hardware.

#DEFINE SCL   PORTA,3               ; Línea SCL del bus I2C.
#DEFINE SDA   PORTA,4               ; Línea SDA del bus I2C.
;
; Subrutina "SDA_Bajo" ------------------------------------------------------------------
;
SDA_Bajo
   bcf      STATUS,RP1
   bsf      STATUS,RP0            ; Configura la línea SDA como salida.
   bcf      SDA
   bcf      STATUS,RP1
   bcf      STATUS,RP0
   bcf      SDA                  ; SDA en bajo.
   return
;
; Subrutina "SDA_AltaImpedancia" --------------------------------------------------------
;
SDA_AltaImpedancia
   bcf      STATUS,RP1
   bsf      STATUS,RP0            ; Configura la línea SDA entrada.
   bsf      SDA                  ; Lo pone en alta impedancia y, gracias a la
   bcf      STATUS,RP1
   bcf      STATUS,RP0            ; Rp de esta línea, se mantiene a nivel alto.
   return
;
; Subrutina "SCL_Bajo" ------------------------------------------------------------------
;
SCL_Bajo
   bcf      STATUS,RP1
   bsf      STATUS,RP0
   bcf      SCL                  ; Configura la línea SCL como salida.
   bcf      STATUS,RP1
   bcf      STATUS,RP0
   bcf      SCL                  ; La línea de reloj SCL en bajo.
   return
;
; Subrutina "SCL_AltaImpedancia" --------------------------------------------------------
;
SCL_AltaImpedancia
   bcf      STATUS,RP1
   bsf      STATUS,RP0            ; Configura la línea SCL entrada.
   bsf      SCL                  ; Lo pone en alta impedancia y, gracias a la Rp
   bcf      STATUS,RP1
   bcf      STATUS,RP0            ; de esta línea, se mantiene a nivel alto.
SCL_EsperaNivelAlto
   btfss   SCL                  ; Si algún esclavo mantiene esta línea en bajo
   goto   SCL_EsperaNivelAlto      ; hay que esperar.
   return
;
; Subrutina "I2C_EnviaStart" ------------------------------------------------------------
;
; Esta subrutina envía una condición de Start o inicio.
;
I2C_EnviaStart
   call   SDA_AltaImpedancia      ; Línea SDA en alto.
   call   SCL_AltaImpedancia      ; Línea SCL en alto.
   call   Retardo_4micros         ; Tiempo tBUF del protocolo.
   call   SDA_Bajo            ; Flanco de bajada de SDA mientras SCL está alto.
   call   Retardo_4micros         ; Tiempo tHD;STA del protocolo.
   call   SCL_Bajo            ; Flanco de bajada del reloj SCL.
   call   Retardo_4micros   
   return
;
; Subrutina "I2C_EnviaStop" -------------------------------------------------------------
;
; Esta subrutina envía un condición de Stop o parada.
;
I2C_EnviaStop
   call   SDA_Bajo
   call   SCL_AltaImpedancia      ; Flanco de subida de SCL.
   call   Retardo_4micros         ; Tiempo tSU;STO del protocolo.
   call   SDA_AltaImpedancia      ; Flanco de subida de SDA.
   call   Retardo_4micros         ; Tiempo tBUF del protocolo.
   return
;
; Subrutina "I2C_EnviaByte" -------------------------------------------------------------
;
; El microcontrolador maestro transmite un byte por el bus I2C, comenzando por el bit
; MSB. El byte a transmitir debe estar cargado previamente en el registro de trabajo W.
; De la subrutina ejecutada anteriormente I2C_EnviaStart o esta misma I2C_EnviaByte,
; la línea SCL se debe encontrar a nivel bajo al menos durante 5 µs.
;
I2C_EnviaByte
   movwf   I2C_Dato            ; Almacena el byte a transmitir.
   movlw   0x08               ; A transmitir 8 bits.
   movwf   I2C_ContadorBits
I2C_EnviaBit
   rlf      I2C_Dato,F            ; Chequea el bit, llevándolo previamente al Carry.
   btfsc   STATUS,C
   goto   I2C_EnviaUno
I2C_EnviaCero
   call   SDA_Bajo            ; Si es "0" envía un nivel bajo.
   goto   I2C_FlancoSCL
I2C_EnviaUno
   call   SDA_AltaImpedancia      ; Si es "1" lo activará a alto.
I2C_FlancoSCL
   call   SCL_AltaImpedancia      ; Flanco de subida del SCL.
   call   Retardo_4micros         ; Tiempo tHIGH del protocolo.
   call   SCL_Bajo            ; Termina el semiperiodo positivo del reloj.
   call   Retardo_4micros         ; Tiempo tHD;DAT del protocolo.
   decfsz   I2C_ContadorBits,F      ; Lazo para los ocho bits.
   goto   I2C_EnviaBit
;
   call   SDA_AltaImpedancia      ; Libera la línea de datos.
   call   SCL_AltaImpedancia      ; Pulso en alto de reloj para que el esclavo
   call   Retardo_4micros         ; pueda enviar el bit ACK.
   call   SCL_Bajo
   call   Retardo_4micros
   return
;
; Subrutina "I2C_LeeByte" ---------------------------------------------------------------
;
; El microcontrolador maestro lee un byte desde el esclavo conectado al bus I2C. El dato
; recibido se carga en el registro I2C_Dato y lo envía a la subrutina superior a través
; del registro W. Se empieza a leer por el bit de mayor peso MSB.
; De alguna de las subrutinas ejecutadas anteriormente I2C_EnviaStart, I2C_EnviaByte
; o esta misma I2C_LeeByte, la línea SCL lleva en bajo al menos 5 µs.

I2C_LeeByte
   movlw   0x08               ; A recibir 8 bits.
   movwf   I2C_ContadorBits
   call   SDA_AltaImpedancia      ; Deja libre la línea de datos.
I2C_LeeBit
   call   SCL_AltaImpedancia      ; Flanco de subida del reloj.
   bcf      STATUS,C            ; En principio supone que es "0".
   btfsc   SDA                  ; Lee el bit
   bsf      STATUS,C            ; Si es "1" carga 1 en el Carry.
   rlf      I2C_Dato,F            ; Lo introduce en el registro.
   call   SCL_Bajo            ; Termina el semiperiodo positivo del reloj.
   call   Retardo_4micros         ; Tiempo tHD;DAT del protocolo.
   decfsz   I2C_ContadorBits,F      ; Lazo para los 8 bits.
   goto   I2C_LeeBit
;
; Chequea si este es el último byte a leer para enviar o no el bit de reconocimiento
; ACK en consecuencia.
;
   btfss    I2C_UltimoByteLeer      ; Si es el último, no debe enviar
                           ; el bit de reconocimiento ACK.
   call   SDA_Bajo            ; Envía el bit de reconocimiento ACK
                           ; porque todavía no es el último byte a leer.
   call   SCL_AltaImpedancia      ; Pulso en alto del SCL para transmitir el
   call   Retardo_4micros         ; bit ACK de reconocimiento. Este es tHIGH.
   call   SCL_Bajo            ; Pulso de bajada del SCL.
   call   Retardo_4micros
   movf   I2C_Dato,W            ; El resultado se manda en el registro de
   return   


Edito:

Me funcionaaaaaaaaaaa,. Por fin, casi pierdo las esperanzas. Me lee la EEPROM externa. Ahora me toca hacer muchas pruebas y meter mensajes a diestro y siniestro que ya mostraré a ustedes. Desde que me funcione todo en simulador, lo haré con la protoboard, después a PCB, al final a la PS2.

Imagen

¿Recuerdas que dijiste algo de que eres ambicioso? Pues soy igual. Lo bueno de la EEPROM externa, que ya puedes muy fácilmente usarlo introducir mensajes que desees sin tener que manipular el PIC. También puedes guardarlo en un .hex, .bin y un .txt.

Ahora si que estoy contento y gracias a ustedes. Voy a seguir trabajando.

Adaptaré desde que acabe al 100 % el PIC16F886 a otro PIC18F2550 en ensamblador para que si no tenga un PIC, tenga el otro.
Me alegra saberlo, ya se esta un poquito más cerca

Saludos
me alegro mucho Koolk, bien por ti!

esperamos resultados muy pronto [sonrisa]

Ruddi.

salu...
Koolk a ver si te pronuncias que hace tiempo que no sabemos de ti..

Saludos
Gracias por preguntar.

Estoy atascado en la EEPROM y el LCD. No quería participar al foro diciendo que tengo problemas en la programación. Me estoy buscando la vida y me cuesta resolver la situación. El problema es que al leer los datos de la EEPROM externa, en el LCD se repite el mismo mensaje por toda la pantalla. Estoy averiguando a toda costa que llevo días así y no logro una solución buena.

Imagen

; 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 & _XT_OSC
__CONFIG    _CONFIG2, _WRT_OFF & _BOR21V

CBLOCK 0x20
Contador
Apuntador
ENDC

PAGINA_00 EQU 0x00 ;
PAGINA_01 EQU 0x01 ;
PAGINA_02 EQU 0x02 ;
PAGINA_03 EQU 0x03 ;
PAGINA_04 EQU 0x04 ;
PAGINA_05 EQU 0x05 ;
PAGINA_06 EQU 0x06 ;
PAGINA_07 EQU 0x07 ;
PAGINA_09 EQU 0x09 ; "                    " Línea .
PAGINA_0A EQU 0x0A ; "                    " Línea .
PAGINA_0B EQU 0x0B ; "                    " Línea .
PAGINA_0C EQU 0x0C ; "                    " Línea .
PAGINA_0D EQU 0x0D ; "                    " Línea .
PAGINA_0E EQU 0x0E ; "                    " Línea .
PAGINA_0D EQU 0x0D ; "                    " Línea .
PAGINA_0F EQU 0x0F ; "                    "

#DEFINE RESET_RC0 PORTC,0
#DEFINE EJECT_RC1 PORTC,1
#DEFINE OPEN_RC2 PORTC,2
#DEFINE CLOSE_RC3 PORTC,3
#DEFINE GREEN_RC4 PORTC,4
#DEFINE RED_RC5 PORTC,5
#DEFINE Auxiliar_6 PORTC,6
#DEFINE Auxiliar_7 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_RC0 ; Se configura como entradas.
bsf EJECT_RC1
bsf OPEN_RC2
bsf CLOSE_RC3
bsf GREEN_RC4
bsf RED_RC5
bsf Auxiliar_6
bsf Auxiliar_7
BANKSEL PORTC ; Banco 0.
clrw
clrf Apuntador ; Inicializa el contador
Principal
movlw PAGINA_01
call M24LC256_Mensaje_a_LCD
call Retardo_2s
goto Principal

movf PORTC,W ; Lee los sensores.
andlw b'00111111' ; Máscara para quedarse con el valor de los sensores.
addwf PCL,F ; Salta a la configuración adecuada.
goto Configuracion0 ; 0 0 0 0 0 0
goto Configuracion1 ; 0 0 0 0 0 1
goto Configuracion2 ; 0 0 0 0 1 0
goto Configuracion3 ; 0 0 0 0 1 1
goto Configuracion4 ; 0 0 0 1 0 0
goto Configuracion5 ; 0 0 0 1 0 1
goto Configuracion6 ; 0 0 0 1 1 0
goto Configuracion7 ; 0 0 0 1 1 1
goto Configuracion8 ; 0 0 1 0 0 0
goto Configuracion9 ; 0 0 1 0 0 1
goto Configuracion10 ; 0 0 1 0 1 0
goto Configuracion11 ; 0 0 1 0 1 1
goto Configuracion12 ; 0 0 1 1 0 0
goto Configuracion13 ; 0 0 1 1 0 1
goto Configuracion14 ; 0 0 1 1 1 0
goto Configuracion15 ; 0 0 1 1 1 1
goto Configuracion16 ; 0 1 0 0 0 0
goto Configuracion17 ; 0 1 0 0 0 1
goto Configuracion18 ; 0 1 0 0 1 0
goto Configuracion19 ; 0 1 0 0 1 1
goto Configuracion20 ; 0 1 0 1 0 0
goto Configuracion21 ; 0 1 0 1 0 1
goto Configuracion22 ; 0 1 0 1 1 0
goto Configuracion23 ; 0 1 0 1 1 1
goto Configuracion24 ; 0 1 1 0 0 0
goto Configuracion25 ; 0 1 1 0 0 1
goto Configuracion26 ; 0 1 1 0 1 0
goto Configuracion27 ; 0 1 1 0 1 1
goto Configuracion28 ; 0 1 1 1 0 0
goto Configuracion29 ; 0 1 1 1 0 1
goto Configuracion30 ; 0 1 1 1 1 0
goto Configuracion31 ; 0 1 1 1 1 1
goto Configuracion32 ; 1 0 0 0 0 0
goto Configuracion33 ; 1 0 0 0 0 1
goto Configuracion34 ; 1 0 0 0 1 0
goto Configuracion35 ; 1 0 0 0 1 1
goto Configuracion36 ; 1 0 0 1 0 0
goto Configuracion37 ; 1 0 0 1 0 1
goto Configuracion38 ; 1 0 0 1 1 0
goto Configuracion39 ; 1 0 0 1 1 1
goto Configuracion40 ; 1 0 1 0 0 0
goto Configuracion41 ; 1 0 1 0 0 1
goto Configuracion42 ; 1 0 1 0 1 0
goto Configuracion43 ; 1 0 1 0 1 1
goto Configuracion44 ; 1 0 1 1 0 0
goto Configuracion45 ; 1 0 1 1 0 1
goto Configuracion46 ; 1 0 1 1 1 0
goto Configuracion47 ; 1 0 1 1 1 1
goto Configuracion48 ; 1 1 0 0 0 0
goto Configuracion49 ; 1 1 0 0 0 1
goto Configuracion50 ; 1 1 0 0 1 0
goto Configuracion51 ; 1 1 0 0 1 1
goto Configuracion52 ; 1 1 0 1 0 0
goto Configuracion53 ; 1 1 0 1 0 1
goto Configuracion54 ; 1 1 0 1 1 0
goto Configuracion55 ; 1 1 0 1 1 1
goto Configuracion56 ; 1 1 1 0 0 0
goto Configuracion57 ; 1 1 1 0 0 1
goto Configuracion58 ; 1 1 1 0 1 0
goto Configuracion59 ; 1 1 1 0 1 1
goto Configuracion60 ; 1 1 1 1 0 0
goto Configuracion61 ; 1 1 1 1 0 1
goto Configuracion62 ; 1 1 1 1 1 0
goto Configuracion63 ; 1 1 1 1 1 1
Configuracion0
movlw PAGINA_00 ; Lee a partir de la dirección 00 de esta página
call M24LC256_Mensaje_a_LCD ; de la memoria.
goto ActivaSalida
Configuracion1
goto ActivaSalida
Configuracion2
goto ActivaSalida
Configuracion3
goto ActivaSalida
Configuracion4
goto ActivaSalida
Configuracion5
goto ActivaSalida
Configuracion6
goto ActivaSalida
Configuracion7
goto ActivaSalida
Configuracion8
goto ActivaSalida
Configuracion9
goto ActivaSalida
Configuracion10
goto ActivaSalida
Configuracion11
goto ActivaSalida
Configuracion12
goto ActivaSalida
Configuracion13
goto ActivaSalida
Configuracion14
goto ActivaSalida
Configuracion15
goto ActivaSalida
Configuracion16
goto ActivaSalida
Configuracion17
goto ActivaSalida
Configuracion18
goto ActivaSalida
Configuracion19
goto ActivaSalida
Configuracion20
goto ActivaSalida
Configuracion21
goto ActivaSalida
Configuracion22
goto ActivaSalida
Configuracion23
goto ActivaSalida
Configuracion24
goto ActivaSalida
Configuracion25
goto ActivaSalida
Configuracion26
goto ActivaSalida
Configuracion27
goto ActivaSalida
Configuracion28
goto ActivaSalida
Configuracion29
goto ActivaSalida
Configuracion30
goto ActivaSalida
Configuracion31
goto ActivaSalida
Configuracion32
goto ActivaSalida
Configuracion33
goto ActivaSalida
Configuracion34
goto ActivaSalida
Configuracion35
goto ActivaSalida
Configuracion36
goto ActivaSalida
Configuracion37
goto ActivaSalida
Configuracion38
goto ActivaSalida
Configuracion39
goto ActivaSalida
Configuracion40
goto ActivaSalida
Configuracion41
goto ActivaSalida
Configuracion42
goto ActivaSalida
Configuracion43
goto ActivaSalida
Configuracion44
goto ActivaSalida
Configuracion45
goto ActivaSalida
Configuracion46
goto ActivaSalida
Configuracion47
goto ActivaSalida
Configuracion48
goto ActivaSalida
Configuracion49
goto ActivaSalida
Configuracion50
goto ActivaSalida
Configuracion51
goto ActivaSalida
Configuracion52
goto ActivaSalida
Configuracion53
goto ActivaSalida
Configuracion54
goto ActivaSalida
Configuracion55
goto ActivaSalida
Configuracion56
goto ActivaSalida
Configuracion57
goto ActivaSalida
Configuracion58
goto ActivaSalida
Configuracion59
goto ActivaSalida
Configuracion60
goto ActivaSalida
Configuracion61
goto ActivaSalida
Configuracion62
goto ActivaSalida
Configuracion63
goto ActivaSalida
ActivaSalida
; movwf PORTB
goto Principal

;
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
addwf PCL,F
Mensaje1
DT "aaaaaaaaaaaaaaaaaaaa", 0x00
Mensaje2
DT "bbbbbbbbbbbbbbbbbbbb", 0x00
Mensaje3
DT "cccccccccccccccccccc", 0x00
Mensaje4
DT "dddddddddddddddddddd", 0x00
Mensaje5
DT "e", 0x00
Mensaje6
DT "M", 0x00
Mensaje7
DT "S", 0x00
Mensaje8
DT "M", 0x00
;

FinTabla
;MensajeAnuncio
; DT " fgfd ", 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 <BIN_BCD.INC>
INCLUDE  <BUS_I2C.INC> ; Subrutinas de control del bus I2C.
INCLUDE  <M24LC256.INC> ; Subrutinas de control de la memoria 24LC256.
INCLUDE  <LCD_4BIT.INC>
INCLUDE  <LCD_MENS.INC>
INCLUDE  <RETARDOS.INC>
END


He logrado que cada vez que se muestre un mensaje nuevo, borra el anterior aunque esté en otra línea del LCD. Debo hacer que se muestre todos los mensajes que salga en cada líneas al mismo tiempo y sin fallos raros. Llevo así días y horas buscando solución. No te preocupes que no lo tengo avandonado y no lo haré. Desde que me funcione ya empezaré a comprarme el LCD 20x4 en este local bajo pedido. También el 16x2 azul para hacer lo del SwapChip. (La gente está muy en el PSJailBreak, deja que Sony sea capaz de quitarles la bobería volverán al proyecto del Swap que estábamos haciendo en otro sitio).

Espero que me quede este paso de la EEPROM que debo corregir antes de empezar ya a la programación de los sensores. Cuando acabe, les pasaré el archivo de simulación para que lo prueben. Cuando todo esté confirmado, haré los pedidos y lo empezaré a montar. Haré un buen manual en PDF de principio a fin.

Un abrazo.


Edito:

Hola de nuevo:

Ya descubrí la manera de que me funcione y me funciona. Ahora estoy empezando a programarlo. Por FIN me funciona.

Gracias por colaborar a los dos. Cuando acabe estos días se los hago saber.
¬_¬

alguna noticia Koolk?

Ruddi.

salu...
El ejemplo que te mostré está supuesta acabado porque funciona pero falta más detalles. Por eso pasé los archivos para que los pruebes.

Usa el Proteus 7.7 SP2 o superior.

Saludo.
yo sigo atento a esto

ojala luego se materialica y salga el howto

saludos man
y en que quedo el proyecto viejo?
:-? creo que este link, ya caduco.

Ruddi.

salu...
Hola a todos y a todas:

Antes que nada, muchas gracias al moderador por permitir seguir adelante este tema.

Imagen

Ver grande.

1) Recuerdo que estaba con la PS2 modelo SCPH-39004 que compré al segundo año de su salida y aunque no funciona porque me cargué el cable de la botonera de encendido. Hace un año vi una PS2 rota en un local de segunda mano, la compré por 4 €, cuando me di cuanta era el modelo SCPH-30004, más antiguo y no me funcona porque no es igual sus repuestos, eso si, logré que encienda pero no puedo ejecutar juegos de PS2, si lee los juegos de PS1.

El proyecto se basa por si algún visitante no se ha entereado, en visualizar en una pantalla o display de LCD mensajes de lo que ocurre a la PS2 en cada momento con sus funciones más básicas. Por ejemplo, cuando hay un disco insertado, cuando el motor del disco está girando, cuando la bandeja está cerrada o abierta, cuando la bandesja se está abriendo o cerrando, PS2 en bajo consumo, iniciando PlayStation 2, grabando datos en la Memory Card 2 indicando sus Slot correspondientes y otras funciones que se vaya añadiendo a lo largo del tiempo que se nos ocurra a todos.

Imagen


¿Por qué hago esto?
Me hace ilusión trabajar con este tipo de cosas, aunque en realidad valen para PS2/PS3/PS4/360/One y muchas más.

Cuando el proyecto se acabe, se les entregará lista de coponentes usados, esquemas, fotos, vídeos, firmware de los AVR de Atmel o PIC de Microchip si hay por medio y lo que haga falta.

2) Ya que no enciende el primer modelo, intentaré hacer pruebas con el segundo y esta vez, que no se rompa.
Por ahora tengo un LCD de 16x2 verde, más adelante conseguiré otro LCD de 20x4 que no se donde lo tengo. Por ahora tengo los 16x2 azul.

Mi experiencia me dice que el modelo azul aunque sea más atractivo, para lecturas a ciertas distancias tirando a lejos, se lee mejor en detalla las pantallas tipo verde. Usen el color que usen, son compatibles entre si.

Leyendo el tema casi por completo para recordar ciertos detalles, al final haré dos proyectos conun LCD de 16x2 y otro de 20x4 con más funciones. Con Arduino se hace pronto estas cosas.

Imagen


3) Desde aquí les comento que para subir imágenes por aqui, usen este enlace y que no se caduca como algunos servidores que si lo hacen.

http://www.subeimagenes.com

4) Si lo desean, puede analizar de que va este tema y aportar ideas, sugerencias, comentarios, críticas de todo tipo para mejorar y ampliar funcionalidades.

Hace tiempo se aportó la idea de que solo usemos Led puestas en la PS2 arriba que también es válido. He tenido ideas como las X-Box 360 de antes que se le ponía ventiladores extras, eso si, con su tacómetro para saber su velocidad y varía en función de la temperatura.

Ahora me toca analizar todo para hacer una buena tabla de la verdad con Arduino. Por lo que recuerdo, se necesita como entradas, el botón de Reset, Eject, cuando detecta que la bandeja del disco está abierta, cuando está cerrada, motor del disco girando, lectura de cada Memory Card, y muchas cosas más. Hay que usar bueno optoacopladores por diferencia de potencial y más cositas.

Un cordial saludo.

Edito:
Para detectar si hay disco en la PS2 aquí hay un CNY70.

Imagen

Esto lo he visto para robot seguidor de líneas.

Imagen
http://roboticaenlasergio.wordpress.com ... eflectivo/

Imagen

A lo mejor metiéndolo por debajo del disco funciona y todo. El que tenga experiencia con este tipo de sensor puede dar sus máximos consejos de todo tipo.

Tengo un prototipo idea del LCD 16x2 como ensayo, pero prefiero el de LCD 20x4. Cuando pueda subo un vídeo.

Imagen

Saludo.

Edito:

Ya les paso un vídeo simulando con la placa real algo parecido al proyecto final, será el LCD en verde a 20x4, no en azul 16x2.

http://www.youtube.com/watch?v=VlD9Dj_gYAM

Según voy avanzando publicaré por aquí. Se hará proyectos primero en Arduino UNO que se pueda quitar el AVR de la placa para hacer la nuestra propia y usando componentes lo que realmente necesitamos.

Si todo sale bien, también se hará el mismo proyecto basado en PIC explicando paso a paso lo que hay que hacer para aquellas personas lo quieran montar.

Para pulirlo, se montará en el circuito para prepararlo para muchas consolas con tan solo dejar programado ciertos microinterruptores.

Saludo.
Hola de nuevo:

Ahora con el modelo 39004 y el 30000 hay que mirar la placa bien para usar los sensores de la bandeja de disco y demás elementos o añadirles optoacopladores.

Imagen


No olvidar que la idea del LCD se iba a incluir en PS mesclado con SNES y se suspendió, también para la PS2 original que fue cancelado y no se el motivo real. Una de las cosas que me llamó la atención es que el LCD se leía el título del juego introducido y otras informaciones que no recuerdo. (Si saben más datos de esta PS2 y con imágenes más nítidas para ver el LCD bien, lo hacen saber por aquí colocando enlace, gracias).

Imagen
http://gopve.wordpress.com/2006/09/14/d ... de-la-ps2/

Por supeusto, tener claro algunos detalles hasta ver los datos de la Memory Card 2 cuando escriben o leen.
Imagen


Se usará un LCD pequeño y grande para los gustos de los demás. Se hará una opción de controlar dos motores con tacómetro y sensor de temperatura para regular la velocidad si hace mucho calor en las consolas, sobre todo en la PS3.

En resumen. Se intenta hacer mostrar información del LCD mensajes de texto con el LCD HD44780 16x2 para el proyecto 1, LCD 20x4 para el proyecto 2, LCD 20x4 con ventiladores en la parte baja de las consolas como PS3 que como proyecto 3, ya pondré esquema bocetos en que se basa. Escoger uno o otro para sus proyectos es de vuestra elección del que les interesen.

Un saludo.
Me suscribo al hilo ya que me parece muy interesante.
Ánimos, estas realizando un buen trabajo. [oki]
Se trata de un proyecto no muy complicado que implantándolo con aduino se vuelve extremadamente sencillo. Yo añadiría otras funciones como control del pad a distancia (por medio de la libreria psxlib y/o similares de arduino), encendidos/apagados a distancia por rf o algún mando ir, control del disco duro.. incluso se podría desarrollar un punto de acceso wifi e instalar los juegos por medio de un adaptador sata-usb, para instalar los juegos por red pero con una velocidad infinitamente superior (yo tengo una ps2 así pero por cable, no wireless, y paso más o menos 4gbs en 5-6 mins, solo sería pulirlo un poco)

Con cosas así sí que podría ser muy muy interesante este proyecto, para usuarios normales o para desarrolladores incluso que testen aplicaciones etc.. Pero sintiéndolo mucho y con todo el respeto del mundo he perdido todo el interés en este usuario, y en este hilo en el que participé muy activamente hace 4 años y aporte mucha información del hardware y el funcionamiento de ps2.

Por aquel entonces koolk no conocía ni la ps2 como máquina ni creo que tuviera mucha idea de microcontroladores. De hecho apenas entendía las explicaciones sobre los distintos puntos de la placa..

Hoy, dudo mucho que haya avanzado nada en estos campos. Arduino es tremendamente sencillo para hacer estas cosas, en unas horas ya podría tener un prototipo, casi podria decirse que está hecho para niños. En cuento a ps2...No hay más que ver que ha cambiado una consola 39000 v7 por una 30000 v3/4 sólo por que se le rompio el flex de la botonera, avería que se resuelve en 5 minutos con un trozo de cable y un soldador.

Pido disculpas si mi mensaje molesta a alguien y reitero que todo lo que digo lo digo con sinceridad pero desde el mas absoluto respeto. Solo es que para mí, esta persona ha perdido la poca credibilidad que tenía hace 4 años. No creo que tenga interés ninguno este hilo.


Saludos
71 respuestas
1, 2