جستجو برای:
سبد خرید 0
  • Home
  • weblog
    • electronic
      • hardware
      • Integrated Circuit
      • microcontroller
      • knowledge base
      • PCB
      • book
    • power electronic
    • mechanics & aerospace
      • Exercise
      • CFD
    • computer
      • matlab
  • Courses
    • Power Engineering
    • Altium Designer
    • image processing
    • raspberry
  • shop
    • electronic
  • Cart
  • Payment
  • Contact US

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • فقط تلگرام و واتس آپ : 09374187582
  • octacore.ir[at]gmail.com
perm_identity
سبد خرید 0
0
هشت هسته
  • Home
  • weblog
    • electronic
      • hardware
      • Integrated Circuit
      • microcontroller
      • knowledge base
      • PCB
      • book
    • power electronic
    • mechanics & aerospace
      • Exercise
      • CFD
    • computer
      • matlab
  • Courses
    • Power Engineering
    • Altium Designer
    • image processing
    • raspberry
  • shop
    • electronic
  • Cart
  • Payment
  • Contact US
ورود و ثبت نام

وبلاگ

هشت هسته > weblog > electronic > Driving MCP4922_DAC By Verilog

Driving MCP4922_DAC By Verilog

access_timeفروردین 30, 1399
perm_identity ارسال شده توسط محمد حسین اصفهانی
folder_open electronic ، hardware ، Source Code
visibility 140 بازدید

موضوع

راه اندازی مبدل دیجیتال به آنالوگ توسط سخت افزار به زبان وریلاگ

بررسی دیتا شیت مبدل دیجیتال به آنالوگ

کد راه انداز مبدل دیجیتال به آنالوگ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/* www.octacore.ir */
 
/* ایجاد ماژول و تعیین پورت ها */
module DAC_mcp4922 (mosi,sck,shdn,ldac,cs,clk_20M,enable,clk_40M,data,LOCKED);
 
/* تعیین پورت های خروجی */
output reg cs=1'b1,sck=1'b0,mosi=1'b0,ldac=1'b1;
output wire shdn;
 
/* تعیین پورت های ورودی */
input wire  clk_20M,clk_40M,enable,LOCKED;
input wire [ 11 : 0 ] data;
 
/* تعیین متغیر های داخلی */
reg [ 4 : 0 ] counter=5'b0;
reg flag=1'b1;
 
/* تولید کلاک مورد نیاز */
always @ (clk_20M or enable or cs or LOCKED)
 
