- கூறுகள் தேவை
- MCP4725 DAC தொகுதி (டிஜிட்டல் முதல் அனலாக் மாற்றி)
- MCP4725 இல் I2C தொடர்பு
- சுற்று வரைபடம் மற்றும் விளக்கம்
- டிஜிட்டல் முதல் அனலாக் மாற்றத்திற்கான STM32F103C8 புரோகிராமிங்
- STM32 உடன் DAC ஐ சோதிக்கிறது
மைக்ரோகண்ட்ரோலர்கள் டிஜிட்டல் மதிப்புகளுடன் மட்டுமே செயல்படுகின்றன என்பதை நாம் அனைவரும் அறிவோம், ஆனால் உண்மையான உலகில் நாம் அனலாக் சிக்னல்களைக் கையாள வேண்டும். அதனால்தான் நிஜ உலக அனலாக் மதிப்புகளை டிஜிட்டல் வடிவமாக மாற்ற ஏடிசி (அனலாக் டு டிஜிட்டல் மாற்றிகள்) உள்ளது, இதனால் மைக்ரோகண்ட்ரோலர்கள் சிக்னல்களை செயலாக்க முடியும். ஆனால் டிஜிட்டல் மதிப்புகளிலிருந்து அனலாக் சிக்னல்கள் நமக்குத் தேவைப்பட்டால், இங்கே டிஏசி (டிஜிட்டல் முதல் அனலாக் மாற்றி) வருகிறது.
டிஜிட்டல் முதல் அனலாக் மாற்றிக்கு ஒரு எளிய எடுத்துக்காட்டு ஸ்டுடியோவில் ஒரு பாடலைப் பதிவுசெய்கிறது, அங்கு ஒரு கலைஞர் பாடகர் மைக்ரோஃபோனைப் பயன்படுத்தி ஒரு பாடலைப் பாடுகிறார். இந்த அனலாக் ஒலி அலைகள் டிஜிட்டல் வடிவமாக மாற்றப்பட்டு பின்னர் டிஜிட்டல் வடிவ கோப்பில் சேமிக்கப்படும் மற்றும் சேமிக்கப்பட்ட டிஜிட்டல் கோப்பைப் பயன்படுத்தி பாடல் இசைக்கப்படும் போது அந்த டிஜிட்டல் மதிப்புகள் ஸ்பீக்கர் வெளியீட்டிற்கான அனலாக் சிக்னல்களாக மாற்றப்படுகின்றன. எனவே இந்த அமைப்பில் டிஏசி பயன்படுத்தப்படுகிறது.
மோட்டார் கட்டுப்பாடு, எல்.ஈ.டி விளக்குகளின் கட்டுப்பாட்டு பிரகாசம், ஆடியோ பெருக்கி, வீடியோ குறியாக்கிகள், தரவு கையகப்படுத்தல் அமைப்புகள் போன்ற பல பயன்பாடுகளில் டிஏசி பயன்படுத்தப்படலாம்.
நாங்கள் ஏற்கனவே MCP4725 DAC தொகுதியை Arduino உடன் இணைத்துள்ளோம். STM32F103C8 மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி டிஜிட்டல் முதல் அனலாக் மாற்றி வடிவமைக்க இன்று அதே MCP4725 DAC IC ஐப் பயன்படுத்துவோம்.
கூறுகள் தேவை
- STM32F103C8
- MCP4725 DAC IC
- 10 கே பொட்டென்டோமீட்டர்
- 16x2 எல்சிடி காட்சி
- ப்ரெட்போர்டு
- கம்பிகளை இணைக்கிறது
MCP4725 DAC தொகுதி (டிஜிட்டல் முதல் அனலாக் மாற்றி)
MCP4725 ஐசி என்பது 12-பிட் டிஜிட்டல் முதல் அனலாக் மாற்றி தொகுதி ஆகும், இது வெளியீட்டு அனலாக் மின்னழுத்தங்களை (0 முதல் 5 வி வரை) உருவாக்க பயன்படுகிறது, மேலும் இது I2C தகவல்தொடர்புகளைப் பயன்படுத்துவதன் மூலம் கட்டுப்படுத்தப்படுகிறது. இது போர்டு nonvolatile memory EEPROM உடன் வருகிறது.
இந்த ஐசி 12-பிட் தீர்மானம் கொண்டது. குறிப்பு மின்னழுத்தத்தைப் பொறுத்து மின்னழுத்த வெளியீட்டை வழங்க (0 முதல் 4096 வரை) உள்ளீடாகப் பயன்படுத்துகிறோம் என்பதாகும். அதிகபட்ச குறிப்பு மின்னழுத்தம் 5 வி ஆகும்.
வெளியீட்டு மின்னழுத்தத்தைக் கணக்கிட சூத்திரம்
O / P மின்னழுத்தம் = (குறிப்பு மின்னழுத்தம் / தீர்மானம்) x டிஜிட்டல் மதிப்பு
எடுத்துக்காட்டுக்கு நாம் 5V ஐ குறிப்பு மின்னழுத்தமாகப் பயன்படுத்தினால், டிஜிட்டல் மதிப்பு 2048 என்று வைத்துக் கொள்வோம். எனவே DAC வெளியீட்டைக் கணக்கிட.
O / P மின்னழுத்தம் = (5/4096) x 2048 = 2.5 வி
MCP4725 இன் பின்அவுட்முள் பெயர்களை தெளிவாகக் குறிக்கும் MCP4725 இன் படம் கீழே உள்ளது.

