- I2C தொடர்பு நெறிமுறை என்றால் என்ன?
- I2C தொடர்பு எவ்வாறு செயல்படுகிறது?
- I2C தொடர்புகளை எங்கே பயன்படுத்துவது?
- Nuvoton N76E003 இல் I2C - வன்பொருள் தேவை
- Nuvoton N76E003 - சுற்று வரைபடத்துடன் AT24LC64 ஐ இடைமுகப்படுத்துகிறது
- Nuvoton N76E003 இல் I2C பின்ஸ்
- N76E003 இல் I2C தொடர்பு
- I2C தகவல்தொடர்புக்கான N76E003 புரோகிராமிங்
- குறியீடு மற்றும் வெளியீட்டை ஒளிரச் செய்கிறது
உட்பொதிக்கப்பட்ட பயன்பாடுகளின் பரந்த அமைப்பில், எந்த மைக்ரோகண்ட்ரோலரும் அனைத்து நடவடிக்கைகளையும் தானாகவே செய்ய முடியாது. சில கட்டங்களில், தகவல்களைப் பகிர மற்ற சாதனங்களுடன் தொடர்பு கொள்ள வேண்டும், இந்த தகவல்களைப் பகிர்ந்து கொள்ள பல வகையான தகவல் தொடர்பு நெறிமுறைகள் உள்ளன , ஆனால் அதிகம் பயன்படுத்தப்பட்டவை USART, IIC, SPI மற்றும் CAN. ஒவ்வொரு தகவல்தொடர்பு நெறிமுறையும் அதன் சொந்த நன்மை மற்றும் தீமைகளைக் கொண்டுள்ளது. இப்போதைக்கு ஐ.ஐ.சி பகுதியில் கவனம் செலுத்துவோம், ஏனெனில் இந்த டுடோரியலில் நாம் கற்றுக்கொள்ளப் போகிறோம். நீங்கள் இங்கே புதியவராக இருந்தால், Nu6onE டுடோரியல்களைப் பாருங்கள், அங்கு N76E003 மைக்ரோகண்ட்ரோலரின் ஒவ்வொரு புறத்தையும் மிக அடிப்படையான தொடக்க டுடோரியலில் இருந்து விவாதித்தோம். மற்ற மைக்ரோகண்ட்ரோலர்களுடன் I2C ஐ எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் அறிய விரும்பினால், கீழேயுள்ள இணைப்புகளை நீங்கள் பார்க்கலாம்.
- Arduino இல் I2C ஐ எவ்வாறு பயன்படுத்துவது: இரண்டு Arduino போர்டுகளுக்கு இடையிலான தொடர்பு
- PIC மைக்ரோகண்ட்ரோலருடன் I2C தொடர்பு PIC16F877
- I2C ஐப் பயன்படுத்தி ESP32 உடன் 16X2 LCD ஐ இடைமுகப்படுத்துகிறது
- MSP430 Launchpad உடன் I2C தொடர்பு
- I2C ஐப் பயன்படுத்தாமல் NodeMCU உடன் LCD ஐ இடைமுகப்படுத்துகிறது
- Arduino இன் ஒற்றை நிரலில் பல தகவல்தொடர்புகளை (I2C SPI UART) எவ்வாறு கையாள்வது
I2C என்பது ஒரு முக்கியமான தகவல் தொடர்பு நெறிமுறையாகும், இது பிலிப்ஸ் (இப்போது NXP) ஆல் உருவாக்கப்பட்டது. இந்த I2C நெறிமுறையைப் பயன்படுத்தி, ஒரு MCU ஐ பல சாதனங்களுடன் இணைத்து தகவல்தொடர்புகளைத் தொடங்கலாம். எஸ்.டி.ஏ மற்றும் எஸ்.சி.எல் ஆகிய இரண்டு கம்பிகளுடன் ஐ 2 சி வேலை செய்கிறது. எஸ்.டி.ஏ என்பது சீரியல் தரவையும், எஸ்.சி.எல் சீரியல் கடிகாரத்தையும் குறிக்கிறது. இருப்பினும், இந்த இரண்டு ஊசிகளுக்கும் வி.சி.சி மின்னழுத்த நிலைக்கு புல்-அப் மின்தடையங்கள் தேவைப்படுகின்றன மற்றும் போதுமான புல்-அப் மின்தடையுடன், பஸ் ஒரு தனித்துவமான முகவரியுடன் 127 சாதனங்களை ஆதரிக்க முடியும்.
I2C தொடர்பு நெறிமுறை என்றால் என்ன?
ஐ.ஐ.சி என்ற சொல் “ இன்டர் ஒருங்கிணைந்த சுற்றுகள் ” என்பதைக் குறிக்கிறது. இது பொதுவாக I2C அல்லது I ஸ்கொயர் சி அல்லது சில இடங்களில் 2-கம்பி இடைமுக நெறிமுறை (TWI) என குறிக்கப்படுகிறது, ஆனால் இவை அனைத்தும் ஒரே மாதிரியானவை. I2C என்பது ஒரு ஒத்திசைவான தகவல் தொடர்பு நெறிமுறை, தகவல்களைப் பகிரும் இரண்டு சாதனங்களும் பொதுவான கடிகார சமிக்ஞையைப் பகிர்ந்து கொள்ள வேண்டும். தகவல்களைப் பகிர இரண்டு கம்பிகள் மட்டுமே உள்ளன, அவற்றில் ஒன்று கடிகார சமிக்ஞைக்கு பயன்படுத்தப்படுகிறது, மற்றொன்று தரவை அனுப்புவதற்கும் பெறுவதற்கும் பயன்படுத்தப்படுகிறது.
I2C தொடர்பு எவ்வாறு செயல்படுகிறது?
I2C தொடர்பு முதலில் பிலிப்ஸால் அறிமுகப்படுத்தப்பட்டது. முன்பு கூறியது போல், இது இரண்டு கம்பிகளைக் கொண்டுள்ளது, இந்த இரண்டு கம்பிகளும் இரண்டு சாதனங்களில் இணைக்கப்படும். இங்கே ஒரு சாதனம் மாஸ்டர் என்றும் மற்ற சாதனம் அடிமை என்றும் அழைக்கப்படுகிறது. ஒரு மாஸ்டர் மற்றும் ஒரு அடிமை ஆகிய இருவருக்கிடையில் தொடர்பு இருக்க வேண்டும். I2C தகவல்தொடர்புகளின் நன்மை என்னவென்றால், ஒன்றுக்கு மேற்பட்ட அடிமைகளை ஒரு மாஸ்டருடன் இணைக்க முடியும்.

