• 一路DDS任意波形发生器
    • 12位R-2R DAC
    • DAC转换率为200Msps,输出最高5MHz模拟信号
    • 频率调节精度1Hz
    • 输出幅度5Vpp
    • 输出直流偏移调节范围+/-2.5V
  • 2路可调电压输出
    • 调节范围为0 ~ +/-4V
  • 双路ADC数据采集
    • 8位ADC
    • 采样率45Msps
    • 输入模拟信号范围20Vpp
  • 波形和信息显示
    • 240*240分辨率LCD

pocketinstru:stepinstrument.png

  • MAX1193-双路45Msps、8位高速ADC
  • SGM8301轨到轨高速运算放大器
  • SGM8601高速运算放大器
  • TS3A5017模拟开关
  • LMV358 双路运算放大器
  • TL974 4路轨到轨运算放大器
  • CH340 USBUART变换器
  • LM2776电荷泵变换器
  • MIC5504-3.3 LDO
  • 1.54寸、分辨率为240*240的RGBLCD模块

数据ADC读出、LCD写入的状态控制

// --------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// --------------------------------------------------------------------
// Module: Arbiter
// 
// Author: Step
// 
// Description: Control sample and display in different time
// 
// Web: www.stepfpga.com
//
// --------------------------------------------------------------------
// Code Revision History :
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.1     |2016/10/30   |Initial ver
// --------------------------------------------------------------------
module Arbiter (
	input				clk_in, // system clock
	input				rst_n_in, //system reset, active low
 
	input				sample_done,
	input				display_done,
 
	output	reg			sample_en,
	output	reg			display_en
);
 
localparam			IDLE	=	2'd0;
localparam			SAMPLE	=	2'd1;
localparam			DISPLAY	=	2'd2;
 
reg			[1:0] 	state;
always@(posedge clk_in or negedge rst_n_in) begin
	if(!rst_n_in) begin
		state <= IDLE;
		sample_en <= 1'b0;
		display_en <= 1'b0;
	end else begin
		case(state)
			IDLE:begin
					sample_en <= 1'b0;
					display_en <= 1'b0;
					state <= SAMPLE;
				end
			SAMPLE:begin
					if(sample_done) begin 
						sample_en <= 1'b0;
						display_en <= 1'b1;  
						state <= DISPLAY; 
					end else begin
						sample_en <= 1'b1;
						display_en <= 1'b0;
					end
				end
			DISPLAY:begin
					if(display_done) begin 
						sample_en <= 1'b1;
						display_en <= 1'b0;  
						state <= SAMPLE; 
					end else begin
						sample_en <= 1'b0;
						display_en <= 1'b1;
					end
				end
			default:state <= IDLE;
		endcase
	end
end
 
endmodule