|
MCP4725 இன் ஊசிகளும் |
பயன்படுத்தவும் |
|
வெளியே |
வெளியீடுகள் அனலாக் மின்னழுத்தம் |
|
ஜி.என்.டி. |
வெளியீட்டிற்கான ஜி.என்.டி. |
|
எஸ்.சி.எல் |
I2C சீரியல் கடிகார வரி |
|
எஸ்.டி.ஏ. |
I2C சீரியல் தரவு வரி |
|
வி.சி.சி. |
உள்ளீட்டு குறிப்பு மின்னழுத்தம் 5 வி அல்லது 3.3 வி |
|
ஜி.என்.டி. |
உள்ளீட்டுக்கான ஜி.என்.டி. |
MCP4725 இல் I2C தொடர்பு
இந்த டிஏசி ஐசியை ஐ 2 சி தகவல்தொடர்புகளைப் பயன்படுத்தி எந்த மைக்ரோகண்ட்ரோலருடன் இணைக்க முடியும். I2C தகவல்தொடர்புக்கு இரண்டு கம்பிகள் SCL மற்றும் SDA மட்டுமே தேவை. இயல்பாக, MCP4725 க்கான I2C முகவரி 0x60 ஆகும். STM32F103C8 இல் I2C தொடர்பு பற்றி மேலும் அறிய இணைப்பைப் பின்தொடரவும்.
STM32F103C8 இல் I2C பின்ஸ்:
எஸ்.டி.ஏ: பிபி 7 அல்லது பிபி 9, பிபி 11.
SCL:: PB6 அல்லது PB8, PB10.

சுற்று வரைபடம் மற்றும் விளக்கம்

STM32F103C8 & 16x2 LCD க்கு இடையிலான இணைப்புகள்
|
எல்சிடி முள் எண் |
எல்சிடி முள் பெயர் |
STM32 முள் பெயர் |
|
1 |
மைதானம் (Gnd) |
மைதானம் (ஜி) |
|
2 |
வி.சி.சி. |
5 வி |
|
3 |
VEE |
இதற்கு மாறாக பொட்டென்டோமீட்டரின் மையத்திலிருந்து பின் |
|
4 |
பதிவு தேர்வு (ஆர்எஸ்) |
பிபி 11 |
|
5 |
படிக்க / எழுது (RW) |
மைதானம் (ஜி) |
|
6 |
இயக்கு (EN) |
பிபி 10 |
|
7 |
தரவு பிட் 0 (DB0) |
இணைப்பு இல்லை (NC) |
|
8 |
தரவு பிட் 1 (டிபி 1) |
இணைப்பு இல்லை (NC) |
|
9 |
தரவு பிட் 2 (டிபி 2) |
இணைப்பு இல்லை (NC) |
|
10 |
டேட்டா பிட் 3 (டிபி 3) |
இணைப்பு இல்லை (NC) |
|
11 |
டேட்டா பிட் 4 (டிபி 4) |
பிபி 0 |
|
12 |
தரவு பிட் 5 (டிபி 5) |
பிபி 1 |
|
13 |
டேட்டா பிட் 6 (டிபி 6) |
பிசி 13 |
|
14 |
தரவு பிட் 7 (டிபி 7) |
பிசி 14 |
|
15 |
எல்.ஈ.டி நேர்மறை |
5 வி |
|
16 |
எல்.ஈ.டி எதிர்மறை |
மைதானம் (ஜி) |
MCP4725 DAC IC மற்றும் STM32F103C8 இடையே இணைப்பு
|
MCP4725 |
STM32F103C8 |
மல்டிமீட்டர் |
|
எஸ்.டி.ஏ. |
பிபி 7 |
என்.சி. |
|
எஸ்.சி.எல் |
பிபி 6 |
என்.சி. |
|
வெளியே |
PA1 |
நேர்மறை ஆய்வு |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
எதிர்மறை ஆய்வு |
|
வி.சி.சி. |
3.3 வி |
என்.சி. |
STM32F10C8 இன் PA1 அனலாக் உள்ளீட்டுடன் (ADC) சென்டர் முள் இணைக்கப்பட்டுள்ளது, இடது முள் GND உடன் இணைக்கப்பட்டுள்ளது மற்றும் STM32F103C8 இன் 3.3V உடன் வலதுபுற முள் இணைக்கப்பட்டுள்ளது.
இந்த டுடோரியலில் நாம் ஒரு MCP4725 DAC IC ஐ STM32 உடன் இணைப்போம் மற்றும் STM32 ADC pin PA0 க்கு அனலாக் உள்ளீட்டு மதிப்பை வழங்க 10k பொட்டென்டோமீட்டரைப் பயன்படுத்துவோம். அனலாக் மதிப்பை டிஜிட்டல் வடிவமாக மாற்ற ADC ஐப் பயன்படுத்தவும். அதன் பிறகு அந்த டிஜிட்டல் மதிப்புகளை I2C பஸ் வழியாக MCP4725 க்கு அனுப்பவும். பின்னர் அந்த டிஜிட்டல் மதிப்புகளை DAC MCP4725 IC ஐப் பயன்படுத்தி அனலாக் ஆக மாற்றவும், பின்னர் STM32 இன் மற்றொரு ADC பின் PA1 ஐப் பயன்படுத்தி முள் OUT இலிருந்து MCP4725 இன் அனலாக் வெளியீட்டைச் சரிபார்க்கவும். இறுதியாக 16x2 எல்சிடி டிஸ்ப்ளேயில் மின்னழுத்தங்களுடன் ADC & DAC மதிப்புகள் இரண்டையும் காண்பி.

