2011년6월21일_AT91SAM7S256 MCU Board 기동절차, 시험소스코드를 구동하기 위해 브레드보드결선, ISP프로그램(sam-ba)을 사용해 binary파일 굽은 후 동작확인
//좀 더 보기 좋게 바꿀까…
<ARM 보드 기동철차> ① TST스위치 ON상태, POWER스위치 EXT상태 (파워OFF) ② ARM보드와 PC를 USB케이블로 연결함. ③ POWER스위치를 USB상태로 바꿈. (파워ON) ④ 10초간 대기. (Flash의 내용이 지워짐.) ⑤ POWER스위치를 EXT상태로 바꿈. (파워OFF) ⑥ TST스위치를 OFF상태로 바꿈. ⑦ POWER스위치를 USB상태로 바꿈. (파워ON) ※ 최초 7번까지 진행하고 나면 “새 하드웨어 발견”이라고 뜨고 드라이버를 설치할 것이다. 이 전에 ‘레고 마인드스톰 NXT 드라이버’가 설치되어 있었다면 새 하드웨어가 아닌 레고NXT하드웨어가 뜬다. (마인드스톰NXT 컨트롤러에 동일한 chip이 사용되기 때문이다.) 이렇게 레고마인드스톰NXT이 뜬다면 레고마인드스톰NXT드라이버를 삭제해야 한다. (프로그램 추가/제거에서..) |
브레드보드 결선 (ARM보드 시험코드) |
AT91SAM7S256보드 내에서 MCU에 공급하기 위해 USB전원 5V를 3.3V로 낮추어 주는 레귤레이터IC가 있다.
그 IC의 출력…즉, 보드의 전원이 따로 나와 있다.
그 3.3V전원핀에 점프선을 연결하여 LED의 (+)단자에 연결하고 LED의 (-)단자는 ARM보드의 J1커넥터의 PA0에 연결한다.
LED를 옆에서 자세히 보면 왼쪽 그림과 같이,
ㄱ자 모양의 긴 부분이 있고 짧은 부분이 있다.
긴 부분이 –단자이다.
J2커넥터의 제일 끝에 보면 GND가 있고 그 다음에 VCC3.3가 있다.
거리가 머니 제일 긴 점프선으로 배선하자.
sam-ba(ISP)를 사용해 flash영역에 컴파일한 기계어코드 넣기 |
<ARM 보드 기동철차>
① TST스위치 ON상태, POWER스위치 EXT상태 (파워OFF)
② ARM보드와 PC를 USB케이블로 연결함.
③ POWER스위치를 USB상태로 바꿈. (파워ON)
④ 10초간 대기. (Flash의 내용이 지워짐.)
⑤ POWER스위치를 EXT상태로 바꿈. (파워OFF)
⑥ TST스위치를 OFF상태로 바꿈.
⑦ POWER스위치를 USB상태로 바꿈. (파워ON)
상기의 7단계대로 ARM보드 기동하고 아래의 시험 C코드를 컴파일을 하자.
1: #define PIOA_PER (*(volatile unsigned int *)0xFFFFF400)
2: #define PIOA_OER (*(volatile unsigned int *)0xFFFFF410)
3: #define PIOA_PPUDR (*(volatile unsigned int *)0xFFFFF460)
4: #define PIOA_CODR (*(volatile unsigned int *)0xFFFFF434)
5: #define PIOA_SODR (*(volatile unsigned int *)0xFFFFF430)
6:
7:
8: void LED_INIT(void)
9: {
10: // Configure the pin in output
11: PIOA_OER = 0x00000003;
12: // Set the PIO controller in PIO mode instead of peripheral mode
13: PIOA_PER = 0x00000003;
14: // Disable pull-up
15: PIOA_PPUDR = 0x00000003;
16: }
17:
18: int main(void)
19: {
20: volatile unsigned int iCount = 0;
21:
22: LED_INIT();
23:
24: while (1)
25: {
26: PIOA_CODR = 0x00000003;
27: for(iCount=0;1000000 >= iCount; ++iCount);
28:
29: PIOA_SODR = 0x00000003;
30: for(iCount=0;1000000 >= iCount; ++iCount);
31:
32: }
33: return 0;
34: }
dir명령이나 ls명령으로 bin파일이 제대로 생성되었는지 확인 후…
바탕화면의 sam-ba아이콘을 클릭하여 ISP프로그램 기동한다.
최초연결시엔 좌측과 같이 USB연결이 되어 있지 않으나,
화살표를 클릭하여 USB연결을 설정하고 MCU type을 설정하고 나면 계속 유지된다.
연결 클릭
뭔지 알 수 없는 값들이 많이 있다.
Send File Name 끝에 있는 폴더가 열린 모양의 아이콘을 클릭하자.
flash영역에 넣는 코드이니 flash가 들어간 파일을 열자.
파일을 로드하였으면 경로와 파일명이 표시된다.
폴더모양 아이콘옆에 Send File버튼을 클릭하자.
좌측 질문은 기존에 lock이 된 chip을 풀 것인지 묻는 것이고,
우측 질문은 구운 뒤에 chip에 lock을 할 것인지 묻는 것이다. 몰라 그냥 Yes를 클릭하자.
ARM칩의 flash영역에 Code가 다 구워졌으니 sam-ba창을 닫고 리셋버튼을 눌러 실행시키자.
//동작확인
'내장형하드웨어 > 일일보고서' 카테고리의 다른 글
2011년6월21일_AT91SAM7S256 spec (미완성) (0) | 2011.06.22 |
---|---|
2011년6월21일_8개의 LED를 키트자동차처럼 좌우로 시프트(AT91SAM7S256 Board) (0) | 2011.06.22 |
2011년6월21일_ARM실습용 장비 수령 후 이상유무확인과 기본세팅 (0) | 2011.06.21 |
2011년6월20일_C언어 if문을 컴파일-어셈블과정을 거쳐 나온 어셈블리어 명령문을 보고 CPU에 대해 알아가자. (0) | 2011.06.21 |
2011년6월20일_ATMEL社의 ARM MCU SAM3S조사와 SAM7S Datasheet, ISP, GCC 3.4 download (0) | 2011.06.20 |