패러럴 포트 (프린터 포트)를 이용한 초간단 롬라이터

blackra1n   
   조회 33947   추천 20    

spipgm.zip (129.6K), Down : 30, 2014-09

오늘 자게에 초간단 롬라이터 자작 후기를 올렸었는데 혹시나 필요하신 분이 계실까 싶어 제작 방법을 간단히 작성해봅니다.
아마 거의 대부분의 메인보드 바이오스는 이방법으로 구울 수 있는것 같습니다.

회로도는 아래와 같습니다.


먼저 주의하실점은 되도록 구우려는 바이오스 칩의 모델이 뭔지 확인하시고 데이타시트에서 위 그림의 핀 설명과 가지고 계신 바이오스 칩의 핀이 같은지 확인하고 진행하시길 권합니다.
바이오스 칩이 어떤 모델인지는 칩위에 쓰여있는 영문자나 숫자를 구글에 검색해보시면 쉽게 찾을 수 있습니다.
어떤 모델인지 확인하셨으면 다시 구글에서 칩 모델명을 넣고 "datasheet" 라고 붙여서 검색하시면 데이타시트도 쉽게 볼 수 있습니다.
참고로 위 회로도의 저항 중 칩과 프린터포트 사이에 연결되는 150옴 저항은 흔히 LED에 달아쓰는 330옴 저항으로도 가능합니다.
마찬가지로 칩의 3번, 7번 핀의 10K옴 저항도 4.7K~10K 사이의 저항으로 쓰시면 문제없구요.
한가지 중요한건 칩근처의 3.3V VCC와 GND 사이에 콘덴서를 꼭 달아주세요. (10uF이 없다면 적당한 값의 콘덴서라도 다시길 권합니다.)
한가지 팁을 드리자면 3.3V 전원을 찾기 힘들다면 메인보드에 달려있는 동전배터리 (3V)를 이용해도 됩니다.

이제 첨부한 파일을 다운받으셔서 압축을 푸시고 도스창을 띄워서 압축푼 파일중 SPIPGMW.EXE를 통해 바이오스를 구우시면 됩니다.

굽기에 앞서 다음 명령으로 바이오스 칩이 정상 인식되는지 확인해보세요.
>spipgmw.exe /i
위 명령을 실행하면 칩 정보가 뜨게됩니다. 만약 "JEDEC ID is FFFFFFh"와 같은 문구가 뜬다면 회로에 이상이 있거나 잘못된 패러럴 포트를 사용했을 가능성이 있습니다.
이런 경우라면 다음 명령과 같이 칩과의 통신시 딜레이를 좀 줘서 제대로 인식이 되는지 확인해보세요.
>spipgmw.exe /i /d=5
만약 메인보드에 달려있는 패러럴 포트가 아니고 PCI 카드 방식의 패러럴 포트라면 주소를 지정해주어야 합니다.
이 경우 윈도우의 장치관리자로 가셔서 패러럴 포트 속성에서 리소스 항목으로 가시면 할당되어있는 주소를 알 수 있습니다.
예를들어 주소가 3000 - 3007, 3028 - 302B 이런식으로 두 항목이 있으면 첫번째 항목의 첫번째 주소가 사용될 패러럴 포트의 주소입니다.
할당된 패러럴 포트의 주소를 지정해서 다음과 같이 명령을 실행해보세요. (주소앞에 0x 붙여서..)
>spipgmw.exe /i /l=0x3000

정상 인식되면 아래 명령으로 바이오스를 구우면 됩니다. (바이오스 롬파일을 프로그램과 같은 폴더에 넣으세요)
>spipgmw.exe /p biosrom.bin
잘 구워졌는지는 아래 명령으로 확인합니다.
>spipgmw.exe /v biosrom.bin

굽기와는 반대로 바이오스 칩의 내용을 백업하려면 아래 명령으로 가능합니다.
>spipgmw.exe /d biosbackup.bin

저는 빵판을 이용해 아래 사진과 같이 연결했습니다.

