2024년 9월 20일

[알테라] MAX 10 FPGA 디바이스에서 Nios II 프로세서와 UART를 사용한 원격 시스템 업그레이드(2)

이 레퍼런스 디자인은 MAX 10 FPGA 디바이스의 Nios II 기반 시스템으로 기본적인 원격 구성을 실시하는 것을 보여주는 간단한 애플리케이션 예이다. MAX 10 FPGA 개발 키트에 포함되어 있는 UART 인터페이스와 Altera UART IP Core를 사용해서 원격 구성이 가능하다.

[알테라] MAX 10 FPGA 디바이스에서 Nios II 프로세서와 UART를 사용한 원격 시스템 업그레이드(1) 편에 이어서 계속되는 글입니다.

 

레퍼런스 디자인 작업 순서

그림 2: MAX 10 FPGA 디바이스에서 Nios II 프로세서와 UART를 사용한 원격 시스템 업그레이드

프로그래밍 파일 생성

MAX 10 FPGA 개발 키트로 원격 시스템 업그레이드 기능을 사용하기 위해서는 다음과 같은 프로그래밍 파일들을 생성해야 한다:

• QSPI 프로그래밍:

– .sof – 이 레퍼런스 디자인에 포함된 pfl.sof를 사용하거나, 또는 자체적으로 고유의 PFL 디자인을 포함하는 .sof를 작성할 수도 있다.

– .pof – .hex로부터 생성된 구성 파일로서, QSPI 플래시로 프로그램된다.

• 원격 시스템 업그레이드:

– .pof – .sof로부터 생성된 구성 파일로서, 내부 플래시로 프로그램된다.

– .rpd – ICB 설정, CFM0, CFM1, UFM 등의 내부 플래시에 대한 데이터를 포함한다.

– .map – ICB 설정, CFM0, CFM1, UFM의 각기 메모리 섹터의 어드레스를 저장하고 있다.

QSPI 프로그래밍을 위한 파일 생성

QSPI 프로그래밍에 사용하기 위한 .pof 파일을 생성하려면 다음과 같은 순서로 하면 된다:

1. Nios II 프로젝트를 빌드하고 HEX 파일을 생성한다.

참조: Nios II 프로젝트를 빌드하고 HEX 파일을 생성하는 것에 관해서는 “AN730: MAX 10 디바이스에서 Nios II 프로세서를 부팅하는 방법” 참조.

2. File 메뉴에서 Convert Programming Files를 클릭한다.

3. Output programming file 항목 아래에서, Programming file type 목록에서 Programmer Object File (.pof)를 선택한다.

4. Mode 목록에서 1-bit Passive Serial을 선택한다.

5. Configuration device 목록에서 CFI_512Mb를 선택한다.

6. File name 상자에 생성하고자 하는 프로그래밍 파일의 파일명을 지정한다.

7. Input files to convert 목록에서 Options and SOF data 줄을 삭제한다. Add Hex Data를 클릭한다. 그러면 Add Hex Data 대화상자가 표시된다. Add Hex Data 상자에서 Absolute addressing을 선택하고 Nios II EDS 빌드 툴로부터 생성된 .hex 파일을 삽입한다.

8. 모든 설정을 마쳤으면 Generate를 클릭한다. 그러면 해당 프로그래밍 파일이 생성된다.

추가 정보

AN730: MAX 10 FPGA 디바이스에서 Nios II 프로세서를 부팅하는 방법

원격 시스템 업그레이드에 사용하기 위한 파일 생성

원격 시스템 업그레이드에 사용하기 위한 .pof, .map, .rpd 파일을 생성하려면 다음과 같은 순서로 하면 된다:

1. Factory_image, application_image_1, application_image_2를 복구하고 3개 디자인 모두를 컴파일한다.

2. 다음 표에서와 같이 2개의 .pof 파일을 생성한다:

참조: .pof 파일을 생성하는 것에 관해서는 “Convert Programming Files 메뉴를 사용한 .pof 생성” 부분 참조.

생성되는 .pof[2] 포함되는 .sof
app1.pof · Factory_Image.sof· Application_Image_1.sof
app2.pof · Factory_Image.sof· Application_Image_2.sof주의: .pof를 생성할 때는 .rpd.map 파일을 생성해야 한다.

(주)2. 이들 .pof의 파일명은 단지 예로 들고 있는 것이다. 사용자들이 편의대로 이들 파일명을 변경할 수 있다.

3. 헥스 에디터를 사용해서 app2.rpd를 연다.

4. 헥스 에디터에서 .map 파일을 참고해서 시작 오프셋과 끝 오프셋을 사용해서 바이너리 데이터 블록을 선택한다. 10M50 디바이스의 시작 오프셋과 끝 오프셋은 각각 0x12000과 0xB9FFF이다. 이 블록을 새로운 파일로 복사해넣고 다른 .rpd 파일로 저장한다. 이 새로운 .rpd 파일은 애플리케이션 이미지 2만 포함한다.

