본문 바로가기

연구 노트/Embedded

[MCS-51] Arduino를 이용한 AT89S52 프로그램 다운로드

AT89S52는 SPI(Serial Peripheral Interface) 통신으로 프로그램을 다운로드 할 수 있습니다. SPI 통신을 위한 별도의 장비를 이용할 수도 있지만 혹시 주변에 아두이노(Arduino)가 있다면 그것으로 hex 파일을 프로그램 메모리에 쓸 수 있습니다. 이 방법은 모든 MCS-51 계열 MCU에 사용할 수 있는 방법은 아닙니다. 칩 내부에 플래시 메모리를 내장한 모델에 적용할 수 있습니다. 참고로 프로그램은 약 1,000회 정도 덮어쓸 수 있다고 합니다.

개발 환경 및 준비물

이 과정은 Windows 10 환경에서 진행하였고 사용한 재료들은 아래와 같습니다.

  • 아두이노 우노
  • 점퍼선 6개 (전원 용도 2개, SPI 통신 용도 3개, RST 용도 1개)
  • 최소 설계 회로로 구성된 AT89S52

 

과정 1

아두이노 우노를 PC에 연결하고 아두이노 IDE를 실행합니다.

과정 2

아두이노 예제 중 "ArduinoISP" 예제를 불러옵니다. 불러오는 방법은 IDE 상단 메뉴에서 [파일]->[예제]->[11. ArduinoISP]->[ArduinoISP] 를 선택하면 됩니다.

과정 3

예제 코드를 아두이노에 업로드 합니다.

과정 4

프로그램 다운로드를 위한 회로를 구성합니다. 우선 AT89S52의 최소 설계 회로에서 리셋(RST) 회로 부분을 제거합니다. 리셋 신호를 아두이노가 제어할 수 있게 하기위함입니다. 그리고 아두이노 우노와 AT89S52를 점퍼선으로 표와 같이 연결합니다.

아두이노 AT89S52
pin 13 P1.7
pin 12 P1.6
pin 11 P1.5
pin 10 RST

AT89S52에 연결한 점퍼선
아두이노에 연결한 점퍼선
AT89S52 데이트 시트에 있는 플래시 메모리 다운로드를 위한 회로

과정 5

hex 파일을 AT89S52에 쓰기 위해 avrdude.exe 프로그램을 사용할 것입니다. 이 때 필요한 설정 파일을 다운 받습니다.

avrdude.conf
0.46MB

과정 6

커맨드 프롬프트(cmd.exe)를 실행시키고 아래와 같이 명령을 입력합니다.

"(avrdude 프로그램 경로)\avrdude.exe" -C (avrdude.conf 파일 경로)\avrdude.conf -c stk500v1 -P (아두이노와 연결된 COM 포트) -p 89s52 -b 19200

제 PC 환경에서는 다음과 같이 입력하였습니다.

"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe" -C C:\Dev\8051\avrdude.conf -c stk500v1 -P COM6 -p 89s52 -b 19200

정상적으로 AT89S52와 연결이 되었다면 "Fuses OK"라는 메시지가 포함된 텍스트가 출력됩니다.

정상적으로 연결 확인이 되었을 때

만약 아래 캡쳐 이미지와 같이 장치 서명(Device signature)를 읽는 작업을 반복하는 경우 회로를 다시 한번 확인해보시기 바랍니다. 점퍼선을 올바르게 연결하지 않았거나, 리셋 회로를 제거하지 않은 경우 이러한 문제가 발생할 수 있습니다. 저의 경우 리셋 회로를 제거하지 않은 상태로 진행하였더니 이런 문제가 나타났습니다. 출력 테스트의 마지막 문장이 "avrdude.exe done. Thank you." 이어서 문제없이 마무리된 것 같지만 그렇지 않으니 잘 살펴보셔야 합니다.

연결 오류가 있을 때 나타나는 출력 결과입니다. Yikes! 라는 비명이 눈에 띕니다.

 

다운로드 과정

이제 hex 파일을 MCU에 다운로드 할 차례입니다. 다운로드 방법은 과정 6에서 입력한 명령에 명령 옵션 하나와 hex 파일 경로를 추가하면 됩니다.

-U flash:w:(hex 파일 경로 및 파일명):i

예를 들어 가지고 있는 hex 파일 이름이 "test.hex" 라면 이렇게 쓸 수 있습니다.

"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe" -C C:\Dev\8051\avrdude.conf -c stk500v1 -P COM6 -p 89s52 -b 19200 -U flash:w:C:\Dev\8051\text.hex:i

 

검증 과정

검증 과정은 다운로드한 hex 파일이 제대로 MCU에 쓰여졌는지 확인하는 과정입니다. 다운로드를 위한 명령 옵션에서 단 한 글자만 변경하면 됩니다. 'w' 대신에 'v'를 입력합니다.

-U flash:v:(hex 파일 경로 및 파일명)

 

마무리

여기까지가 AT89S52에 프로그램을 다운로드 하는 방법입니다.