சீரியல் கடிகாரம் (எஸ்சிஎல்) மற்றும் சீரியல் டேட்டா (எஸ்.டி.ஏ) ஆகிய இரண்டு கம்பிகள் வழியாக முழுமையான தொடர்பு நடைபெறுகிறது.
சீரியல் கடிகாரம் (எஸ்சிஎல்): எஜமானரால் உருவாக்கப்பட்ட கடிகார சமிக்ஞையை அடிமையுடன் பகிர்ந்து கொள்கிறது
சீரியல் டேட்டா (எஸ்.டி.ஏ): மாஸ்டர் மற்றும் அடிமைக்கு இடையில் இருந்து தரவை அனுப்புகிறது.
எந்த நேரத்திலும், மாஸ்டர் மட்டுமே தகவல்தொடர்புகளைத் தொடங்க முடியும். பஸ்ஸில் ஒன்றுக்கு மேற்பட்ட அடிமைகள் இருப்பதால், மாஸ்டர் ஒவ்வொரு அடிமையையும் வேறு முகவரியைப் பயன்படுத்தி குறிப்பிட வேண்டும். அந்த குறிப்பிட்ட முகவரியுடன் கூடிய சால்வை மட்டுமே உரையாற்றும்போது, மற்றவர்கள் அமைதியாக இருக்கும்போது தகவலுடன் பதிலளிப்பார்கள். இந்த வழியில், பல சாதனங்களுடன் தொடர்புகொள்வதற்கு ஒரே பஸ்ஸைப் பயன்படுத்தலாம்.
I2C தொடர்புகளை எங்கே பயன்படுத்துவது?
I2C தொடர்பு குறுகிய தூர தொடர்புக்கு மட்டுமே பயன்படுத்தப்படுகிறது. இது ஸ்மார்ட் செய்ய ஒத்திசைக்கப்பட்ட கடிகார துடிப்பு இருப்பதால் இது நிச்சயமாக ஒரு அளவிற்கு நம்பகமானது. இந்த நெறிமுறை முக்கியமாக சென்சார் அல்லது பிற சாதனங்களுடன் தொடர்பு கொள்ள பயன்படுகிறது, இது ஒரு மாஸ்டருக்கு தகவலை அனுப்ப வேண்டும். ஒரு மைக்ரோகண்ட்ரோலர் குறைந்தபட்சம் பல கம்பிகளைப் பயன்படுத்தி பல அடிமை தொகுதிகளுடன் தொடர்பு கொள்ளும்போது இது மிகவும் எளிது. நீங்கள் நீண்ட தூர தகவல்தொடர்புகளைத் தேடுகிறீர்களானால், நீங்கள் RS232 ஐ முயற்சிக்க வேண்டும், மேலும் நம்பகமான தகவல்தொடர்புக்கு நீங்கள் தேடுகிறீர்கள் என்றால், நீங்கள் SPI நெறிமுறையை முயற்சிக்க வேண்டும்.
Nuvoton N76E003 இல் I2C - வன்பொருள் தேவை
இந்த திட்டத்தின் தேவை N76E003 ஐப் பயன்படுத்தி I2C தகவல்தொடர்புகளைக் கற்றுக்கொள்வதால், நாங்கள் ஒரு EEPROM ஐப் பயன்படுத்துவோம், இது I2C தரவு வரியுடன் இணைக்கப்படும். நாங்கள் சில தரவை EEPROM இல் சேமிப்போம், அதையும் படித்து UART திரையைப் பயன்படுத்தி காண்பிப்போம்.
சேமிக்கப்பட்ட மதிப்பு UART இல் அச்சிடப்படும் என்பதால், எந்த வகையான USB முதல் UART மாற்றி தேவைப்படுகிறது. நீங்கள் N76E003 இல் UART தகவல்தொடர்புக்கு புதியவராக இருந்தால், நுவோட்டனுடன் UART பற்றிய டுடோரியலையும் பார்க்கலாம். எங்கள் பயன்பாட்டிற்கு, யூ.எஸ்.பி மாற்றிக்கு CP2102 UART ஐப் பயன்படுத்துவோம். மேலே உள்ளவற்றைத் தவிர, எங்களுக்கு பின்வரும் கூறுகளும் தேவைப்படுகின்றன-
- EEPROM 24C02
- 2 பிசிக்கள் 4.7 கே மின்தடையங்கள்
மேற்கூறிய கூறுகளைத் தவிர, எங்களுக்கு ஒரு N76E003 மைக்ரோகண்ட்ரோலர் அடிப்படையிலான மேம்பாட்டுக் குழுவும், நு-இணைப்பு புரோகிராமரும் தேவை என்பதைக் குறிப்பிடவில்லை. கூடுதலாக, அனைத்து கூறுகளையும் இணைக்க பிரெட் போர்டு மற்றும் ஹூக்கப் கம்பிகளும் தேவை.
Nuvoton N76E003 - சுற்று வரைபடத்துடன் AT24LC64 ஐ இடைமுகப்படுத்துகிறது
கீழேயுள்ள திட்டத்தில் நாம் காணக்கூடியது போல, EEPROM ஐ 2 சி வரிசையில் இரண்டு புல் அப் மின்தடையங்களுடன் இணைக்கப்பட்டுள்ளது. தீவிர இடதுபுறத்தில், நிரலாக்க இடைமுக இணைப்பு காட்டப்பட்டுள்ளது.