다음 그림에서 보여주고 있는 시작 오프셋 및 끝 오프셋은 10M50 디바이스에 관한 것이다.

그림 3: .map 파일 예

Convert Programming Files 메뉴를 사용한 .pof 생성

.sof 파일을 .pof 파일로 변환하려면 다음과 같은 순서로 하면 된다:

1. File 메뉴에서 Convert Programming Files를 클릭한다.

2. Output programming file 항목 아래에서, Programming file type 목록에서 Programmer Object File (.pof)를 선택한다.

3. Mode 목록에서 Internal Configuration을 선택한다.

4. File name 상자에 생성하고자 하는 프로그래밍 파일의 파일명을 지정한다.

5. Memory Map File(.map)을 생성하려면 Create Memory Map File에 체크한다(output_file.map을 자동으로 생성한다). 이 .map은 Option/Boot Info 옵션에서 설정했던 CFM 및 UFM과 ICB 설정의 어드레스를 담고 있다.

6. Raw Programming Data(.rpd)를 생성하려면 Create config data RPD에 체크한다(그러면 output_file_auto.rpd를 생성한다).

Memory Map File의 도움을 받아서 .rpd 파일에서 각기 기능 블록에 대한 데이터를 수월하게 식별할 수 있다. 또한 Altera On-Chip Flash IP를 통해서 써드파티 프로그래밍 툴에 사용하도록 플래시 데이터를 추출하거나 구성 또는 사용자 데이터를 업데이트할 수 있다.

7. Input files to convert 목록에서 .sof를 추가할 수 있으며, 최대 2개까지 .sof 파일을 추가할 수 있다.

원격 시스템 업그레이드를 위해서는 원래 페이지 0 데이터는 .pof에 그대로 유지하고 페이지 1 데이터는 새로운 .sof 파일로 교체할 수 있다. 이렇게 하려면 페이지 0에 .pof 파일을 추가하고, 그런 다음 .sof 페이지를 추가하고, 페이지 1에 새로운 .sof 파일을 추가한다.

8. 모든 설정을 마쳤으면 Generate를 클릭한다. 그러면 해당되는 프로그래밍 파일이 생성된다.

QSPI 프로그래밍

QSPI 플래시로 Nios II 애플리케이션 코드를 프로그램하려면 다음과 같은 순서로 하면 된다:

1. MAX 10 FPGA 개발 키트에서 MAX10_BYPASSn을 0으로 전환시켜서 온보드 VTAP(MAXII) 디바이스를 우회하도록 한다. 외부적 USB 블래스터를 JTAG 헤더로 연결한다.

2. Programmer 창에서 Hardware Setup을 클릭하고 USB Blaster를 선택한다.

3. Mode 목록에서 JTAG를 선택한다.

4. 왼쪽 칸에 있는 Auto Detect 버튼을 클릭한다.

5. 프로그램하려는 장치를 선택하고 Add File을 선택한다.

6. pfl.sof를 선택한다.

7. Start를 클릭하면 프로그래밍이 시작된다.

8. 프로그래밍이 성공적으로 이루어졌으면, 보드를 끄지 말고 다시 Auto Detect 버튼을 클릭한다. 그러면 Programmer 창에 QSPI_512Mb 플래시가 표시된다.

9. 이 QSPI 디바이스를 선택하고 Add File을 클릭한다.

10. 앞서 .hex 파일로부터 생성된 .pof 파일을 선택한다.

11. Start를 클릭하면 QSPI로 프로그래밍이 시작된다.

JTAG를 통해서 FPGA로 최초 이미지 프로그래밍

디바이스 최초 이미지로서 FPGA로 app1.pof를 프로그램해야 한다. FPGA로 app1.pof를 프로그램하려면 다음과 같은 순서로 하면 된다:

1. Programmer 창에서 Hardware Setup을 클릭하고 USB Blaster를 선택한다.

2. Mode 목록에서 JTAG를 선택한다.

3. 왼쪽 칸에 있는 Auto Detect 버튼을 클릭한다.

4. 프로그램하려는 장치를 선택하고 Add File을 선택한다.

5. app1.pof를 선택한다.

6. Start를 클릭하면 프로그래밍이 시작된다.

UART를 통해서 이미지 업데이트 및 재구성 트리거

MAX 10 FPGA 개발 키트를 원격적으로 구성하려면 다음과 같은 순서로 하면 된다:

1. 주의: 이 작업을 하기 위해서는 다음 사항을 확인해야 한다:

• 보드 상의 CONFIG_SEL 핀이 0으로 설정되어 있어야 한다.

• 보드의 UART 포트가 컴퓨터로 연결되어 있어야 한다.