begin
if(enable==1'b1 && LOCKED==1'b1)
begin
if(cs==1'b0)
begin
sck=clk_20M;
end
else
sck=1'b0;
end
else
sck=1'b0;
end
 
/* ارسال دیتا به مبدل */
always @ (negedge clk_40M)
begin
if (enable==1'b1 && LOCKED==1'b1)
begin
if (cs==1'b1&&flag==1'b1)
begin
if(clk_20M==1'b0)
cs<=1'b0;
else
cs<=1'b1;
end
else
begin
if (clk_20M==1'b1)
begin
if(counter<5'd20)
counter<=counter+4'b1;
else
counter<=5'b1;
end
else
begin
case(counter)
5'd1:
begin
mosi<=1'b1;
cs<=1'b0;
ldac<=1'b1;
flag<=1'b1;
end
5'd2:
begin
mosi<=1'b1;
cs<=1'b0;
ldac<=1'b1;
flag<=1'b1;
end
5'd3:  
begin
mosi<=1'b1;
cs<=1'b0;
ldac<=1'b1;
flag<=1'b1;
end
5'd4,5'd5,5'd6,5'd7,5'd8,5'd9,5'd10,5'd11,5'd12,5'd13,5'd14,5'd15:
begin
mosi<=data[4'hf-counter];
cs<=1'b0;
ldac<=1'b1;
flag<=1'b1;
end
5'd16:
begin
mosi<=1'b0;
cs<=1'b1;
ldac<=1'b1;
flag<=1'b0;
end
5'd17,5'd18,5'd19:
begin
mosi<=1'b0;
cs<=1'b1;
ldac<=1'b0;
flag<=1'b0;
end
5'd20:
begin
mosi<=1'b0;
cs<=1'b0;
ldac<=1'b1;
flag<=1'b1;
end
default:
begin
mosi<=1'b0;
cs<=1'b1;
ldac<=1'b1;
flag<=1'b1;
end
endcase
end
end
end
else
begin
counter<=4'b0;
cs<=1'b1;
mosi<=1'b0;
ldac<=1'b1;
flag<=1'b1;
end
end
 
/* تعیین پورت خاموشی سخت افزارس */
assign shdn=1'b1;
 
/* پایان ماژول */
endmodule

 

کد TOP ماژول

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* www.octacore.ir */
 
/* ایجاد ماژول تاپ و تعیین پورت ها */
module TOP(CLK_24M,cs,ldac,sck,mosi,shdn);
 
/* مشخص کردن پورت های خروجی */
output wire cs,ldac,sck,mosi,shdn;
 
/* مشخص کردن پورت های  ورودی */
input wire CLK_24M;
 
/* اتصالات میانی */
wire CLK_20M,CLK_40M,LOCKED,enable;
wire [35:0] CONTROL0;
wire [11:0] data;
 
/* فراخوانی ماژول و هسته ها */
DAC_mcp4922 U1 (mosi,sck,shdn,ldac,cs,CLK_20M,enable,CLK_40M,data,LOCKED);
CLK U2 (CLK_24M,NO_USE,CLK_20M,CLK_40M,LOCKED);
ICON U3 (CONTROL0);
VIO U4 (CONTROL0,{enable,data});
 
/* پایان ماژول */
endmodule

 

مشخص کردن پین های FPGA

1
2
3
4
5
6
7
8
9
10
11
// www.octacore.ir
 
//DAC PINs
NET"cs"LOC=P116;
NET"ldac"LOC=P111;
NET"sck"LOC=P115;
NET"mosi"LOC=P114;
NET"shdn"LOC=P112;
 
//Public PINs
NET"CLK_24M"LOC=P50;

 

بررسی نتیجه نهایی گرفته شده

ضمیمه

  • Codes
  • Data Sheet

Codes

دانلود کد راه انداز مبدل:

دانلود کد تاپ ماژول:

دانلود کد تنظیم پین:

Data Sheet

دانلود دیتا شیت مبدل:

خرید سخت افزار مورد نیاز

اگر علاقه مند به انجام این پروژه هستید و نیاز به تهیه سخت افزار آن دارید می توانید به سایت پازج مراجعه کنید.

خرید ماژول مبدل دیجیتال به آنالوگ

اگر نیاز به تهیه ماژول داشتید دو پیشنهاد برای شما وجود دارد:

  1. خرید تنها PCB ماژول و اتصال و تهیه قطعات بر عهده خود شما باشد.
  2. خرید ماژول آماده.

اگر تمایل به خرید داشتید تا زمانی که در فروشگاه قرار نگرفته می توانید در قسمت نظرات پایین صفحه درخواست بدهید.

تشکر

توجه

چند نکته برای کسانی که تازه کار هستند:

  1. از هسته VIO برای برای مقدار دهی از PC به FPGA و مقدار خوانی از FPGA به PC استفاده کرده ایم.
  2. از هسته ICON برای تبادل و ارتباط بین FPGA (VIO) با PC (JTAG) استفاده شده است.
  3. از هسته CLK برای تولید کلاک مورد نظر استفاده شده است.

اگر سوالی داشتید یا به مشکلی بر خوردید و یا پیشنهادی برای این پروژه داشتید در قسمت نظرات وارد کنید.

تشکر

اشتراک گذاری:
برچسب ها: 12 بیت12bit20 مگ20MEGadcanalogconverterdacdigitalfpgafrequencyhardwarehigh speedmcp4922moduleprogrammingverilogvhdlxilinxآنالوگاف پی جی ایام سی پی 4922ای دی سیبرنامه نویسیدکدیجیتالزایلینکسسخت افزارسرعت بالافرکانسماژولمبدلوریلاگوی اچ دی ال
درباره محمد حسین اصفهانی

فعال در زمینه الکترونیک و سخت افزار . از انیشتین آموختم اگر A در زندگی موفق باشد، سپس A برابراست با X + Y + Z. کار X است ، بازی Y است و Z یعنی بسته نگه‌داشتن دهان و انجام دادن کارهاست.برای دیدن اطلاعات بیشتر از من اینجا کلیک کنید.

نوشته های بیشتر از محمد حسین اصفهانی
22 درصدتخفیف
post
تخفیف استثنائي فروشگاه هشت هسته ، پروگرامر stk500 با کمترین قیمت و بالاترین کیفیت ! 187 تومان
مشاهده محصول
مطالب زیر را حتما بخوانید
  • راه اندازی سنسور دما و رطوبت dht11

    92 بازدید

  • why FPGA

    124 بازدید

  • Image_Processing_By_Verilog

    144 بازدید

  • دانلود نسخه سالم نرم افزار HSPICE + آموزش نصب

    201 بازدید

  • Generate_a_frequency_lower_than_the_reference_frequency

    108 بازدید

جدید تر حل تمرین درس استاتیک
قدیمی تر حل تمرین درس مکانیک سیالات

دیدگاهتان را بنویسید لغو پاسخ

قوانین ثبت دیدگاه

  • اگر امکان داره دیدگاهتون رو به صورت فینگلیش ننویسید!
  • لطفا دیدگاهتون متناسب با مطلب باشه!
  • لطفا دیدگاه تکراری ننویسید!
  • اگر سوالی هم دارید همین جا میتونید بپرسید و مشکلی نداره.

جستجو برای:
سرفصل مطالب سایت
  • biomedical engineering
  • hardware
    • article
    • Source Code
  • other
    • business
    • practical software
  • power electronic
  • software engineering
    • image processing
  • weblog
    • electronic
      • book
      • knowledge base
      • microcontroller
        • AVR
          • AVR Library
          • AVR Tutorial
      • PCB
      • programming
    • mechanics & aerospace
      • ariplane designe
      • book
      • Exercise
آخرین دیدگاه‌ها
  • مهدی در دانلود رایگان کاربردی ترین کتابخانه های Altium Designer
  • مهدی در دانلود نسخه سالم نرم افزار HSPICE + آموزش نصب
  • سید در دانلود نسخه سالم نرم افزار HSPICE + آموزش نصب
  • آبان در دانلود رایگان کاربردی ترین کتابخانه های Altium Designer
  • مهدی در دانلود رایگان کاربردی ترین کتابخانه های Altium Designer
آخرین مطالب
  • شهرهای هوشمند و شبکه های برق
  • راه اندازی سنسور دما و رطوبت dht11
  • نیروگاه بادی منفصل از شبکه
  • فشرده سازی تصاویر ثابت و متحرک (قسمت دوم )
  • روش های پیشنهادی برای کنترل ریزشبکه ها
دسترسی سریع به وبلاگ
  • electronic
  • mechanics & aerospace
  • biomedical engineering
اطلاعات تماس
  • location_on
    شماره تماس فقط برای ارتباط از طریق واتس آپ یا تلگرام میباشد.
  • phone_android
    09374187582
  • email
    octacore.ir@gmail.com
دسترسی به فروشگاه
  • فروشگاه
  • حساب کاربری من
  • پرداخت
  • سبد خرید
پیوندهای مفید
  • تماس با ما

 وبسایت هشت هسته ای با هدف توسعه علوم مهندسی توسط مجموعه ای از مهندسان تشکیل شده است.

در این وبسایت آموزش ها و مطالب جالب قرار خواهند گرفت و به تدریج هسته های متنوع شکل خواهند گرفت.

ما رو حتما دنبال کنین ..

© تمام حقوق برای octacore.ir محفوظ است.کپی بدون ذکر منبع لینکدار مجاز نمیباشد.
keyboard_arrow_up