நான் AT24LC64 ஐசிக்கு ஒரு பிரெட் போர்டைப் பயன்படுத்தினேன், மேலும் ஜம்பர் கம்பிகளைப் பயன்படுத்தி ஐ.சி.யை என் நுவோட்டன் புரோகிராமர் போர்டுடன் இணைத்தேன். நு-மை புரோகிராமருடன் எனது வன்பொருள் அமைப்பு கீழே காட்டப்பட்டுள்ளது.

Nuvoton N76E003 இல் I2C பின்ஸ்
N76E003 இன் முள் வரைபடத்தை கீழே உள்ள படத்தில் காணலாம்-

நாம் பார்க்க முடியும் என, ஒவ்வொரு முள் வெவ்வேறு விவரக்குறிப்புகள் மற்றும் ஒவ்வொரு முள் பல நோக்கங்களுக்காக பயன்படுத்தப்படலாம். இருப்பினும், முள் 1.4 ஒரு I2C SDA முள் பயன்படுத்தப்படுகிறது, இது PWM மற்றும் பிற செயல்பாடுகளை இழக்கும். இந்த திட்டத்திற்கு மற்றொரு செயல்பாடு தேவையில்லை என்பதால் அது ஒரு பிரச்சினை அல்ல. P1.3 க்கும் இதேதான் நடக்கும் I2C இன் SCL முள்.
I2C ஊசிகளும் GPIO ஆக செயல்படுவதால், அதை உள்ளமைக்க வேண்டும். அனைத்து GPIO ஊசிகளையும் கீழே விவரிக்கப்பட்ட பயன்முறையில் கட்டமைக்க முடியும்.

