جستجو برای:
سبد خرید 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 ADC128S102 By Verilog

Driving ADC128S102 By Verilog

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

موضوع

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

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

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

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
/* www.octacore.ir */
 
/* تعریف ماژول به همراه پورت ها */
module ADC128S102 (MOSI,data,sck,cs,MISO,clk_32M,Enable,clk_16M,s,LOCKED);
 
/* تعریف پورت های خروجی */
output MOSI,cs,sck;
output [15:0] data;
 
/* تعریف پورت های ورودی */
input wire clk_32M,Enable,clk_16M;
input wire MISO,LOCKED;
input wire [7:0] s;
 
/* تعریف متغیر ها */
reg MOSI=2'b00;
reg sck=1'b1;
reg cs=1'b1;
reg [15:0] conversion_data=16'b0;
reg [15:0] data=16'b0;
reg [3:0] counter=4'b0000;
reg [2:0] address=3'b000;
 
/* ایجاد کلاک مورد نیاز مبدل */
always @ (clk_16M or Enable or cs or LOCKED)
begin
if(Enable==1'b1 && LOCKED==1'b1)
begin
if(cs==1'b0)
begin
sck=clk_16M;
end
else
sck=1'b1;
end
else
sck=1'b1;
end
 
/* دریافت دیتا از مبدل و ارسال به آن */
always @ ( negedge clk_32M )
begin
if(Enable==1'b1 && LOCKED==1'b1)
begin
if(cs==1'b1)
begin
if(clk_16M==1'b1)
cs<=1'b0;
else
cs<=1'b1;
end
else
begin
if (sck==1'b1)
begin
conversion_data[4'hf-counter]<=MISO;
if (counter<4'hf)
counter<=counter+4'b1;
else
counter<=4'b0000;
data<=conversion_data;
end
else
begin
if(counter==4'b0010)
MOSI<=address[2];
   else if(counter==4'b0011)
MOSI<=address[1];
else if(counter==4'b0100)
MOSI<=address[0];
else
MOSI<=1'bz;
end
end
end
else
begin
counter<=4'b0;
cs <= 1'b1;
MOSI<=1'bz;
conversion_data<=16'b0;
data<=16'b0;
end
end
 
/* انتخاب کانال ورودی */
always @ (s or Enable or LOCKED)
begin
if(Enable==1'b1 && LOCKED==1'b1)
begin
case (s)
8'b00000001:address<=3'b000;
8'b00000010:address<=3'b001;
8'b00000100:address<=3'b010;
8'b00001000:address<=3'b011;
8'b00010000:address<=3'b100;
8'b00100000:address<=3'b101;
8'b01000000:address<=3'b110;
8'b10000000:address<=3'b111;
default    :address<=3'b000;
endcase
end
else
address<=3'bzzz;
end
/* پایان ماژول */
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_Module(MOSI,sck,cs,MISO,CLK_24M);
 
//تعیین پورت های خروجی
output wire MOSI,sck,cs;
 
//تعیین پورت های ورودی
input wire MISO,CLK_24M;
 
//تعیین اتصالات بینا بینی
wire [15:0] data;
wire [35:0] CONTROL0;
wire CLK_32M,Enable,CLK_16M,LOCKED;
wire [7:0] s;
 
//فراخوانی ماژول های مورد استفاده
ADC128S102 U1 (MOSI,data,sck,cs,MISO,CLK_32M,Enable,CLK_16M,s,LOCKED);
CLOCK U2 (CLK_24M,NO_USE,CLK_16M,CLK_32M,LOCKED);
ICON U3 (CONTROL0);
VIO U4 (CONTROL0,data,{Enable,s});
 
//پایان ماژول اصلی
endmodule

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

1
2
3
4
5
6
7
8
9
10
11
12
//www.octacore.ir
 
///PUBLIC
 
NET "clk_24M" LOC = P50;
 
///ADCs
 
NET "cs" LOC = P116;
NET "MOSI" LOC = P119;
NET "MISO" LOC = P118;
NET "sck" LOC = P117;

 

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

ضمیمه

  • Codes
  • Data sheet

Codes

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

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

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

Data sheet

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

دانلود دیتاشیت رگولاتور 4.096 ولت برای ولتاژ مرجع :

دانلود شماتیک مدار چاپی مبدل :

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

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

توجه

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

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

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

تشکر

اشتراک گذاری:
برچسب ها: adcadc 12 bitadc128s102analogbitconverterconvertordigitaldriver for adc128s102fpgafpga learning by verilogfpga projecthardwarepossedgeresulotionspartan6texas instrument adcuse adc by fpgaverilogxilinxآموزشآموزش پروژه محور وریلاگآموزش راه اندازیآنالوگاسپارتان6استفاده از مبدلاف پی جی ایبرنامه نویسی وریلاگبیتپازجدقتدوره آموزشیدیجیتالرایگانسخت افزارکدمبدلوریلاگ
درباره محمد حسین اصفهانی

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

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

    100 بازدید

  • why FPGA

    130 بازدید

  • Image_Processing_By_Verilog

    153 بازدید

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

    226 بازدید

  • Generate_a_frequency_lower_than_the_reference_frequency

    115 بازدید

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

2 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • علیرضا علیزاده گفت:
    فروردین 24, 1399 در 7:09 ب.ظ

    سلام مطلب جالبی بود

    پاسخ
    • محمد حسین اصفهانی گفت:
      فروردین 26, 1399 در 10:35 ق.ظ

      ارادت

      پاسخ

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

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

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

جستجو برای:
سرفصل مطالب سایت
  • 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
آخرین دیدگاه‌ها
  • Homa Zarei Zohdy در شهرهای هوشمند و شبکه های برق
  • Homa Zarei Zohdy در شهرهای هوشمند و شبکه های برق
  • Homa Zarei Zohdy در شهرهای هوشمند و شبکه های برق
  • japanese platform beds در شهرهای هوشمند و شبکه های برق
  • erotik در شهرهای هوشمند و شبکه های برق
آخرین مطالب
  • شهرهای هوشمند و شبکه های برق
  • راه اندازی سنسور دما و رطوبت dht11
  • نیروگاه بادی منفصل از شبکه
  • فشرده سازی تصاویر ثابت و متحرک (قسمت دوم )
  • روش های پیشنهادی برای کنترل ریزشبکه ها
دسترسی سریع به وبلاگ
  • electronic
  • mechanics & aerospace
  • biomedical engineering
اطلاعات تماس
  • location_on
    شماره تماس فقط برای ارتباط از طریق واتس آپ یا تلگرام میباشد.
  • phone_android
    09374187582
  • email
    octacore.ir@gmail.com
دسترسی به فروشگاه
  • فروشگاه
  • حساب کاربری من
  • پرداخت
  • سبد خرید
پیوندهای مفید
  • تماس با ما

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

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

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

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