2017년 3월 4일 토요일

paraMSX-R 제작 #5 - 슬롯 Bypass모드

두둥~ 주문한 PCB가 도착했습니다! ㅎ.ㅎ




칩 8개 모두 피치가 좁은 애들이라, 납땜이 쉽지않네요.

테스트 용으로 보드 두장 만들었습니다.





케이스를 씌우면 요렇게 됩니다.





보드 윗쪽에는 외부연결 용 슬롯 커넥터(IDC 50핀)가 있어서, 외부 카트리지와 연결가능합니다.

기본 슬롯 4개 중 3개는 CPLD 내부에서 동작이 됩니다. 남은 1개 슬롯이 외부 연결용인거죠~



에뮬모드를 켜기전까지는 본체는 paraMSX-R 카트리지가 없는 것처럼 동작하게 됩니다.

간단하게 "슬롯 Bypass모드"라고 이름을 붙였습니다.ㅋ

이 상태에서는 paraMSX-R가 확장슬롯의 버퍼 카트리지처럼 동작하게 됩니다.


제게 확장슬롯이 4개가 있는데, "4슬롯 + 2슬롯IO"으로 만들어진 놈을 주로 쓰고 있는데요.

여기에 연결해서 돌려보았습니다.

아래는 터보알 슬롯2에 연결된 모습입니다.





제가 만든 확장슬롯이랑 파라동20주년 확장슬롯(sinfox님 제작)은, 메인보드쪽에 버퍼가 들어있습니다.

그러니까 본체 연결되는 카트리지 내부엔 부품이 아무것도 없어요. 그냥 연장선 정도의 역할입니다.





만약 paraMSX-R에 확장슬롯을 연결하고 롬팩을 구동하게 되면, 신호는 아래처럼 흘러가게 되겠네요.

본체 슬롯 -> paraMSX-R [5V to 3.3V 레벨쉬프터 -> CPLD -> 3.3V to 5V 레벨쉬프터] -> 확장슬롯 버퍼 -> 롬팩


신호가 조금 딜레이 되겠지만, 왠만한 것(?)들은 잘 돌아가지 않을까 생각됩니다.

흐... 제가 갖고있는 카트리지를 이리저리 테스트해보니 동작 불안(불능)한 애들이 나오네요.

MMC/SD V3랑 MPX R2.0 두개가 안되는군요. ㅜ.ㅜ


아래는 동작확인했던 카트리지입니다.

PAC-V, FontPack, MPX R1.1, MoonSound v2.1, 필립스 Music Module, FM-PAC, SCC-I

그 외 일반 롬팩/메가롬팩은 열개정도 꽂아봤는데, 잘 돌아가네요.


아래는 현재 저의 책상샷입니다~




본체 왼쪽에는 paraMSX-R과 연결된 6슬롯이구요.

오른쪽에는 파라동20주년 확장슬롯입니다.

터보알 힘이 좋네요. 카트리지 많은데도 잘 돌아갑니다. ㅎ.ㅎb

참고로 저의 확장슬롯에는 따로 외부전원 안쓰고 있어요.



다음편에는 본격적인 paraMSX-R 에뮬모드 구현이 이어지겠습니다~

그럼, 다음에 또...


PS. 보드가 v1.1로 바뀌면서 외부슬롯 커넥터가 삭제되었습니다.

그러니까 본문 내용은 그냥 잊으시면 되겠습니다요~ ㅎ.ㅎ;


2017년 2월 16일 목요일

paraMSX-R 제작 #4 - H/W 구성

paraMSX-R 진행을 재개합니다! 10개월만인가요? ㅋ

H/W 구성을 어떻게 하는게 좋을지 고민을 많이 했는데, 대충 결론이 나왔습니다. 으흐...


-> 결론: 플래쉬롬으로 떡칠!


사실 작년에 처음 구상할 때에는, 램을 많이 넣고 구동할 때마다 로딩하는 방식이 유연하지 않을까 생각했거든요.

이런식으로 구동되는 방식인거죠.

1. 본체 전원 ON, paraMSX-R 카트리지는 Bypass 모드로 동작(본체에서는 보이지 않음ㅋ)

2. DOS2에서 PARAMSXR.COM 프로그램으로 에뮬 머신(대우 아이큐1000 등) 선택

3. 에뮬 슬롯 설정 및 필요한 롬(BIOS 등) 데이터 로딩

4. paraMSX-R 카트리지의 외부 슬롯 리셋

5. 에뮬 머신으로 구동


뭐랄까, 윈도에서 MSX 에뮬 프로그램을 실행하는 것과 비슷한 식입니다.

근데 이렇게 만들면, 게임 롬팩을 꽂아서 구동하는게 불가능하더라구요.

게임이 먼저 구동되면 도스로 부팅이 안되니까요. ㅎ.ㅎ;