தரவுத்தாள் படி, PxM1.n மற்றும் PxM2. n என்பது I / O துறைமுகத்தின் கட்டுப்பாட்டு செயல்பாட்டை தீர்மானிக்கப் பயன்படுத்தப்படும் இரண்டு பதிவேடுகளாகும். தரவுத்தாள், I2C செயல்பாட்டைப் பயன்படுத்த, I2C தொடர்பான தகவல்தொடர்புகளுக்கு I / O முறைகள் திறந்த வடிகால் பயன்படுத்தப்பட வேண்டும் என்று குறிப்பிடப்பட்டுள்ளது.
N76E003 இல் I2C தொடர்பு
I2C அம்சங்களை ஆதரிக்கும் எந்த மைக்ரோகண்ட்ரோலர் அலகுக்கும் I2C புறம் ஒரு முக்கியமான விஷயம். பல வகையான வெவ்வேறு மைக்ரோகண்ட்ரோலர்கள் ஒரு உள்ளமைக்கப்பட்ட I2C புறத்துடன் வருகின்றன. இருப்பினும், சில சந்தர்ப்பங்களில், I2C தொடர்பான வன்பொருள் ஆதரவு கிடைக்காத மென்பொருள் கட்டுப்பாட்டைப் பயன்படுத்தி I2C ஐ கைமுறையாக கட்டமைக்க முடியும் (எடுத்துக்காட்டாக, பல 8051 மைக்ரோகண்ட்ரோலர்கள்). இருப்பினும், நுவோட்டன் N76E003 I2C புற ஆதரவுடன் வருகிறது.
M76E003 I2C முறைகளில் நான்கு வகையான செயல்பாடுகளை ஆதரிக்கிறது - மாஸ்டர் டிரான்ஸ்மிட்டர், மாஸ்டர் ரிசீவர், ஸ்லேவ் டிரான்ஸ்மிட்டர் மற்றும் ஸ்லேவ் ரிசீவர். இது I2C வரிக்கு நிலையான (100kbps) மற்றும் வேகமான (400kbps வரை) வேகத்தையும் ஆதரிக்கிறது. எஸ்.சி.எல் மற்றும் எஸ்.டி.ஏ சமிக்ஞை வரிகளில் சில பொதுவான விதிகளுடன் I2C செயல்படுகிறது.
தொடக்க மற்றும் நிறுத்த நிலை:
I2C தகவல்தொடர்புகளில் இது ஒரு முக்கியமான விஷயம். தரவு I2C வரிக்கு மாற்றப்படும் போது, அது தொடக்க நிலையில் தொடங்கி நிறுத்த நிலையில் முடிகிறது.
தொடக்க நிலை என்பது எஸ்.சி.எல் வரி அதிகமாக இருக்கும்போது எஸ்.டி.ஏ-வில் உயர்-க்கு-குறைந்த மாற்றம் மற்றும் எஸ்.சி.எல் வரி அதிகமாக இருக்கும்போது நிறுத்த நிலை என்பது எஸ்.டி.ஏ-வில் குறைந்த-முதல்-உயர் மாற்றம் ஆகும். இந்த இரண்டு நிபந்தனைகளும் மாஸ்டரால் உருவாக்கப்படுகின்றன (MCU அல்லது பிற அடிமை சாதனங்களைக் கட்டுப்படுத்தும் எதையும்). தொடக்க நிலை தொடங்கப்படும் போது பஸ் பாதை இந்த நிலையில் பிஸியாக இருக்கும், மேலும் நிறுத்த நிலை தொடங்கப்படும் போது மீண்டும் இலவசமாக இருக்கும்.
தொடக்க மற்றும் நிறுத்த நிலை N76E003 தரவுத்தாள்- இல் சமிக்ஞை பார்வையில் சிறப்பாக காட்டப்பட்டுள்ளது.

