2016-07-13 3 views
0

저는 DAC의 sin 값과 상관시키기 위해 16 비트 값을 출력하는 카운터, 튜닝 워드 및 사인 LUT가있는 매우 기본적인 DDS 코어 (?)를 가지고 있습니다. Nexys 4 DDR board을 사용하고 있으며 DAC은 FPGA 전용으로 설계된 주변 장치 모듈입니다. 16 비트 DAC인데 왜 6 핀을 가지고 있으며 그 중 4 핀만 데이터 용입니까? 그리고 DAC가 성공적으로 변환을 수행하려면 16 비트 생성 sin 값에서 DAC로 이진 정보를 어떻게 보내야합니까? 여기FPGA의 디지털 출력을 DAC에 인터페이스하는 방법은 무엇입니까?

는 (I 제대로 DAC와 상호 작용하는 방법을 알고 나면 나는 그것의 기초, 용서해주십시오 실수를 알고, 내가 그들을 밖으로 작동합니다!) 내 코드이 DAC 보드

module sin_LUT(
    input clk, 
    input [0:3] M, 
    input rst, 
    output reg [16:0] data_out, 
    output reg [32:0]test 
); 

//counter 

//declaring constant 
integer i; 
integer int_M; 

always @(M) 
    int_M = M; 

always @(posedge(clk)) 
begin 
if (rst) 
    i <= 0; 
else if (i >= 29) 
    i <= 0; 
else 
    i <= i + M; 
end 

//testing purposes 
always @(i) 
    test = i; 

//sine LUT 
always @(i) begin 
    case (i) 
    0: data_out = 16'D32768; 
    1: data_out = 16'D39812; 
    2: data_out = 16'D46526; 
    3: data_out = 16'D52598; 
    4: data_out = 16'D57742; 
    5: data_out = 16'D61718; 
    6: data_out = 16'D64341; 
    7: data_out = 16'D65487; 
    8: data_out = 16'D65103; 
    9: data_out = 16'D63208; 
    10: data_out = 16'D59889; 
    11: data_out = 16'D55302; 
    12: data_out = 16'D49661; 
    13: data_out = 16'D43230; 
    14: data_out = 16'D36310; 
    15: data_out = 16'D29225; 
    16: data_out = 16'D22305; 
    17: data_out = 16'D15874; 
    18: data_out = 16'D10233; 
    19: data_out = 16'D5646; 
    20: data_out = 16'D2327; 
    21: data_out = 16'D432; 
    22: data_out = 16'D48; 
    23: data_out = 16'D1194; 
    24: data_out = 16'D3817; 
    25: data_out = 16'D7793; 
    26: data_out = 16'D12937; 
    27: data_out = 16'D19009; 
    28: data_out = 16'D25723; 
    29: data_out = 16'D32768; 
    default: data_out = 16'b0000111100001111; 
    endcase 
end 

endmodule 

답변

4

데이터 시트 그것이 아나 로그 디바이스의 AD5541 DAC 사용 말한다 :

http://www.analog.com/en/products/digital-to-analog-converters/da-converters/ad5541a.html

제품 페이지는 또한 DAC 데이터 시트에 대한 링크가 있습니다. 이 데이터 시트에서 다음 정보를 가져 왔습니다 :이 것은 SPI 인터페이스를 사용합니다. A 선 (CS)을 선택하여 데이터를 보내려는 DAC를 나타냅니다. A 데이터 각 단일 비트가 표시되는 라인 (DIN). 그리고 클록 라인 (SCLK)은 DAC가 로우에서 하이로 바뀌면 데이터 라인에서 조금 읽는다.

여기 AD5541 SPI timing

LDAC 입력 로우 경우, 직렬 데이터 레지스터의 모든 업데이트 출력에 DAC 지시 타이밍도를이다.


전자 제품을 개발할 때 문서를 제공하고 읽을 수있는 것이 가장 중요합니다. 필자는 여러 프로젝트에서 ADI의 몇 가지 SPI DAC를 사용했습니다. 그러나 AD5541은 아닙니다. 그러나 위의 전체 대답은 관련 데이터 시트를 몇 분간 읽었을 때 얻은 정보를 사용했습니다. FPGA를 프로그래밍하는 것이 당신이해야 할 일이라면, 반드시 그렇게 할 수있는 기술을 연마해야합니다.

관련 문제