BeMicro Max10+ESP-32(3)NCOにR-2R DACを繋ぐ
前回に続いてBeMicro Max10をCPU無しで使います。NCOの出力にDACを繋いでオシロで波形を確認します。
小さなブレッドボードにR-2Rラダー型DACを組み込んで追加しました。ブレッドボードを固定している治具は3Dプリンター製です。電子工作に3Dプリンターは大活躍です。
QsysのNCOの設定を変更しました。
ピン配置にJ3コネクタのうち12本を追加します。
HDLの記述にもJ3コネクタのうち12本を追加します。
module ledtest ( RST_N, CLK, LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, DAC1, DAC2, DAC3, DAC4, DAC5, DAC6, DAC7, DAC8, DAC9, DAC10, DAC11, DAC12, SCLK, CS_N, MOSI, MISO ); input CLK, RST_N; output LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8; output DAC1, DAC2, DAC3, DAC4, DAC5, DAC6, DAC7, DAC8, DAC9, DAC10, DAC11, DAC12; input SCLK, CS_N, MOSI; output MISO; wire [15:0] nco_out; wire [15:0] dac_in; wire [31:0] nco_in; unsaved u0 ( .clk_clk (CLK), // clk.clk .reset_reset_n (RST_N), // reset.reset_n .spi_bridge_mosi_to_the_spislave_inst_for_spichain (MOSI), // spi_bridge.mosi_to_the_spislave_inst_for_spichain .spi_bridge_nss_to_the_spislave_inst_for_spichain (CS_N), // .nss_to_the_spislave_inst_for_spichain .spi_bridge_miso_to_and_from_the_spislave_inst_for_spichain (MISO), // .miso_to_and_from_the_spislave_inst_for_spichain .spi_bridge_sclk_to_the_spislave_inst_for_spichain (SCLK), // .sclk_to_the_spislave_inst_for_spichain .pio_nco_export (nco_in), // pio_nco.export .nco_ii_0_in_valid (1'b1), // nco_ii_0_in.valid .nco_ii_0_in_data (nco_in), // .data .nco_ii_0_out_data (nco_out), // nco_ii_0_out.data .nco_ii_0_out_valid () // .valid ); assign dac_in = (nco_out[15] == 0) ? nco_out + 16'h8000 : nco_out - 16'h8000; assign LED1 = ! dac_in[15]; assign LED2 = ! dac_in[14]; assign LED3 = ! dac_in[13]; assign LED4 = ! dac_in[12]; assign LED5 = ! dac_in[11]; assign LED6 = ! dac_in[10]; assign LED7 = ! dac_in[9]; assign LED8 = ! dac_in[8]; assign DAC1 = dac_in[15]; assign DAC2 = dac_in[14]; assign DAC3 = dac_in[13]; assign DAC4 = dac_in[12]; assign DAC5 = dac_in[11]; assign DAC6 = dac_in[10]; assign DAC7 = dac_in[9]; assign DAC8 = dac_in[8]; assign DAC9 = dac_in[7]; assign DAC10 = dac_in[6]; assign DAC11 = dac_in[5]; assign DAC12 = dac_in[4]; endmodule
NCOの周波数設定用入力はアドレス0x00000000のPIOに接続しています。QsysのNCO編集画面から1MHzを出力するにはNCOの周波数設定用入力に335544を入力すればいいので、動作確認用のWindowsアプリからアドレス0x00000000にデータ335544を書き込みます。
同様に336を書き込むと1kHzが出力されます。