தரவு வடிவத்துடன் 7-பிட் முகவரி:
N76E003 7 பிட் முகவரி மற்றும் தரவு வடிவமைப்பை ஆதரிக்கிறது. தொடக்க நிலை தொடங்கப்பட்ட பிறகு, முதன்மை சாதனம் தரவை I2C வரிக்கு அனுப்ப வேண்டும். முதல் தரவு முக்கியமான ஒன்றாகும். இந்தத் தரவு சரியாக உருவாக்கப்படவில்லை அல்லது கடத்தப்படாவிட்டால், இணைக்கப்பட்ட சாதனம் அடையாளம் காணப்படாது மேலும் தகவல்தொடர்புகளை உருவாக்க முடியாது.
தரவு 7 பிட் நீளமான அடிமை முகவரியைக் கொண்டுள்ளது, இது SLA என குறிக்கப்படுகிறது. பஸ்ஸில் பல சாதனங்கள் இணைக்கப்பட்டிருந்தால் இந்த 7-பிட் நீண்ட முகவரி ஒவ்வொரு சாதனத்திற்கும் தனித்துவமாக இருக்க வேண்டும். 7-பிட் முகவரிக்குப் பிறகு, 8 வது பிட் தரவு திசை பிட் ஆகும். அதாவது, 8 வது பிட்டைப் பொறுத்து, அடிமை சாதனத்தில் தரவு எழுதப்படுமா அல்லது அடிமை சாதனத்திலிருந்து தரவு படிக்கப்படுமா என்பது குறித்த தகவலை மாஸ்டர் அடிமை சாதனத்திற்கு அனுப்புகிறார். 8 வது பிட் என்பது ஆர் / டபிள்யூ பிட் என்பது படிக்க அல்லது எழுது அறிவிப்பாளராக குறிப்பிடப்படுகிறது. நாம் அனைவரும் அறிந்தபடி 8-பிட் தகவல்கள் 128 வகைகளாக இருக்கலாம், இதனால் 128 சாதனங்களை ஆதரிக்கிறது, ஆனால் I2C ஒரே பஸ்ஸில் 127 வகையான சாதனங்களை ஆதரிக்கிறது, ஆனால் 128 அல்ல. ஏனெனில் 0x00 முகவரி முன்பதிவு செய்யப்பட்ட முகவரி, இது பொதுவான அழைப்பு முகவரி என்று அழைக்கப்படுகிறது. எல்லா சாதனங்களுக்கும் மாஸ்டர் தகவல்களை அனுப்ப விரும்பினால்,இது 0x00 ஐக் குறிக்கும் மற்றும் ஒவ்வொரு சாதனமும் தனிப்பட்ட மென்பொருள் உள்ளமைவுகளின்படி மீண்டும் இயங்கும்.
இதனால், தரவு பரிமாற்றம் கீழே தெரிகிறது-

ஒப்புக்கொள்:
மேலே உள்ள தரவு முகவரி படத்தில், ஆர் / டபிள்யூ பிட்டைத் தொடர்ந்து 9 வது பிட் ஒப்புதல் பிட் என்று அழைக்கப்படுகிறது. இது ஒரு முக்கியமான ஒன்றாகும், ஏனெனில் இந்த பிட்டைப் பயன்படுத்துவதன் மூலம், மாஸ்டர் அல்லது அடிமை தரவு டிரான்ஸ்மிட்டருக்கு எஸ்.டி.ஏ வரியை குறைவாக இழுப்பதன் மூலம் பதிலளிப்பார். ஒப்புதல் பிட் பெற, டிரான்ஸ்மிட்டர் எஸ்.டி.ஏ வரியை வெளியிட வேண்டும்.
I2C தகவல்தொடர்புக்கான N76E003 புரோகிராமிங்
இந்த டுடோரியலில் பயன்படுத்தப்படும் முழுமையான நிரலை இந்த பக்கத்தின் கீழே காணலாம். குறியீட்டில் முக்கியமான பிரிவுகளின் விளக்கம் பின்வருமாறு-
பின்ஸை திறந்த வடிகால் என அமைத்து அவற்றை I2C க்கு உள்ளமைக்கவும்:
முதலில் I2C முள் பகுதியுடன் ஆரம்பிக்கலாம். முன்பு விவரித்தபடி, I2C SCL மற்றும் SDA துறைமுகங்கள் கட்டமைக்கப்பட்டு திறந்த-வடிகால் உள்ளமைவாக அமைக்கப்பட வேண்டும். இதை செய்ய, நாம் ஒரு பயன்படுத்தி I2C.h தலைப்பு கோப்பு ஒரு இணைந்து I2C.c மூல கோப்பு . குறியீடு துணுக்கு இது போல் தெரிகிறது-
{P13_OpenDrain_Mode; P14_OpenDrain_Mode; clr_I2CPX;} போது (0)
மேலே உள்ள குறியீடு P13 மற்றும் P14 ஐ திறந்த-வடிகால் முள் என அமைக்கிறது மற்றும் cl13_2CPX ஆனது P13 மற்றும் P14 ஐ P1.3 இல் SCL முள் மற்றும் P1.4 இல் SDA முள் என தேர்ந்தெடுக்க பயன்படுத்தப்படுகிறது.
இந்த I2CPX என்பது I2C கட்டுப்பாட்டு பதிவேட்டில் I2CON இன் 0 வது பிட் ஆகும். இந்த I2C_PX 1 ஆக அமைக்கப்பட்டால், ஊசிகளை P0.2 ஆக SCL ஆகவும், P1.6 SDA ஆகவும் மாற்றப்படும். இருப்பினும், நாங்கள் பி 13 மற்றும் பி 14 ஐப் பயன்படுத்துவோம். மாற்று ஊசிகளை இங்கே பயன்படுத்தவில்லை.
I2C கட்டுப்பாட்டு பதிவு I2CON:
I2C கட்டுப்பாட்டு பதிவு I2CON I2C செயல்பாடுகளை கட்டுப்படுத்த பயன்படுகிறது. முதல் பிட் I2C முள் தேர்வு பிட் ஆகும். இதை 0 அமைப்பது I2C முள் P13 மற்றும் P14 ஆக உள்ளமைக்கிறது.

