roboforum.ru

Технический форум по робототехнике.

ЦАП AD7303 + Verilog

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

ЦАП AD7303 + Verilog

Сообщение TomaT » 16 апр 2012, 00:34

Не знаю куда, пусть тут будет, может кому пригодится.
Просто до безобразия, гонит без предыху в ЦАП все, что ухватит по входам :)

Код: Выделить всёРазвернуть
module AD7303
(
   input Clk50M,      //50Mhz osc

   input [7:0] HDAC_A,
   input [7:0] HDAC_B
   
   output DAC_SCLK,
   output DAC_Sync,
   output DAC_Data,
);
   
   reg [15:0] DAC_SFR = 16'hFFFF;
   reg [5:0]  DAC_cnt = 0;
   reg DAC_AB = 0;
   
   assign DAC_SCLK = DAC_cnt[0];
   assign DAC_Sync = DAC_cnt[5];
   assign DAC_Data = DAC_SFR[15];

   always@(posedge Clk50M)
      begin
      DAC_cnt <= DAC_cnt + 1;
      if (DAC_cnt[0])
         begin
         DAC_SFR[15:1] <= DAC_SFR[14:0];
         DAC_SFR[0] <= 0; //just in case
         end
      if (DAC_cnt[5] & DAC_cnt[0]) //(DAC_cnt == 33)
         begin
         DAC_AB <= ~DAC_AB;
         DAC_SFR[15:8] <= DAC_AB ? 8'b11100111 : 8'b11100011; //AD7303 config
         DAC_SFR[7:0] <= DAC_AB ?  HDAC_A : HDAC_B;
         DAC_cnt <= 0;         
         end
      end

endmodule
Аватара пользователя
TomaT
 
Сообщения: 354
Зарегистрирован: 25 июл 2007, 10:38
Откуда: Москва (Троицк, МО)
ФИО: Антон Миронов

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3