동작 방법을 하나 더 생각했습니다.

paraMSX-R 카트리지에서 직접 에뮬 머신을 설정하고 자동으로 재부팅하는 방식이욤~


이런식입니다.

1. paraMSX-R 카트리지의 모드 스위치 ON 및 본체 전원 ON

2. paraMSX-R 카트리지는 일반 SW카트리지 처럼 구동됨 (paraMSX-R의 외부 슬롯은 Bypass 모드로 동작)

3. 에뮬 머신 선택 프로그램이 자동실행 (대우 아이큐1000 등 선택)

4. 선택된 머신으로 재부팅 (paraMSX-R 외부 슬롯은 에뮬 슬롯으로 연결되어 동작)


글로 써서 이해가 힘드실지 모르겠네요.

"paraMSX-R 카트리지의 에뮬모드 스위치를 켜면, 본체 부팅 시 에뮬 모드로 바로 진입" 정도로 생각하시면 되겠습니다.


필요한 데이터는 미리 플래쉬롬에 넣어두는 방식으로 갑니다.

이렇게 하면 로딩하는 시간이 없어서, 에뮬 모드로 바로 부팅하더라도 빠르게 구동할 수 있겠습니다.

"오늘 하루는 내 GT를 X-II처럼 쓰고 싶다" 이럴 때, 좀 편하지 않을까요? ㅎ.ㅎ


다음은 로직을 위한 CPLD 선택인데요.

paraMSX-R 카트리지는 외부 카트리지 슬롯이 하나 있습니다.

아마 실제 사용 시, 확장슬롯이 연결되어 쓰이게 되겠지요?

I/O 핀도 많이 필요하고 구현해야 될 회로 로직도 많이 들어가야하니, 용량도 조좀 커야겠구요.

144핀짜리 EPM1270 칩이 딱 적당하더라구요. I/O 핀을 계산해보니 딱맞게 나오는것 같구요. ㅎ.ㅎ


그리고 외부 슬롯은 IDC 50핀 커넥터로 장착됩니다.

슬롯 커넥터를 달아야하나 한동안 고민했는데요...ㅋ

제가 만든 확장슬롯, 예전 파라동 20주년 확장슬롯, 최근의 8421님의 확장슬롯~

모두 IDC 50핀으로 연결할 수 있으니 편하게 쓸 수 있을거라 생각되네요. ㅎ.ㅎ/


최종 결정된 보드의 H/W 구성입니다.

- 플래쉬롬 8MBytes + SRAM 2MBytes

- 144핀 CPLD EPM1270

- 외부 슬롯 커넥터 (IDC 50핀)

- 에뮬 부팅 스위치 및 동작 LED


요렇게 넣어서 PCB를 그려보았습니다.

추후 테스트를 위한 R2R DAC, 옵션 저항, OSC 등 잡다 부품도 넣어놨어요.





보드가 나오면 본격적으로 로직 구현에 들어갈 예정입니다.

이 때가 제일 신나죠~ ㅎ.ㅎㅋ


2017년 2월 10일 금요일

FontPack 제작 #10 - 확장슬롯 동작문제(BUSDIR) 수정

폰트팩 H/W 오류 수정에 대한 내용입니다.


현상: DATA 라인에 양방향 버퍼를 사용하는 확장슬롯에서 폰트 I/O 에러 발생

원인: 확장슬롯 용 BUSDIR 신호처리가 되지않음


아래는 BUSDIR 신호를 추가하여, 보드를 수정하는 방법입니다.

직접 수정해보실 분은 참고하셔요~ ㅎ.ㅎ


------------------------------------------------------------------------------------------


폰트팩은 2종류의 보드가 있습니다.

2015년에 제작된 DevPack v1.0

2016년에 제작된 DevPack v1.1 두 종류입니다. 보드 좌측 상단의 버전 번호로 확인가능합니다.

두 회로의 차이는 크게 없지만 신호 패턴이 조금 다릅니다.


회로 추가를 위해 74LS05 칩 및 4.7K옴 저항 2개가 필요합니다.

노란색 부분은 니퍼 등을 이용해서 보드의 신호선을 끊어주어야합니다.

나머지 부분은 색깔에 맞춰 서로 연결하면 되겠습니다.

74LS05 14번핀의 VCC 5V 입력은 보드의 상단의 넒은 부분에 납땜하면 됩니다.

칼등으로 살살 긁으면 녹색 페인트를 벗길수 있어요.


아래는 DevPack v1.0 보드를 위한 납땜 위치를 보여줍니다.




아래는 DevPack v1.1 보드를 위한 납땜 위치를 보여줍니다.




아래는 제가 작업한 모습입니다.

74LS05 칩의 다리를 구부려서 저항 두개를 납땜했습니다.




아래는 최종 작업된 모습입니다.