AA பிட் என்பது ஒப்புதல் உறுதிப்படுத்தல் கொடி, AA கொடி அமைக்கப்பட்டால், SCL வரியின் ஒப்புதல் கடிகார துடிப்பின் போது ஒரு ACK திரும்பும். இது அழிக்கப்பட்டால், எஸ்சிஎல் வரியின் ஒப்புக்கொள்ளப்பட்ட கடிகார துடிப்பின் போது ஒரு NACK (SDA இல் உயர் நிலை) திரும்பப் பெறப்படும்.
அடுத்த பிட் SI ஆகும், இது I2C நிலை குறுக்கீடு ஆகும். I2C நிலை குறுக்கீடு இயக்கப்பட்டிருந்தால், பயனர் எந்த படி கடந்துவிட்டது என்பதை தீர்மானிக்க I2STAT பதிவேட்டை சரிபார்க்க வேண்டும் மற்றும் நடவடிக்கை எடுக்க வேண்டும்.
STO என்பது முதன்மை பயன்முறையில் அமைக்கப்பட்ட STOP கொடி. STOP நிலை கண்டறியப்பட்டதும் STO தானாகவே வன்பொருள் மூலம் அழிக்கப்படும்.
அடுத்த பிட் STA பிட் ஆகும். இந்த கொடி அமைக்கப்பட்டால், பஸ் இலவசமாக இருந்தால் I2C ஒரு START நிபந்தனையை உருவாக்குகிறது. பஸ் பிஸியாக இருந்தால், I2C ஒரு STOP நிபந்தனைக்காக காத்திருந்து ஒரு START நிபந்தனையை உருவாக்குகிறது. I2C ஏற்கனவே முதன்மை பயன்முறையில் இருக்கும்போது STA அமைக்கப்பட்டிருந்தால் மற்றும் ஒன்று அல்லது அதற்கு மேற்பட்ட பைட்டுகள் கடத்தப்படுகின்றன அல்லது பெறப்படுகின்றன என்றால், I2C மீண்டும் மீண்டும் START நிலையை உருவாக்குகிறது. STA ஐ மென்பொருளால் கைமுறையாக அழிக்க வேண்டும்.
கடைசியாக, I2CEN என்பது I2C பஸ் இயக்கத்தை அல்லது முடக்க பிட் ஆகும்.
EEPROM 24C02:
இப்போது, 24C02 க்கு வருகிறது. N76E003 இன் போர்டு ஆதரவு தொகுப்பு 24LC64 க்கான I2C குறியீட்டைக் கொண்டுள்ளது, மேலும் அவற்றை எளிதாக மாற்றலாம். இருப்பினும், I2C செயல்பாட்டைப் புரிந்துகொள்ள ஒரு எளிய முறையைப் பயன்படுத்துவோம்.
EEPROM 24C02 உடன் விரிவான இடைமுகத்தை யாராவது பயன்படுத்த விரும்பினால், BSP இல் உள்ள EEPROM நிரலைப் பயன்படுத்தலாம்.
I2C இல் 24C02 ஐ மட்டுமே இணைப்போம், அங்கு N76E003 மாஸ்டர் மற்றும் EEPROM அடிமையாக இருக்கும். எனவே, எந்தவொரு தரவையும் EEPROM முகவரியில் எழுதி அதையே வாசிப்போம்.
24C02 EEPROM பின்அவுட் கீழே காட்டப்பட்டுள்ளது-

A0, A1 மற்றும் A2 மூன்று முகவரி தேர்வு ஊசிகளாகும். WP ஊசிகளை எழுது பாதுகாப்பு ஊசிகளாகும், மேலும் EEPROM இல் எழுதுவதற்கு VSS உடன் இணைக்கப்பட வேண்டும்.
பைட் எழுதுதல் செயல்பாடு கீழே உள்ள படத்தில் காட்டப்பட்டுள்ளது-

