개요 | |
본 글에서는 DA14580 Development Kit-Pro 의 mother board 에 장착되어있는 SPI 메모리에 펌웨어 기록하고 부팅시 SPI 메모리의 펌웨어로 부팅되도록 하는 설정법 정리한다.
설명. DA14580 은 외부에 별도 메모리(SPI, I2C모두 가능)를 장착하여 부팅시 외부 메모리에 있는 펌웨어로부터 부팅가능하다. 이를 달성하기 위해서는 펌웨어가 외부메모리에 기록되어야 하며, 부팅시 외부메모리로부터 부팅되도록 하는 설정들이 필요하다. 이를 DA14580 Development Board 에서 SPI 메모리에 펌웨어 기록하고 부팅시 SPI 메모리의 펌웨어로 부팅되도록 하는 설정법을 정리한다.
절차. 1. 펌웨어를 SPI메모리로 기록하기 2. DA14580 부팅시 SPI메모리로부터 부팅하기.
필수참조 문서 - 본글은 Dialog사에서 배포된 Application Note 중 아래 문서를 참조한다. AN-B-023 : http://support.dialog-semiconductor.com/download/file/fid/911 페이지 7 ~15 Dialog 사 포럼 질답 : http://support.dialog-semiconductor.com/dsps-boot-flash-developent-kit-pro
| |
|
UART RTS, CTS 핀맵 변경 | |
DSPS 의 UART 핀 4개도 사용하고, 동시에 SPI 메모리 부팅가능하려면 UART핀맵을 변경해야만 한다.
문제상황 상세.
DSPS 기본 UART 핀 설정은 아래와 같이 되어있지만, P0.2 UART1 CTS - 외부 연결 USB RTS P0.3 UART1 RTS - 외부연결 USB CTS P0.4 UART1 TX - 외부연결 USB RxD P0.5 UART1 RX - 외부연결 USB TxD 기본설정이 위와 같다보니, DSPS의 H/W flow control 적용하려면 메인보드의 J5의 점퍼 설정을 아래와 같이 해야한다.
한편, SPI 부팅가능하려면 J5 점퍼 설정이 아래그림의 SPI 부분처럼 해야한다. 아래와 같은 SPI 점퍼 설정을 하게 되면 위 그림에서 UART용으로 사용되는 P0.3, P0.5 가 SPI용에서 중복되고 있다. 따라서 UART1 용도로 설정된 P0.3, P0.5 대신 SPI 에 할당되지 않은 핀을 선택해야한다.
조치. - UART1 핀 2개를 다른것으로 변경.
UART1 용도의 핀을 아래처럼 할당하자.
UART1 핀맵 수정.
P0.2 UART1 CTS - 외부 연결 USB RTS P1.1 UART1 RTS - 외부연결 USB CTS - 원래 P0.3 이었음. P0.4 UART1 TX - 외부연결 USB RxD P1.3 UART1 RX - 외부연결 USB TxD - 원래 P0.5 였음.
DSPS 펌웨어에서 UART1 핀맵 수정하고 재빌드한다. 해당 설정은 periph_setup.h 의 아래 부분에서 이뤄진다. 변경 한 후의 코드 모습이다.
J5 의 점퍼설정. - 아래 사진처럼 점퍼 처리했다. 오른쪽에 정확한 점퍼처리상황 보이고 있다. 파랑색 점퍼 부분은 SPI booting 가능하도록 한 설정이며, 붉은색은 DA14580 UART 4개의 핀을 보드에 내장된 FTDI USB 칩으로 연결한 것임.
| |
|
DA14580 외부 SPI 메모리에 펌웨어 기록하기. | |
보드의 점퍼 상태. 앞의 그림에서 UART 부분은 점퍼하지 않고, SPI booting 가능한 상태의 점퍼만 된 상태에서,
스텝1. Smart Snippets 처음 구동시 인터페이스를 JTAG 선택하고 들어가야함.
스텝2. SPI Programmer에서 ERASE -> 이후 Burn 클릭하면 됨. 위 상태로 기록성공.
스텝3. 보드의 H/W reset 버튼 눌러 재부팅하여 SPI 부팅됨.
스텝4. 보드 전원 차단된 상태에서 UART점퍼 처리함.
이제 보드는 전원온시 SPI 메모리로부터 부팅되며, PC 에 USB 로 연결하면 com 포트가 잡히며 하이퍼터미널에서 송수신 한 데이터는 DA14580 UART 핀에 까지 정상적으로 인가되는 상태가 되었다.
| |
|
///402.
'임베디드.일렉트로닉스' 카테고리의 다른 글
Dialog 사. DA1458x DSPS 코드 구조 이해. (0) | 2015.09.13 |
---|---|
Dialog 사. DA1458x DSPS device 측 룹백구현. (0) | 2015.09.07 |
Dialog 사. DA14580 외부 핀 인터럽트, wakeup 시키기. (0) | 2015.09.07 |
Dialog 사. DA14580에서 I2C Master 구현방법. (0) | 2015.09.07 |
Dialog사. DA14580 Secondary Bootloader (dual image booting) (0) | 2015.09.07 |
댓글