2014-10-07 3 views
1

그래서 주파수 신시사이저 프로그래밍을위한 의사 코드를 작성해야합니다. 여기에는 세 가지 주요 포트가 있는데, '사용', '데이터'및 '시계'를 활용합니다.외부 시계로 신디사이저 프로그래밍 가능

장치는 기본적으로 꺼져 있으며 활성화 (활성 낮음)가 트리거되면 시계가 약간의 최소 설정 시간 후에 순환합니다. 지연과는 별도로 SendCommand (uint32_t addr, uint16_t data) 함수를 갖습니다.

내가 가지고있는 문제는 내게 주어진 사양에서 데이터가 떨어지는 클럭 가장자리에서 "READ"라는 것입니다. 이것은 데이터가 한 번에 한 비트 씩 매개 변수에 정의 된 주소의 레지스터로 읽히고 전체 16 비트 워드가 레지스터에 기록 될 때까지 읽기 상태를 유지함을 의미합니다. 클록 사이클은 약 10MHz이다. 제 질문은 다음과 같습니다 :

- 10MHz (100ns/cycle)에서 사이클을 시뮬레이션하는 방법은 무엇입니까?

- 어떻게 시계의 하강 에지에서 "데이터 읽기"를 수행 할 수 있습니까?

지금은 프로그램의 쓰기 측면을 무시하지만 여전히 의사 코드입니다.

+0

아마도 글씨로 시작해야합니다. 그러나 "Serial Peripheral Interface"또는 "SPI"와 비슷한 것을 가지고있는 것 같습니다. 이를 위해 10MHz 클럭 속도로, 많은 마이크로 컨트롤러에서 볼 수있는 하드웨어 SPI 엔진이 필요합니다. 시스템에 델이없는 경우 델리게이트로 사용하는 원격 마이크로 컨트롤러를 사용할 수 있습니다. 그러나 고성능을 필요로하지 않는다면 대부분의 (그런 것은 아니지만) 그러한 장치는 훨씬 낮은 클럭 속도로 데이터를 수용 할 것입니다. 실제 (비 USB) 병렬 인터페이스를 사용할 수 있다면 소프트웨어의 개별 신호를 "비트 뱅잉 (bit-banging)"하는 일반적인 방법이 있습니다. –

답변

0

주파수 합성기 칩은 일반적으로 MISO 라인이없는 SPI 인터페이스 (쓰기 전용 SPI)를 사용합니다. SPI는 동기식 통신 인터페이스이므로 클록 주파수가 중요하지 않습니다. 비트는 CLOCK 신호의 하강 에지 (이 경우)로 이동되지만 가장자리가 언제 발생하는지는 중요하지 않습니다. 수신기가 무기한 대기 할 것이므로 고정 될 필요가 없습니다.

10MHz의 지정은 단순히 최대 주파수 지원, 또는 더 정확하게는 1/10 × 6 또는 100ns의되는 클록 라인의 하강 에지 사이의 최소 시간을 반영 할 것이다. 소프트웨어에서 SPI를 지속적으로 구현하면 속도를 유지하기가 어려울 것입니다. 대부분의 마이크로 컨트롤러에는 SPI 신호의 출력을 자동화하는 SPI 하드웨어가 포함되어 있습니다. 질문 What are the disadvantages of bit banging SPI/I2C in embedded applications은 단독 관심사 일 수 있습니다. Here은 소프트웨어 SPI 구현의 예입니다. 읽기 기능이 아닌 쓰기 기능 만 있으면되며, 2 바이트를 똑같이 보낼 수도 있지만 16 비트로 확장 할 수 있습니다.

관련 문제