2016-09-14 6 views
0

특히 STMF4xx/F7xx와 같은 "빠른"장치로 작업 할 때 공급 전압 및 시스템 클럭 주파수에 따라 플래시 대기 사이클 수를 지정해야합니다.플래시 대기 사이클 수를 지정해야하는 이유는 무엇입니까?

CPU가 명령어 나 상수를 가져 오면 FLITF를 통해 수행됩니다. 요청 된 데이터를 제공 할 수있는 한 FLITF가 CPU 요청을 보유한다는 가정하에 다른 버스 마스터가 플래시에 액세스 할 수 없도록합니다.

사실이라면 어떤 인터페이스에서든 플래시 대기 사이클을 알아야하는 이유는 무엇입니까? 캐시가 얼마나 오래 기다릴 지 안다면 독립적으로 명령을 미리로드합니다.

+0

플래시는 속도 제한이있는 일부/많은 MCU의 유일한 논리가 아닙니다. 일부는 CPU가 그 이상으로 잘 수행 할 수 있다고하더라도 주변 장치 클록이 X를 초과 할 수 없다고 말합니다. PLL은 특히 min 및 max 범위를 사용해야합니다. 그렇지 않으면 불안정한 시계로 끝날 수 있습니다 (잠금 또는 잠금 해제가되지 않고 디자인에 따라 달라질 수 있음). 다만 몇몇 차가 200mph를 갈 수 있기 때문에 그 (것)들 모두는 할 수 있지 않는다. 각 칩의 각 논리 블록이나 주변 장치에 대해 설계된 매개 변수 내에서 타이밍을 유지해야하거나 나쁜 일이 발생할 수 있습니다. –

답변

4

플래시 인터페이스가 마법이 아니기 때문에.

전압에 따라 다소 다를 수있는 플래시 셀의 주소 지정 및 읽기에 필요한 설정 및 유지 시간을 충족시켜야합니다. TRM을 사용하기 때문에 STM32F411을 예로 들자면, 전압/주파수/대기 상태 테이블을 사용하여 몇 가지 수학을 수행하면 플래시에서 읽기가 2.7V 이상 ~ 30ns 정도 걸리므로 2.1V 미만 ~ 60ns. (즉 불필요하게 복잡한 전력 소모, 그리고 바보 때문에) 플래시 인터페이스는 자신의 비동기 나노초 정밀도의 시간 관리 능력을 가지고 있지 않기 때문에

, 후, N 클럭 사이클의 신호를 주장로 변환하는 셀로부터의 데이터 신호가 충분히 안정되어 있다고 가정 할 수있다. *. 클록 주파수가 무엇인지 어떻게 알 수 있습니까? 따라서 무엇이 n이어야합니까? 간단합니다 : 시계를 설정 한 프로그래머가 여러분에게 말해줍니다. 일부 하드웨어는 소프트웨어를 처리 할 수 ​​있도록 무한히 쉬워졌습니다. 이 읽은 128 비트 라인 중 해당 8, 16 또는 32 비트들을 추출하는 상기 속임 거치지

* 및 다음는 마지막 침하는 것을 AHB 버스 상 아웃 타측 분명히 기다리는 CPU.

+0

많은 도움이되었습니다. 이 작업을 끝내기 위해 우리가 대기하는 "유일한"일은 대기 사이클에 신경 쓰지 않으면 손상된 데이터를 얻는 것입니다. –

+0

아마,하지만 나는 그것에 가치있는 것을 걸지 않을 것입니다. 그것은 정의되지 않은 상태에 빠지거나 무언가가 헤이 와이어 또는 교착 상태가 될 수있는 제어 신호가있을 수있는 가능성의 영역을 넘어서는 것이 아닙니다. 그리고 반드시 실행하지 않아도되는 지침이 어느 경우에도 "안전"할 것 같지 않습니다. – Notlikethat

+3

ST의 내부 깜박임과 함께 잘못된 대기 상태 설정에 대한 경험이 있으며, 심지어 하나를 벗어나면 추적하기가 매우 어려울 수 있습니다. 그들이 지정한 것보다 대기 상태를 면도하더라도. 상온에서 작동하지만 추울 때 또는 더 뜨거울 때 실패합니다. 플래시가 잘못 구성되었다는 것을 알게되면 모든 것이 의미가 있지만 그 전에 모든 잘못된 장소의 문제를 추적하려고 미친 듯이 진행됩니다. – rjp