인프런 커뮤니티 질문&답변

YEONG님의 프로필 이미지
YEONG

작성한 질문수

Verilog FPGA Program 1 (Arty A7-35T)

안녕하세요 fpga_intro_v16 192p에 질문있습니다!

작성

·

259

·

수정됨

0

첫번째 질문은 i2c 컨트롤러 설계를 위해 reg8*8 모듈이 필요한 이유가 슬레이브 모듈이 예를들어 온습도센서라 가정하였을때 온도,습도값들을 저장하기 위해서 필요한것인가요? 즉 슬레이브에서 마스터로 보내주는 데이터를 저장하기 위함인가요? 잘모르겠어서 질문드립니다. 항상 수준낮은 질문드려서 죄송합니다.

답변 1

1

alex님의 프로필 이미지
alex
지식공유자

맞습니다.

i2c slave, spi slave 는 자신의 register 맵을 가지고 있습니다. 온습도 센서를 i2c slave라 가정할 때, 외부(i2c master)에서 온습도 센서를 설정하기 위하여 i2c write 로 해당 레지스터의 값을 설정하고, 온습도 센서 값을 읽기 위하여 i2c read로 해당 레지스터 값을 읽게 됩니다.

감사합니다~!!

YEONG님의 프로필 이미지
YEONG
질문자

그렇다면 온습도센서를 통해 구해진 값들이 레지스터에 저장되고 그 값들을 마스터모듈이 접근하여 데이터를 읽어간다는 말씀이실까요? 아니라면 i2c slave모듈(온습도센서)이 온습도센서의 값이 포함된 레지스터에 접근하여 그 데이터를 저장하고 마스터가 슬레이브에 데이터를 읽기를 원할경우 sda_o 신호를 통해 마스터에게 전달해주는게 맞는걸까요?

alex님의 프로필 이미지
alex
지식공유자

둘다 맞는 말입니다.

크게 보면 온습도센서는 2개의 모듈이 있다고 보시면 됩니다. 1개의 모듈은 온습도를 구해서 데이터를 레지스터에 저장하고, 나머지 한개의 모듈은 i2c slave 로써, i2c 마스터가 데이터를 요청하면, 해당 데이터를 sda_o 에 실어서 보내줍니다. 레지스터 데이터는 2개의 모듈(온습도 컨트롤러-온습도 데이터 저장, i2c slave-데이터를 읽어서 sda_o로 전송)에서 각각 access 할 수 있도록 구성됩니다.

YEONG님의 프로필 이미지
YEONG
질문자

넵 감사합니다

 

YEONG님의 프로필 이미지
YEONG

작성한 질문수

질문하기