டிஜிட்டல் முதல் அனலாக் மாற்றத்திற்கான STM32F103C8 புரோகிராமிங்
STM32F103C8 இல் குறியீட்டைப் பதிவேற்ற இப்போது ஒரு FTDI புரோகிராமர் தேவையில்லை. STM32 இன் USB போர்ட் வழியாக அதை கணினியுடன் இணைத்து ARDUINO IDE உடன் நிரலாக்கத்தைத் தொடங்கவும். Arduino IDE இல் உங்கள் STM32 ஐ புரோகிராமிங் செய்வது பற்றி மேலும் அறிய இந்த இணைப்பைப் பார்வையிடவும். இந்த STM32 DAC டுடோரியலுக்கான முழுமையான நிரல் இறுதியில் கொடுக்கப்பட்டுள்ளது.
முதல் I2C மற்றும் எல்சிடி பயன்படுத்தி நூலகம் அடங்கும் wire.h, SoftWire.h மற்றும் liquidcrystal.h நூலகம். STM32 மைக்ரோகண்ட்ரோலரில் I2C பற்றி மேலும் அறிக.
#சேர்க்கிறது
அடுத்து STM32F103C8 உடன் இணைக்கப்பட்ட எல்சிடி ஊசிகளின் படி எல்சிடி ஊசிகளை வரையறுத்து துவக்கவும்
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; லிக்விட் கிரிஸ்டல் எல்சிடி (ஆர்எஸ், என், டி 4, டி 5, டி 6, டி 7);
MCP4725 DAC IC இன் I2C முகவரியை வரையறுக்கவும். MCP4725 DAC இயல்புநிலை I2C முகவரி 0x60
# MCP4725 0x60 ஐ வரையறுக்கவும்
வெற்றிட அமைப்பில் ()
முதலில் I2C தகவல்தொடர்புகளை STM32F103C8 இன் PB7 (SDA) மற்றும் PB6 (SCL) ஆகியவற்றில் தொடங்கவும்.
வயர்.பெஜின் (); // I2C தகவல்தொடர்பு தொடங்குகிறது
அடுத்து எல்சிடி டிஸ்ப்ளேவை 16x2 பயன்முறையில் அமைத்து வரவேற்பு செய்தியைக் காண்பி.
lcd.begin (16,2); lcd.print ("CIRCUIT DIGEST"); தாமதம் (1000); lcd.clear (); lcd.setCursor (0,0); lcd.print ("STM32F103C8"); lcd.setCursor (0,1); lcd.print ("MCP4725 உடன் DAC"); தாமதம் (2000); lcd.clear ();
வெற்றிட சுழற்சியில் ()
1. தாங்கலில் முதலில் கட்டுப்பாட்டு பைட் மதிப்பை (0b01000000) வைக்கவும்.
(010-எழுதும் பயன்முறையில் MCP4725 ஐ அமைக்கிறது) இடையக = 0b01000000;
2. தொடர்ந்து அறிக்கை ஏடிசி உள்ளது மாறி 12-பிட் தீர்மானம் மற்றும் கடை 0 to4096 வரையிலான டிஜிட்டல் மதிப்பு ஒரு முள் PA0 மற்றும் அது மாறுபவர்களாகவும் அனலாக் மதிப்பு கூறுகிறது ஏடிசி .
adc = அனலாக் ரீட் (PA0);
3. இந்த பின்வரும் அறிக்கை 3.3V இன் குறிப்பு மின்னழுத்தத்துடன் ADC உள்ளீட்டு மதிப்பிலிருந்து (0 முதல் 4096 வரை) மின்னழுத்தத்தைக் கணக்கிடப் பயன்படுத்தப்படும் ஒரு சூத்திரமாகும்.
float ipvolt = (3.3 / 4096.0) * adc;
4. ஏடிசி மாறியில் 4 பிட்களை வலப்புறமாக மாற்றுவதன் மூலம் மிக முக்கியமான பிட் மதிப்புகளை இடையகத்தில் வைக்கவும், ஏடிசி மாறியில் 4 பிட்களை இடப்புறமாக மாற்றுவதன் மூலம் பஃப்பரில் குறிப்பிடத்தக்க பிட் மதிப்புகளை குறைக்கவும் .
buffer = adc >> 4; இடையக = adc << 4;
5. பின்வரும் அறிக்கை STM32 இன் ADC பின் PA1 இலிருந்து அனலாக் மதிப்பைப் படிக்கிறது, இது DAC வெளியீடு (MCP4725 DAC IC இன் OUTPUT பின்). வெளியீட்டு மின்னழுத்தத்தை சரிபார்க்க இந்த முள் மல்டிமீட்டருடன் இணைக்கப்படலாம்.
கையொப்பமிடாத எண்ணாக அனலாக்ரெட் = அனலாக் ரீட் (PA1);
6. மேலும் மாறி அனலாக்ரெடில் இருந்து மின்னழுத்த மதிப்பு பின்வரும் அறிக்கையுடன் சூத்திரத்தைப் பயன்படுத்தி கணக்கிடப்படுகிறது.
float opvolt = (3.3 / 4096.0) * அனலாக்ரெட்;
7. அதே வெற்றிட சுழற்சியில் () வேறு சில அறிக்கைகள் கீழே விளக்கப்பட்டுள்ளன
MCP4725 உடன் பரிமாற்றத்தைத் தொடங்குகிறது:
Wire.beginTransmission (MCP4725);
கட்டுப்பாட்டு பைட்டை I2C க்கு அனுப்புகிறது
வயர்.ரைட் (இடையக);
MSB ஐ I2C க்கு அனுப்புகிறது
வயர்.ரைட் (இடையக);
LSB ஐ I2C க்கு அனுப்புகிறது
வயர்.ரைட் (இடையக);
பரிமாற்றம் முடிகிறது
வயர்.இன்ட் டிரான்ஸ்மிஷன் ();
இப்போது அந்த முடிவுகளை எல்சிடி 16 எக்ஸ் 2 டிஸ்ப்ளேயில் எல்சிடி பிரிண்ட் () ஐப் பயன்படுத்தி காண்பி
lcd.setCursor (0,0); lcd.print ("ஒரு ஐபி:"); lcd.print (adc); lcd.setCursor (10,0); lcd.print ("வி:"); lcd.print (ipvolt); lcd.setCursor (0,1); lcd.print ("D OP:"); lcd.print (அனலாக்ரெட்); lcd.setCursor (10,1); lcd.print ("வி:"); lcd.print (opvolt); தாமதம் (500); lcd.clear ();
STM32 உடன் DAC ஐ சோதிக்கிறது
பொட்டென்டோமீட்டரை சுழற்றுவதன் மூலம் உள்ளீட்டு ஏடிசி மதிப்பு மற்றும் மின்னழுத்தத்தை நாம் மாற்றும்போது, வெளியீடு டிஏசி மதிப்பு மற்றும் மின்னழுத்தமும் மாறுகிறது. இங்கே உள்ளீட்டு மதிப்புகள் முதல் வரிசையிலும் வெளியீட்டு மதிப்புகள் எல்சிடி காட்சியின் இரண்டாவது வரிசையிலும் காட்டப்படுகின்றன. அனலாக் மின்னழுத்தத்தை சரிபார்க்க MCP4725 வெளியீட்டு முள் ஒரு மல்டிமீட்டரும் இணைக்கப்பட்டுள்ளது.

ஆர்ப்பாட்டத்துடன் முழுமையான குறியீடு வீடியோ கீழே கொடுக்கப்பட்டுள்ளது.
