Ola,
venho aqui para passar a todos aqueles que gostam do velho Dreamcast porém o bichinho não funciona mais e esta guardado.
Então, eu estava nessa situação, tinha um Dreamcast sem o leitor leitor óptico e sem o carro também. Então navegando na net percebi que muitos estavam usando leitor de CD-ROM no Dreamcast. Então pensei por que não 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.
Para 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.
A única coisa que foi necessário fazer foi um pequeno circuito para abrir e fechar a gaveta. Segue abaixo o diagrama elétrico do circuito e também o programa do PIC. O PIC usado foi o 16F628A.
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 que for necessário.
Video
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