آموزش راه‌اندازی واحد DAC در میکروکنترلر WCH و تولید موج‌های آنالوگ - قسمت هفتم آموزش CH

blog
۱۴۰۳-۱۱-۰۲
4 دقیقه

با سلام در این قسمت از آموزش‌ CH سراغ واحد آنالوگ دیگری به نام DAC میریم، در قسمت قبل در مورد واحد تبدیل سیگنال آنالوگ به دیجیتال یاد گرفتیم و در این قسمت واحد تبدیل دیجیتال به آنالوگ که وظیفه آن تولید ولتاژی آنالوگ بر روی پایه میکرو است.

اگر با این واحد از میکروکنترلرها آشنایی ندارید پیشنهاد می‌کنم قبل از شروع این آموزش، آموزش مربوط با این بخش که توسط دوستان تهیه شده رو مطالعه کنید.

معرفی کردن ساختار DAC در میکرو WCH

 

بلوک دیاگرام DAC در میکرو WCH

 

با نگاهی ساده به دیاگرام بالا متوجه خواهید شد که واحد DAC در این میکرو شباهت زیادی به DAC در میکروهای STM32 دارد، واحد DAC در WCH قابلیت تولید دو موج مثلثی و نویز را دارد که در حالت نویز مقادیر رندوم در خروجی آن قرار می‌گیرد.

این واحد قابلیت DMA دارد و می‌توان بدون استفاده از CPU مقادیر را به آن منتقل کرد، این واحد یک‌طرفه است و فقط اطلاعات به این بخش وارد می‌شوند، همچنین قابلیت آپدیت شدن مقادیر را با پریفرال های سخت‌افزاری و حتی نرم‌افزاری دارد.

در این قسمت از آموزش‌ها ما با آپدیت نرم‌افزاری مقداری رو روی خروجی قرار می‌دهیم، سپس برای کد نهایی چند شکل موج سینوسی، کسینوسی، مربعی، مثلثی و دندان‌اره‌ای در خروجی قرار می‌دهیم.

در فرصتی دیگر شاید در آموزش DMA این واحد را به‌صورت سخت‌افزاری آپدیت و با DMA مقادیر رو انتقال دهیم، در اینجا فعلاً ساده عمل می‌کنیم.

این میکرو دو پایه DAC دارد که بر روی A4 و A5 قرار دارد. بریم سراغ کد راه‌اندازی این پریفرال.

در ابتدا مانند همه پریفرال هایی که قبلاً راه‌اندازی کرده‌ایم، کلاک مربوط به این بخش را فعال می‌کنیم.

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

یک اسم به آن اختصاص میدهیم و مقادیر را تنظیم میکنیم.

با این خط بافر خروجی را فعال میکنیم،این بافر پیشنهاد شده که فعال باشد.

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

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

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

 

مقادیر تعریف شده واحد DAC

پس از تنظیم مقادیر،مقادیر را بر روی سخت افزار اعمال میکنیم و واحد DAC را فعال میکنیم به شکل زیر:

 

پس از فعال سازی هر دو کانال بااستفاده از توابع زیر میتوانیم به آن ها مقدار بدیم و اپدیت کنیم مقادیر را:

چون ما خروجی رو 12 بیتی در نظر گرفتیم مقداری که میتونیم وارد بکنیم از 0 تا 4095 هست.

درصورتی‌که هشت بیتی بود 0 تا 255 بود.

حالا شاید براتون سؤال بشه که معنی اون R بغل DAC_Align_12b_R چیه؟

واحد DAC میکرو می‌تواند بیت‌های دیتا را از سمت راست یا چپ در رجیستر خروجی بچیند؛ مانند شکل زیر:

نحوه چینش بیت های دیتا واحد DAC

این هم دیفاین ها تعریف شده برای انتخاب بین حالت های چیدن دیتا در DAC

انتخاب بین حالت های چیدن دیتا در DAC

 

خب در ادامه بریم کدی که برای تولید انواع موج ها هست رو با هم ببینیم:

این هم شکل های خروجی برنامه ی بالا:

اطلاعات
0
1
لینک و اشتراک
profile

عرفان رفیعی

متخصص الکترونیک

erixson.elc@gmail.com

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله