APB Write Transfer 과정
1. Setup 단계
- 이 단계는 쓰기 작업이 시작되기 전에 마스터가 슬레이브와 통신을 설정하는 단계입니다. 설정 단계에서 마스터는 슬레이브가 요청을 받을 준비가 될 때까지 기다립니다.
- 신호:
- PADDR: 마스터가 슬레이브에게 접근하려는 레지스터의 주소를 설정합니다.
- PSEL: 마스터는 특정 슬레이브를 선택하기 위해 PSEL 신호를 활성화합니다. 슬레이브는 이 신호를 보고 자신이 선택되었는지 확인합니다.
- PWRITE: 쓰기 동작이므로 PWRITE 신호는 1로 설정됩니다. 이 신호는 읽기/쓰기 작업 중 어떤 것이 수행될지 결정하는데, 쓰기 작업이므로 1입니다.
- PWDATA: 마스터는 슬레이브에 쓰고자 하는 데이터를 PWDATA 버스에 올립니다.
2. Access 단계
- Access 단계에서는 실제로 데이터가 슬레이브로 전송됩니다. 이 단계에서 트랜잭션이 유효하며, PENABLE 신호가 활성화됩니다. PENABLE 신호는 트랜잭션의 유효성을 나타내며, 슬레이브는 이 신호가 활성화되면 데이터를 처리하기 시작합니다.
- 신호:
- PENABLE: 마스터는 PENABLE 신호를 1로 설정하여 트랜잭션이 진행 중임을 알립니다.
- PADDR, PWDATA: 슬레이브는 여전히 이 신호들을 보고 데이터를 받아 처리합니다.
- PREADY: 슬레이브가 데이터를 받을 준비가 되었는지 여부를 나타내는 신호입니다. PREADY 신호가 1이면 슬레이브는 데이터를 수신할 준비가 된 상태이며, 트랜잭션이 진행됩니다.
3. Completion 단계
- 트랜잭션이 완료되면 마스터는 트랜잭션을 종료하고 슬레이브는 데이터를 처리 완료합니다. 이때 PREADY 신호가 활성화되어 슬레이브가 데이터를 성공적으로 처리했음을 알립니다.
- 신호:
- PENABLE: 마스터는 PENABLE 신호를 비활성화(0)하여 트랜잭션이 종료되었음을 알립니다.
- PSEL: 마스터는 슬레이브 선택을 해제하기 위해 PSEL 신호를 비활성화합니다.
- PREADY: 슬레이브는 PREADY 신호를 1로 유지하며, 이는 트랜잭션이 성공적으로 끝났다는 의미입니다.
APB Write Transfer 신호 타이밍 요약
- Cycle 1 (Setup 단계):
- PADDR: 슬레이브의 주소가 설정됨.
- PSEL: 특정 슬레이브를 선택.
- PWRITE: 쓰기 동작이므로 1.
- PWDATA: 마스터가 쓸 데이터를 설정.
- Cycle 2 (Access 단계):
- PENABLE: 활성화(1)되어 데이터 전송이 시작.
- PREADY: 슬레이브가 준비되면 1.
- Cycle 3 (Completion 단계):
- PENABLE: 비활성화(0)되어 트랜잭션 종료.
- PSEL: 비활성화(0).
- PREADY: 1로 유지되며, 전송이 완료됨.
* https://verificationforall.wordpress.com/apb-protocol/