그리고 이렇게 복구가 잘 되었네요 ^^

필요한 분께 도움이 되었길 바랍니다 ^^


------------------------------------------
지원 칩 목록
------------------------------------------

SPI FlashROMs supported (new are marked with *)
***********************************************

AMIC:
A25L05PU/PT (64kB)
A25L10PU/PT (128kB)
A25L20PU/PT (256kB)
A25L40PU/PT (512kB)
A25L80PU/PT (1MB)
A25L16PU/PT (2MB)
A25L32PU/PT (4MB)
A25L64PU/PT (8MB)
A25L512 (64kB)
A25L010 (128kB)
A25L020 (256kB)
A25L040 (512kB)
A25L080 (1MB) - tested OK

Atmel:
AT25F512B (64kB)
AT25F1024A (128kB) - this chip may be supported but a tester is needed
AT25DF021 (256kB)
AT26DF041 (512kB)
AT25DF041A (512kB)
AT26F004 (512kB) - tested OK
AT26DF081 (1MB)
AT25/26DF081A (1MB)
AT25DF081 (1MB)
AT26DF161 (1MB)
AT26DF161A (2MB)
AT25DF161 (2MB)
AT25DQ161 (2MB)
AT25/26DF321 (4MB)
AT25DF321A (4MB)
AT25DQ321A (4MB)
AT25DF641(A) (8MB)

EON:
EN25B10 (128kB)
EN25B20 (256kB)
EN25B40(T) (512kB)
EN25B80 (1MB)
EN25B16 (2MB)
EN25P32 (4MB)
EN25P64 (8MB)
EN25P128 (16MB)
EN25Q40 (512kB)
EN25Q80 (1MB)
EN25Q16 (2MB)
EN25Q32 (4MB)
EN25Q64 (8MB)
EN25Q128 (16MB)
EN25F10 (128kB)
EN25F20 (256kB)
EN25F40 (512kB)
EN25F80 (1MB) - tested OK
EN25F16 (2MB)
EN25F32 (4MB)
EN25F64 (8MB)
EN25F128 (16MB)
EN25T10 (128kB)
EN25T20 (256kB)
EN25T40 (512kB)
EN25T80 (1MB)
EN25T16 (2MB)
EN25T32 (4MB)
EN25T64 (8MB)
EN25QH16 (2MB)
EN25QH32 (4MB) - tested OK
EN25QH64 (8MB)
EN25QH128 (16MB)
EN25QH256 (32MB)

ESMT:
F25L004A (512kB) - tested OK
F25L008A/08PA (1MB)
F25L016A/16PA (2MB)
F25L32PA (4MB)
F25L64PA (8MB)
F25S04PA (512kB)
F25L08PA (1MB)
F25L16QA (2MB)
F25L32QA (4MB)
F25L64QA (8MB)

GigaDevice:
GD25Q512 (64kB)
GD25Q10 (128kB)
GD25Q20 (256kB)
GD25Q40 (512kB)
GD25Q80 (1MB)
GD25Q16 (2MB) - tested OK
GD25Q32 (4MB)
GD25Q64 (8MB)

Intel:
QB25F016S33B8 (2MB)
QB25F032S33B8 (4MB)
QB25F064S33B8 (8MB)

Macronix:
MX25L512E (64kB)
MX25L1005/1006E (128kB) - tested OK
MX25L2005/2006E (256kB)
MX25L4005/4006E (512kB)
MX25L8005/8006E (1MB) - tested OK
MX25L1605/1606E (2MB) - tested OK
MX25L3205/3206E (4MB)
MX25L6405/6406E/6435E/6445E/6473E (8MB) - tested OK
MX25L12835E/12836E/12873F (16MB)
MX25L25635E/25735E/25835E (32MB)