Remote Teminal.exe를 실행하면 Remote Terminal 인터페이스가 열린다.

2. Settings를 클릭하면 Serial port settings 창이 열린다.

3. 원격 터미널의 파라미터를 Quartus II UART IP Core에서 선택한 UART 설정과 일치하게 설정한다. 설정을 마쳤으면 OK를 클릭한다.

그림 4: UART 직렬 포트 설정 화면

4. 개발 키트 상에서 nCONFIG 버튼을 누르거나, Send 텍스트 상자에 1을 입력하고 Enter를 누른다.

그러면 터미널 상에 다음과 같이 동작을 선택할 수 있는 목록이 표시된다.

터미널 상에 다음과 같이 동작을 선택할 수 있는 목록이 표시된다.

주의: 동작을 선택하려면 Send 텍스트 상자에 원하는 숫자를 입력하고 Enter를 누른다.

5. 애플리케이션 이미지 1을 애플리케이션 이미지 2로 업데이트하려면 동작 2를 선택한다. 그러면 CFM1과 CFM2의 시작 어드레스 및 끝 어드레스를 입력하라고 지시한다.

주의: map 파일에서 보여주고 있는 어드레스는 ICB 설정, CFM, UFM을 포함하고 있으나, Altera On-Chip Flash IP는 CFM과 UFM만 액세스할 수 있다. 그러므로 map 파일에서 보여주고 있는 어드레스와 Altera On-Chip Flash IP 파라미터 창에서 보여주고 있는 어드레스 사이에는 어드레스 오프셋이 존재한다는 점에 유의해야 한다.

6. Altera On-Chip Flash IP 파라미터 창에서 지시하고 있는 어드레스를 사용해서 어드레스를 입력한다.

그림 5: Altera On-Chip Flash IP Core에서의 시작 어드레스 및 끝 어드레스

fig_5-1

끝 어드레스를 입력하면 소거가 자동으로 시작된다.

fig_5-2

7. 소거가 성공적으로 이루어졌으면 애플리케이션 이미지 2의 프로그래밍 .rpd 파일을 입력하라고 지시한다. 이 이미지를 업로드하려면, SendFile 버튼을 클릭하고, 애플리케이션 이미지 2만 담고 있는 .rpd를 선택하고, Open을 클릭한다.

주의: 꼭 애플리케이션 이미지 2가 아니라도 자신이 업데이트하고자 하는 어떤 새로운 이미지든 사용할 수 있다.

그러면 곧바로 업데이트 프로세스가 시작되고 터미널 상에서 이 작업이 진행되는 것을 모니터링할 수 있다. 화면에 Done이 표시되면 그 다음 동작을 선택할 수 있다.

8. 재구성을 트리거하려면 동작 4를 선택한다. LED 동작을 살펴봄으로써 디바이스로 어떤 이미지가 로드되고 있는지 알 수 있다.

fig_6-1

 

문서 개정 이력

fig_6-2
 

[개발키트 구매하기]
[DEV KIT MAX 10 NEEK 구매하기]

 

[알테라] MAX 10 FPGA 디바이스에서 Nios II 프로세서와 UART를 사용한 원격 시스템 업그레이드(1) 으로 돌아가기.

아이씨엔매거진
IO-Link Wireless
오윤경 기자
오윤경 기자http://icnweb.co.kr
아이씨엔매거진 온라인 뉴스 에디터입니다. 오토메이션과 클라우드, 모빌리티, 공유경제, 엔지니어 인문학을 공부하고 있습니다. 보도자료는 아래 이메일로 주세요. => news@icnweb.co.kr
  • AW2025
  • K-BATTERY Show
  • 파스텍 배너 900
  • hilscher
ASI

Join our Newsletter

Get the latest newsletters on industry innovations.

AW2025
파스텍 배너 300
K-BATTERY SHOW 2024

Related articles

인텔, 알테라(Altera)를 전문 FPGA 기업으로 독립 분할

인텔로부터 다시 분할 독립되는 알테라는 패브릭에 AI가 내장된 유일한 FPGA를 비롯해 기업 포트폴리오를 확장한다.

[기고] 산업용사물인터넷(IIoT) 에지 노드의 토대 기술들

보안적이면서 효율적인 컴퓨팅 기술과 LPWAN 네트워킹을 이용할 수 있게 됨으로써 배터리 구동 IIoT 센서 노드가 현실적으로 가능하게 되었다

마우저, AMD 자일링스의 크리아 KD240 드라이브 스타터 키트 공급

마우저가 산업 자동화, 의료, EV 및 로보틱스 애플리케이션을 위한 AMD 자일링스의 크리아 KD240 드라이브 스타터 키트를 공급한다

기자의 추가 기사

IIoT

K-BATTERY SHOW 2024
오토모션

추천 기사

mobility