முழு எழுதும் சுழற்சி தொடக்க பிட் மூலம் நடக்கிறது. அதன் பிறகு, கட்டுப்பாட்டு பைட்டை சமர்ப்பிக்க வேண்டும். கட்டுப்பாட்டு பைட்டில், பின்வரும் விஷயங்கள் தேவை-

தொடக்க பிட்டிற்குப் பிறகு, அடிமை முகவரியைக் கொண்டிருங்கள். 1010 நிலையானது மற்றும் A0, A1 மற்றும் A2 ஆகியவை வன்பொருள் இணைப்பு அடிப்படையிலான முகவரி. மூன்று ஊசிகளும் ஜி.என்.டி அல்லது வி.எஸ்.எஸ் சப்ளைடன் இணைக்கப்பட்டிருந்தால், அது 0 என படிக்கப்படும். இல்லையெனில், வி.சி.சி உடன் இணைக்கப்பட்டால், அது 1 ஆக படிக்கப்படும். எங்கள் விஷயத்தில், அனைத்து ஏ 0, ஏ 1 மற்றும் ஏ 2 வி.எஸ்.எஸ் உடன் இணைக்கப்பட்டுள்ளன. இதனால் இவை அனைத்தும் 0 ஆக இருக்கும்.
படிக்க அல்லது எழுதும் நிலைக்கு செலவு. படிக்க அல்லது எழுது பிட் கொண்ட முகவரியின் மதிப்பு - எழுதுவதற்கு 0xA0 மற்றும் வாசிப்புக்கு 0xA1. அடுத்தது ஒப்புதல் பிட் மற்றும் அதன் பிறகு, தரவுகளை சேமிக்க வேண்டிய இடத்தில் 8 பிட் முகவரி அனுப்பப்படும், இறுதியாக, அந்தந்த இடத்தில் சேமிக்கப்படும் தரவு. இந்த விஷயங்கள் முக்கிய செயல்பாட்டில் படிப்படியாக செய்யப்படுகின்றன.
முக்கிய செயல்பாடு மற்றும் சுழற்சி போது:
void main (வெற்றிடம்) {char c = 0x00; தொடக்க UART0_Timer3 (115200); TI = 1; // முக்கியமானது, அச்சு அச்சு செயல்பாட்டைப் பயன்படுத்த வேண்டும் TI = 1 ஐ அமைக்க வேண்டும்; I2C_init (); (1) {EEPROM_write (1,0x55); c = EEPROM_read (1); printf ("read n படித்த மதிப்பு% x", c & 0xff); }; }
முக்கிய செயல்பாடு எளிதானது, இது தொடர்ந்து முகவரி 1 இல் உள்ள EEPROM க்கு மதிப்புகளை எழுதி தரவைப் படிக்கிறது. தரவு பின்னர் printf செயல்பாட்டைப் பயன்படுத்தி அச்சிடப்படுகிறது. Printf ஹெக்ஸில் மதிப்பை அச்சிடுகிறது.
EEPROM எழுதும் செயல்பாடு EEPROM பிரிவில் விவரிக்கப்பட்டுள்ள பின்வரும் விஷயங்களைக் கொண்டுள்ளது-
வெற்றிடத்தை EEPROM_write (கையொப்பமிடாத கரி முகவரி, கையொப்பமிடாத கரி மதிப்பு) {I2C_start (); I2C_write (0xA0); I2C_write (முகவரி); I2C_write (மதிப்பு); I2C_stop (); }
I2C தொடக்க செயல்பாடு பின்வரும் விஷயங்களைக் கொண்டுள்ளது-
வெற்றிட I2C_start (வெற்றிடம்) {கையொப்பமிடப்பட்ட முழு நேரம் = நேரம் முடிந்தது; set_STA; clr_SI; போது ((SI == 0) && (நேரம்> 0)) {நேரம்--; }; }
இந்த செயல்பாட்டில், SI நிலை முன் வரையறுக்கப்பட்ட காலக்கெடு காலத்துடன் சரிபார்க்கப்படுகிறது (I2C.h இல் வரையறுக்கப்பட்டுள்ளது, அங்கு முன் வரையறுக்கப்பட்ட நேரம் 1000 என அமைக்கப்பட்டுள்ளது). தொடக்க செயல்பாடு STA ஐ அமைத்து SI ஐ அழிப்பதன் மூலம் தொடங்குகிறது.
வெற்றிட I2C_stop (வெற்றிடம்) {கையொப்பமிடப்பட்ட முழு நேரம் = நேரம் முடிந்தது; clr_SI; set_STO; போது ((STO == 1) && (நேரம்> 0)) {நேரம்--; }; }
தொடக்கத்தைப் போலவே, நிறுத்த செயல்பாடும் பயன்படுத்தப்படுகிறது. நிறுத்தத்தில் செயல்பாடு எஸ்ஐ அகற்றுவதன் மூலம் தொடர்ந்து எஸ்டிஓ அமைக்க தொடங்குகிறது. செயல்பாட்டின் கீழே I2C வாசிப்பு செயல்பாடு-
கையொப்பமிடாத கரி I2C_read (கையொப்பமிடாத கரி ack_mode) {கையொப்பமிடப்பட்ட முழு நேரம் = நேரம் முடிந்தது; கையொப்பமிடாத கரி மதிப்பு = 0x00; set_AA; clr_SI; போது ((SI == 0) && (t> 0)) {நேரம்--; }; மதிப்பு = I2DAT; if (ack_mode == I2C_NACK) {t = timeout_count; clr_AA; clr_SI; போது ((SI == 0) && (t> 0)) {நேரம்--; }; } வருமான மதிப்பு; }
Ack_mode மற்றும் I2C_NACK , இருவரும் முறையே 0 மற்றும் 1 I2C தலைப்பு கோப்பு வரையறுக்கப்பட்டிருக்கிறது.
இதேபோல், எழுதும் செயல்பாடு உருவாக்கப்பட்டது-
வெற்றிட I2C_write (கையொப்பமிடாத கரி மதிப்பு) {கையொப்பமிடப்பட்ட முழு நேரம் = நேரம் முடிந்தது; I2DAT = மதிப்பு; clr_STA; clr_SI; போது ((SI == 0) && (நேரம்> 0)) {நேரம்--; }; }
குறியீடு மற்றும் வெளியீட்டை ஒளிரச் செய்கிறது
குறியீடு 0 எச்சரிக்கை மற்றும் 0 பிழைகளைத் திருப்பி, கெயிலால் இயல்புநிலை ஒளிரும் முறையைப் பயன்படுத்தி ஒளிரும். நீங்கள் புதியவராக இருந்தால், குறியீட்டை எவ்வாறு பதிவேற்றுவது என்பதைப் புரிந்துகொள்ள நுவோட்டன் டுடோரியலுடன் தொடங்குவதைப் பாருங்கள். குறியீட்டின் தொகுக்கும் தகவலை கீழே காணலாம்.
இலக்கு 'I2C_EEPROM' ஐ I2C_EEPROM.c தொகுத்தல்… I2C.c ஐ தொகுத்தல்… இணைத்தல்… நிரல் அளவு: தரவு = 59.2 xdata = 0 குறியீடு = 2409 "இலிருந்து ஹெக்ஸ் கோப்பை உருவாக்குகிறது. \ வெளியீடு \ I2C_EEPROM"… ". \ வெளியீடு \ I2C_EEPROM "- 0 பிழை (கள்), 0 எச்சரிக்கை (கள்). நேரத்தை உருவாக்குங்கள்: 00:00:04 தொகுதி-உருவாக்க சுருக்கம்: 1 வெற்றி பெற்றது, 0 தோல்வியுற்றது, 0 தவிர்க்கப்பட்டது - நேரம் கழிந்தது: 00:00:04
வன்பொருள் ஒரு பிரெட் போர்டில் அமைக்கப்பட்டு எதிர்பார்த்தபடி செயல்படுகிறது. கீழேயுள்ள படத்தில் நீங்கள் காணக்கூடியது போல, எப்ரோமில் ஒரு மதிப்பை எழுதி அதை நினைவகத்திலிருந்து மீண்டும் படித்து சீரியல் மானிட்டரில் காண்பிக்க முடிந்தது.

இந்த குறியீட்டிற்கான பலகை எவ்வாறு செயல்படுகிறது என்பதற்கான முழுமையான நிரூபணத்திற்கு கீழே கொடுக்கப்பட்டுள்ள வீடியோவைப் பாருங்கள். நீங்கள் டுடோரியலை ரசித்தீர்கள், உங்களுக்கு ஏதேனும் கேள்விகள் இருந்தால் பயனுள்ள ஒன்றைக் கற்றுக்கொண்டீர்கள் என்று நம்புகிறேன், அவற்றை கீழே உள்ள கருத்துப் பிரிவில் விடுங்கள். பிற தொழில்நுட்ப கேள்விகளை இடுகையிட எங்கள் மன்றங்களையும் பயன்படுத்தலாம்.
