Pregunta sobre Unidad de CD-ROM entera en dreamcast

Bueno mas que nada para saber si alguien ya ha investigado o visto algo sobre esto, creo que alguien ya habia posteado un video sobre esto en elotrolado pero no habia quedado mas claro como lo habia hecho esta persona, lo pongo aqui para ver si alguien sabe mas al respecto o si derrepente aparece algun heroe que haga posible esto xD. Mi pregunta es, sera posible? si es asi, pues como? :-? Lo pongo en su idioma original... portugues, saludos :




cyber do Clube do Hardware escreveu:
Olá,

Venho aqui para ajudar a todos aqueles que gostam do velho Dreamcast, porém o bichinho não funciona mais e está guardado.
Então, eu estava nessa situação, tinha um Dreamcast sem o leitor óptico e sem o carro também. Então navegando na Internet percebi que muitos estavam usando leitor de CD-ROM no Dreamcast. Então pensei: "Por que ao invés de usar somente o leitor, não usar o drive inteiro?"

Bom, gostaria de deixar desde já bem claro que eu não adaptei o modo IDE para o Dreamcast. O que eu fiz foi aproveitar todo o maquinário do CD-ROM para usar no Dreamcast.

Bom, para começar, o primeiro passo é encontrar um drive que tenha os motores DC (central e de movimento do leitor). Eles também devem ter as características elétricas similares aos do Dreamcast. O leitor do CD-ROM também deve ser compatível com o Dreamcast. No meu caso usei um carro de DVD-ROM, pois eles tinham motores DC, e depois só encaixei o leitor de um CD-ROM nele.

http://www.dreamcastbr.com/cd-rom_no_dr ... 00028f.jpg


Testar se o leitor do CD-ROM é compatível com o Dreamcast é simples: Simplesmente conecte o leitor sem o carro no Dreamcast, depois ligue o aparelho e aproxime um CD do leitor. Se o leitor começar a movimentar a lente é por que ele é compatível. Não é difícil encontrar um leitor compatível. De três CD-ROMs que eu desmontei dois eram compatíveis.

Bom, a parte de ligação é idêntica a ligação do leitor original. Eu coloquei base de acrílico para fixar o CD-ROM.

http://www.dreamcastbr.com/cd-rom_no_dr ... 0029ii.jpg


A única coisa que foi necessário fazer foi um pequeno circuito para abrir e fechar a gaveta. Segue abaixo o diagrama de bloco do circuito e também o programa do PIC. O PIC usado foi o 16F628A:

http://img176.imageshack.us/img176/1694/esquema01.jpg


Bom, eu não tenho muito tempo para mostrar todos os detalhes... Mas se alguém estiver tentando montar e estiver com dificuldades, poste as dúvidas aqui que irei colocando mais detalhes de acordo com o necessário.

http://www.dreamcastbr.com/cd-rom_no_dr ... 031ztt.jpg


Videos:

http://www.youtube.com/watch?v=yruN_oTKSH0&feature=player_embedded

http://www.youtube.com/watch?v=egv_LBMp-qM&feature=player_embedded



Programa do PIC:

;|-------------------------------------------|
;|Controle Open Close CD-ROM para Dreamcast |
;|-------------------------------------------|

#INCLUDE <P16F628A.INC>

__CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _INTOSC_OSC_NOCLKOUT

;DEFINIÇÃO DE COMANDOS------------------------
#DEFINE G_ABRE_ON BSF PORTB,0
#DEFINE G_ABRE_OFF BCF PORTB,0
#DEFINE G_FECHA_ON BSF PORTB,1
#DEFINE G_FECHA_OFF BCF PORTB,1
#DEFINE T_ABRE BSF PORTB,2
#DEFINE T_FECHA BCF PORTB,2
#DEFINE O_C_B PORTB,3
#DEFINE G_FECHADA PORTB,4
#DEFINE G_ABERTA PORTB,5

#DEFINE BANK0 BCF STATUS,RP0
#DEFINE BANK1 BSF STATUS,RP0

DELAYPU01 EQU 0x20
DELAY2S01 EQU 0x21
DELAY2S02 EQU 0x22
DELAY2S03 EQU 0x23
;==============================================

;VETOR DE RESET--------------------------------
ORG 0x00
GOTO INICIO
;===============================================

;INTERRUPÇÃO-----------------------------------
ORG 0x04
RETFIE
;===============================================

;DELAY-PU---------------------------------------
DELAYPU
MOVLW B'11111111'
MOVWF DELAYPU01
DPUB01
DECFSZ DELAYPU01
GOTO DPUB01
RETURN
;===============================================

;DELAY 2 SEG------------------------------------
DELAY2SEG
MOVLW D'255'
MOVWF DELAY2S01
MOVLW D'255'
MOVWF DELAY2S02
MOVLW D'10'
MOVWF DELAY2S03
DELAY2SB01
DECFSZ DELAY2S01
GOTO DELAY2SB01
DELAY2SB02
DECFSZ DELAY2S02
GOTO DELAY2SB01
DELAY2SB03
DECFSZ DELAY2S03
GOTO DELAY2SB01
RETURN
;===============================================

;FECHA GAVETA-----------------------------------
FECHA_GAVETA
G_FECHA_ON
BTFSS G_FECHADA
GOTO FECHA_GAVETA
CALL DELAYPU
G_FECHA_OFF
RETURN
;===============================================

;ABRE GAVETA------------------------------------
ABRE_GAVETA
G_ABRE_ON
BTFSS G_ABERTA
GOTO ABRE_GAVETA
CALL DELAYPU
G_ABRE_OFF
RETURN
;===============================================

;BOTAO ABRE FECHA-------------------------------
BOTAO_A_F
BTFSS O_C_B ;BOTAO ABRE FECHA PRESSIONADO ?
GOTO BOTAO_A_F ;NAO
RETURN
;===============================================

;CONFIGURA-PIC----------------------------------
INICIO
BANK1
MOVLW B'00000000'
MOVWF TRISA
MOVLW B'11111000'
MOVWF TRISB
MOVLW B'10000100'
MOVWF OPTION_REG
MOVLW B'00000000'
MOVWF INTCON
BANK0
MOVLW B'00000111'
MOVWF CMCON
;================================================

;PROGRAMA-PRINCIPAL------------------------------
;SET SAIDAS{
MOVLW B'00000100'
MOVWF PORTB
;SET SAIDAS}

;VERIFICA SE GAVETA ESTA ABERTA{
BTFSS G_FECHADA ;GAVETA ESTA ABERTA ?
CALL FECHA_GAVETA ;SIM
VOLTA
T_FECHA
CALL BOTAO_A_F
T_ABRE
CALL DELAY2SEG ;AGUARDA CD PARAR
CALL ABRE_GAVETA ;ABRE GAVETA
CALL BOTAO_A_F
CALL FECHA_GAVETA
GOTO VOLTA

END
0 respuestas