PMC:
Pm25LD512 (64kB) - tested OK
Pm25LD010 (128kB) - tested OK
Pm25LD020 (256kB)
Pm25LV512(A) (64kB) - tested OK
Pm25LV010(AB) (128kB) - tested OK
Pm25LV020 (256kB)
Pm25LV040 (512kB) - tested OK
Pm25LV080B (1MB)
Pm25LV016B (2MB)
Pm25LV032B (4MB)
Pm25LV064B (8MB)

Spansion:
S25FL001A (128kB)
S25FL002A (256kB)
S25FL004A (512kB)
S25FL008A (1MB)
S25FL016A (2MB)
S25FL032A/P (4MB) - tested OK
S25FL064A/P (8MB)
S25FL128P/S/129P/S (16MB) - tested OK
S25FL256S (32MB)
S25FL512S (64MB)
S25FL01GS (128MB)

ST Microelectronic/Numonyx:
M25P05 (64kB)
M25P10 (128kB)
M25P10AV (128kB) - tested OK
M25P20 (256kB)
M25P40 (512kB)
M25P80 (1MB)
M25P16 (2MB)
M25P32 (4MB) - tested OK
M25P64 (8MB)
M25P128 (16MB)
M45PE10 (128kB)
M45PE20 (256kB)
M45PE40 (512kB)
M45PE80 (1MB)
M45PE16 (2MB)
M25PX80 (1MB)
M25PX16 (2MB)
M25PX32 (4MB)
M25PX64 (8MB)
N25Q032A13E (4MB)
N25Q032A11E (4MB)
N25Q064A13E (8MB)
N25Q064A11E (8MB)
N25Q128A13E (16MB)
N25Q128A11E (16MB)
N25Q256A13E (32MB)
N25Q256A11E (32MB)
N25Q512A13G (64MB)
N25Q512A11G (64MB)
N25Q00AA13GB (128MB)

SST:
SST25VF512(B) (64kB) - tested OK
SST25VF010(B) (128kB)
SST25VF020(B) (256kB)
SST25VF040(B) (512kB)
SST25VF080(B) (1MB) - tested OK
SST25VF016(B) (2MB) - tested OK
SST25VF032(B) (4MB)
SST25VF064C (8MB)
SST25VF128(B) (16MB)
SST26VF016 (2MB)
SST26VF032 (4MB)
SST26VF064 (8MB)

Winbond:
W25Q10B (128kB)
W25Q20BV (256kB)
W25Q40BV (512kB)
W25Q80BV (1MB) - tested OK
W25Q16BV (2MB) - tested OK
W25Q32BV (4MB) - tested OK
W25Q64BV/FV (8MB) - tested OK
W25Q128BV/FV (16MB)
W25Q256FV (32MB)
*W25Q16FW 1,8V (2MB)
*W25Q32FW 1,8V (4MB)
*W25Q64FW 1,8V (8MB)
*W25Q128FW 1,8V (16MB)
W25X10 (128kB)
W25X20 (256kB)
W25X40 (512kB)
W25X80 (1MB) - tested OK
W25X16 (2MB)
W25X32 (4MB) - tested OK
W25X64 (8MB)
다롱이 2014-09
고맙습니다.
좋은 정보 감사합니다. 춫
송우찬 2014-09
너무 유용한 정보네요 감사합니다
박신석 2014-09
오오 조금은 고난이도? 엄청난 정보군요 시도해봐야겠네요
뿌시딘 2014-11
감사합니다.
송진홍 2016-12
추천합니다.^^


제목Page 1/28
2014-10   12323   김황중
2020-04   16660   스캔l민현기
2015-02   30386   황진우
2014-12   18339   김황중
2014-09   33948   blackra1n
2016-07   92791   백만스물하나
2014-11   24484   김황중
2019-07   23382   스캔l민현기
2014-10   20229   블랙커피
2014-06   27213   witbox
2014-08   28607   빠시온
2014-12   19354   dydans
2023-03   29785   김준연
2017-07   31251   stone92김경민
2015-05   15786   stone92김경민
2014-04   45652   dydans
2018-05   20346   송주환
2020-11   18859   화정큐삼
2014-10   12526   witbox
2022-02   24147   화정큐삼