안녕하세요!

오늘의 주제는 Cortex-M3 에서 리셋 신호와 외부 전용 주변장치 버스등을 설명 하겠습니다.


1.외부 전용 주변장치 버스


Cortex-M3 프로세서는 외부 전용 주변장치 버스 인터페이스를 가지고 있습니다.
외부 PPB 인터페이스는 AMBA Specification 2.0에서의 진보된 주변장치 버스 프로토콜을 기반으로합니다.

이것은 디버깅 컴포넌트들과 같이 공유되지 않는 시스템 장치들을 위해 만들어졌습니다.
CoreSight 장치 지원을 위해서는 이 인터페이스는 PADDR310이면 이것은 전송이 Cortex-M3에서 동작하는 소프트웨어에 의해서

발생되었다는 것을 의미합니다. 이 신호가 1이면 이것은 전송이 디버깅 하드웨어에 의해서발생되었다는 것을 의미합니다.

이 신호를 기반으로 디버거만이 이것을 사용할 수 있도록 주변장치가 설치되어 있으며 소프트웨어에 의해 사용될 때에는

이 특징 중 일부만이 허용됩니다.
이 버스는 주변장치에서처럼 범용을 위해 만들어진 것이 아닙니다. 비록 칩 설계가 범용 주변장치를 이 버스에 설계하여

연결할 수 있다고 하더라도 사용자들에게는 특권 접근 레벨 관리 때문에 나중에 프로그래밍을 할 때 문제가 생깁니다.
외부 PBB는 비정렬 접근을 지원하지 않습니다. 버스의 데이터 너비는 32비트이며 APB기반이므로 이 메모리 영역을 위해

주변장치를 설계할 때 이 주변장치 안에 모든 레지스터 주소가 워드로 정렬되어 있는지를 확인해야 할 필요가 있습니다.
장치들에게 접근하는 소프트웨어를 작성할 때 모든 접근이 워드 크기로 되어 있는지를 확인해 보기를 권장 합니다. PBB 접근은

항상 리틀 에디안입니다.

2. 전형적인 연결

Cortex-M3 프로세서에서는 많은 버스 인터페이스가 있기 때문에 그것이 메모리나 주변장치와 같은 다른 장치에 어떻게

연결되는지를 살펴보는 것이 다소 혼란스러울 수 있습니다.
코드 메모리 영역은 명령어 버스와 매트릭스라고 불리는 AHB 버스 스위치 또는 AHB 버스 멀티플렉서가 필요합니다.
버스 매트릭스에서는 플래시 메모리와 추가적인 SRAM 메모리가 버스 인터페이스 중 하나에 의해 접근될 수 있습니다.
버스 매트릭스는 ARM의 AMBA Development kit에서 사용할 수 있습니다. 데이터 버스와 명령어 버스가 모두 동일한 메모리

소자에 접근하려고 한다면 보다 나은 성능을 위해 데이터 버스 접근에게 더 높은 우선순위가 주어집니다.
AHB 버스 매트릭스를 사용하는 경우 명령어 버스와 데이터 버스가 동시에 다른 메모리 소자에 접근하려고 한다면 이 전송은

동시에 수핼될 수 있습니다.
하지만 버스 멀티플레서가 사용된다면 전송은 동시에 발생할 수 없게 됩니다. 하지만 이 경우에느 회로 크기가 더 작아질 수

있습니다. 일반적인 Cortex-M3 마이크로컨트롤러 설계에서는 SRAM 연결을 위해 시스템 버스가 사용됩니다.
메인 SRAM 블록은 SRAM 메모리 주소 영역을 사용하여 시스템 버스 인터페이스를 통해 연결되어야 합니다.

이것이 명령어 접근과 데이터 접근이 동시에 수행될 수 있게 해줍니다. 비트 대역의 특징을 사용하면 불 데이터 유형 설정도
가능하게 합니다.
어떤 마이크로컨트롤러는 외부의 메모리 인터페이스도 가질 수 있습니다. 그것은 칩 외부의 메모리 소자를 AHB에 직접

연결할 수 없기 때문에 외부 메모리 컨트롤러를 요구 합니다.
외부 메모리 컨트롤러는 Cortex-M3의 시스템 버스에 연결될 수 있습니다.

추가적인 AHB 소자 또한 버스 매트릭스 없이도 쉽게 시스템 버스에 연결 되 수 있습니다.

3. 리셋 신호

Cortex-M3 마이크로 컨트롤러 또는 SoC 에서의 리셋 회로 설계는 특별한 구현 방법이 있습니다
Cortex-M3 Tecbnical Refernce manual에는 몇 가지 리셋 신호가 문서화되어 있습니다.
하지만 구현된 Cortex-M3 칩은 오직 하나 또는 두 개의 리셋 신호만을 가지고 있으며 나머지는 칩 벤더에 의해 설계된

리셋 발생기에 의해 내부적으로 발생하게 될 것입니다. Cortex-M3 프로세서 레벨에서는  밑의 표와같이 발견할 수 있습니다.


3333.jpg


오늘은 여기서 까지 설명 하겠습니다.

수정 사항이 있으면 댓글로 설명해 주시기 바랍니다.