electronic sinhalen

සිංහල භාෂාවෙන් විද්‍යා හා තාක්ෂණ කරුණු ලබාදෙන, SENRO-TECH යුගයේ අපූර්වතම විද්‍යා හා තාක්ෂණ ගෙව්ශණය. SENROTECH is all about connecting you to the Technologies ©Copyrighted

Thursday, February 27, 2020

microcontroller sinhala - මයික්‍රෝකොන්ට්‍රෝලර්ස් (pic microcontroller programming) - 37


PIC microcontroller I2C communication


I2C සංනිවේදන ප්‍රොටෝකෝලය 


ඩිජිටල් පරිපථ අතර දත්ත හුවමාරු කර ගැනීම සදහා ඇති අනෙක් සංනිවේදන ප්‍රොටෝකෝලය I2C වේ. I2C යනු inter-integrated circuits යන්න කෙටිකර හැදින් වීම වේ.මෙම සංනිවේදන ප්‍රොටෝකෝලය පෙරදී පැහැදිලි කරන ලද සංනිවේදන ප්‍රොටෝකෝල වන UART හා SPI ප්‍රොටෝකෝලවල එකතුවක් ලෙස හැදින් විය හැක.මෙම සංනිවේදන ප්‍රොටෝකෝලය මුල්වරට  නිර්මාණය කරනු ලැබුවේ Philips Semiconductors අයතනය විසින් වන අතර අදවන විට සංගෘහික පරපථ අතර දත්ත සංනිවේදනය සදහා යොදාගන්නා ප්‍රධානම සංනිවේදන ප්‍රොටෝකෝලය මෙය වේ.

UART සන්නිවේදනය මෙන් I2C , උපාංග අතර දත්ත සම්ප්‍රේෂණය සදහා යොදාගනු ලබන්නේ සම්බන්දක දෙකක් පමණි.එසේම SPI සන්නිවේදනය මෙන් මෙහිදීද උපාංග (IC) කිහිපයක් I2C Interface එක සමග එකවර සම්බන්ද කල හැක.මෙහිදී සම්බන්ද කරන උපාංග බොහෝ විට ඇත්තේ එකම පරිපථ පුවරුවේ වේ.ඒ අනුව පැහැදිලිවන කරුන නම් මෙම I2C ප්‍රොටෝකෝලය යොදාගනු ලබන්නේ කෙටිදුර සංනිවේදනය සදහා වේ.


I2C ප්‍රොටෝකෝලයේ ගති ලක්ෂණ


  • ·මෙය synchronous සිරියල් සංනිවේදන ප්‍රොටෝකෝලයකි. එනම් SPI ප්‍රොටෝකෝලය මෙන් මෙහිදීද දත්ත බිටු එකින් එක සම්ප්‍රේෂණය සදහා clock පල්ස් එකක් යොදාගනු ලබයි.

  • මෙම ප්‍රොටෝකෝලය යොදාගෙන දත්ත සංනිවේදනය සදහා යොදාගනු ලබන්නේ සම්බන්දක දෙකක් පමණි.ඉන් එකක් clock පල්ස් එක (SCL) සදහා වන අතර අනෙක් සම්බන්දකය දත්ත සම්ප්‍රේෂණය (SDA) සදහා යොදාගනු ලබයි. 

  • SPI සංනිවේදනයේදී මෙන් මෙහිදීද උපංග කිහිපයක්ම සම්බන්දකර සංනිවේදනය සිදු කල හැක.එසේම SPI මෙන් මෙහිදී ද වරකට සංනිවේනය කල හැකි වන්නේ එක් උපාංගයක් සමග පමණි.ඒ අනුව පහත දැක්වෙන්නේ I2C ක්‍රමයට උපාංග අතර දත්ත සංනිවේදනය සදහා යොදාගනු ලබන සම්බන්දක වේ

SDA (Serial Data) :- දත්ත යැවීමට සහ දත්ත ලබාගැනීමට යොදාගනු ලබන සම්බන්දකය
SCL (Serial Clock) :- clock පල්ස් එක ගමන් කරන සම්බන්දකය
එසේම SPI දී මෙන් නොව  I2C සංනිවේදන පද්ධතික Master උපකරන කිහිපයක් උවද තිබිය හැක.එහෙත් දත්ත සංනිවේදනය සිදුවන ඕනෑම මොහොතක I2C පද්දතියේ සක්‍රීයව සිටින්නේ එක් Master උපකරනයක් පමණි.එනම් එකවිට උපකරන දෙකක් Master ලෙස යොදාගත නොහැකිය.
  • මෙහිදී දත්ත යැවීමට සහ ලබා ගැනීම සදහා එකම මාර්ගය යොදාගනු ලබන බැවින් මෙම සංනිවේදනය half duplex සංනිවේදනයකි.
  • මෙම සංනිවේදනයේදී ද දත්ත සංනිවේදනය පාලනය කරනු ලබන උපාංගය  Master ලෙස හදුන්වනු ලබන අතර මෙය හා සම්බන්ද කරන උපාංග Slave ලෙස හදුන්වනු ලබයි.
  • SPI සංනිවේදනයේදී Master විසින් Slave උපාංග හදුනා ගැනීම සදහා වෙන වෙනම සම්බන්දක යොදාගනු ලැබීය.එහෙත් මෙම සංනිවේදන ක්‍රමයේදී  එලෙස වෙන වෙනම සම්බන්දක යොදාගනු නොලබන අතර  Slave උපාංග හදුනා ගැනීම සදහා වෙනම ක්‍රමයක් අනුගමනය කරනු ලබයි.එනම් 7-bit address  හෝ 10-bit address  එකක් මේ සදහා යොදාගනු ලබයි.
  • මෙහිදීද දත්ත සම්ප්‍රේෂණය සදහා clock පල්ස් එකක් යොදාගන්නා බැවින්, දත්ත සංනිවේදන වේගය clock පල්ස් එකේ සංඛ්‍යතය මත රදා පවතී. 


I2C ප්‍රොටෝකෝලයේ ක්‍රියාකාරිත්වය


I2C සංනිවේදන ක්‍රමයට දත්ත සම්ප්‍රේෂණය කිරීමට නිර්මාණය කරන ලද පද්ධතික  එහි ඇති උපාංග Master හා Slave ලෙස හදුන්වන ලබන බවත්, Master  විසින් සියලුම සංනිවේදනයන් හසුරවන බවත් ඉහත දී පැහැදිලි කරන ලදී. SPI සංනිවේදනයේදී Master  විසින් දත්ත සම්ප්‍රේෂණය සදහා  Slave උපාංගයක් තෝරා ගැනීමට වෙනම් සම්බන්දයක් යොදාගන්නා ලදී.එහෙත් මෙහිදී දත්ත සම්ප්‍රේෂණය සදහා  Slave උපකරනයක්  තෝරා ගැනීම සදහා  යොදාගනු ලබන්නේ address බිට් ක්‍රමයකි.එනම් I2C පද්ධතියේ ඇති  සෑම Slave උපාංගයක්ම වෙන්කර  හදුනා ගැනීම සදහා  address එකක් යොදනු ලබයි. Master විසින් Slave උපාංගයක් තෝරාගැනීමට යොදාගනු ලබන්නේ මෙම address එක වේ. 

Master උපාංගයකට Slave උපාංගයක් සමග දත්ත සම්ප්‍රේෂණය කිරීමට අවශ්‍ය වූ විට, SDA  සම්බන්දතාවය යොදාගෙන Master  විසින් මෙම address එක සියලුම Slave උපාංග වලට යවනු ලබයි.මෙහිදී මෙම address එකට අදාල Slave උපාංගය පමණක් මීට ප්‍රතිචාර දක්වනු ලබයි.ඉන් පසු මෙම උපාංග දෙක අතර සංනිවේදනය සිදු කර ගත හැක.මෙය සිදුවන ආකාරය වටහා ගැනීම  සදහා  I2C ප්‍රොටෝකෝලයේ දත්ත (0 සහ 1 හි බිටු රටා) යොදාගැනෙන ආකාරය පිළිබදව විමසා බැලිය යුතුය. 

සෑම දත්ත සම්ප්‍රේෂණ ප්‍රොටෝකෝලයක්ම එම දත්තයේ ඇති බිටු සම්ප්‍රේෂණය සදහා විවිධ ආකාරයේ  බිටු රටා යොදාගනු ලබයි.ඒ අනුව  පහත දැක්වෙන්නේ I2C ප්‍රොටෝකෝලයේ දත්ත සම්ප්‍රේෂණය සදහා නිර්මාණය කරන බිටු රටාවක ව්‍යුහය වේ



Start bit -  සාමාන්‍යයෙන් දත්ත රැගෙන යන මාර්ගයක් දත්ත සම්ප්‍රේෂණය නොකරන විට ඉහළ වෝල්ටීයතා මට්ටමේ පවත්වා ගනු ලබයි.ඒ අනුව මෙම Start bit එක මගින් කරනු ලබන්නේ   SDA මාර්ගය  ඉහළ වෝල්ටීයතා මට්ටමේ  සිට අඩු වෝල්ටීයතා මට්ටමට මාරුකර ලීම වේ.ඒ අනුව මෙම බිටුව සෑම විටම 0 වන අතර මෙය දත්තයේ ආරම්බක බිටුව ලෙස හැදින් වේ.
 
Address frame - Slave උපාංගය හදුනා ගැනීමට ඇති Address බිට් නිරූපණය කරනු ලබයි.මෙය බිට් 7 කින් හෝ 10 කින් නිරූපණය කරනු ලබයි.

Read/Write Bit - මෙම බිටුව මගින් Master ිසින් දත්ත Slave උපාංගයට යවන්නේද (0) එසේත් නොමැතිනම් Slave උපාංගයෙන් දත්ත ලබා ගන්නේද (1) යන්න නිරූපණය කිරීමට යොදාගනු ලබයි.

ACK/NACK Bit - Address frame එකක් හෝ data frame එකක් සාර්ථකව ලැබුනේද යන්න හදුනා ගැනීම සදහා මෙම බිටුව යොදාගනු ලබයි. මෙම ACK බිටුව,දත්ත ලැබීමේ උපාංගයෙන් බිට් එවන උපාංගය වෙත ආපසු එවනු ලැබේ. මෙම බිටුව අපසු ලැබුනේ නම් පමණක් දත්ත සම්ප්‍රේෂණය නොකඩවා සිදු වේ.

Data frame – දත්ත සම්ප්‍රේෂණය කරන විට, එම දත්තය කුඩා Data frame වලට බෙදනු ලබයි.ඒ අනුව යම් දත්තයක Data frame එකක් හෝ කිහිපයක් තිබිය හැක.මෙම බිටු මගින් නිරූපණය කරනු ලබන්නේ මෙම Data frame වේ.

Stop Bit - මෙම බිටුව දත්ත සම්ප්‍රේෂණය අවසන් බව හැගවීමට යොදාගනු ලබයි.එනම් SDA මාර්ගය ඉහළ වෝල්ටීයතා මට්ටමට ගෙන එනු ලබයි.


I2C ක්‍රමයට දත්ත සංනිවේදනය වන ආකාරය

 
ඉහත රූපයේ දක්වා ඇත්තේ I2C ප්‍රොටෝකෝලය යොදාගෙන දත්ත සම්ප්‍රේෂණය කරන ආකාරයේ දළ සටහණකි. ඒ අනුව මෙහිදී දත්ත සංනිවේදනය කරනු ලබන්නේ Master උපාංගය හා Slave 3 උපාංගය සමග වන අතර දත්ත සම්ප්‍රේෂණය Master සිට Slave දක්වා සිදුවීම (data write) පැහැදිලි කර ඇත.

මෙම උපාංග දෙක අතර සංනිවේදනය සිදු කිරීමට අදාල  බිටු ව්‍යුහය රූපයේ දක්වා ඇති ආකාරයට වේ.ඒ අනුව මෙහිදී ප්‍රථමයෙන් සිදු කරනු ලබන්නේ දත්ත සම්ප්‍රේෂණයේ ආරම්බය හදුන්වා දීම සදහා start bit එක සියලුම උපාංග සදහා යවනු ලැබීම වේ.ඉන් පසු දත්ත සංනිවේදනය කරනු ලබන උපාංගය තෝරා ගැනීම සදහා  Address frame එකේ බිටු සහ දත්ත read/write කිරීම හදුන්වා දීමට අදාල බිටුව පිළිවෙලින් සියලුම උපාංග වෙත යැවීම සිදු කරනු ලබයි.ඉන් අනතුරුව ack බිටුවද සියලුම උපාංග වෙත යැවීම සිදු කරනු ලබයි.මේ අතර තුර Slave උපාංග විසින් , Master මගින් එවනු ලැබූ  Address බිටු තමන්ගේ Address බිටු සමග සංසන්දනය කරනු ලබයි.එවිට Slave 3 හි Address බිටු සමග පමණක්  එම බිටු ගැලපෙන බැවින්  Master මගින් ලැබුන ack බිටුව Slave 3 මගින් පමණක් නැවත Master වෙත එවනු ලබයි.ඒ අනුව දැන් Master හා Slave 3 අතර පමණක් දත්ත සම්ප්‍රේෂණය සදහා සම්බන්දතාවය ගොඩනැගී ඇත.මින් අනතුරුව සියලුම සංනිවේදනයන් සිදු වන්නේ මෙම උපාංග දෙක අතර පමණක් වේ.

මෙහිදී දත්ත Master විසින් Slave 3 වෙත යැවීම සිදු කරනු ලබයි.(Read/write බිටුව 0 නිසා දත්ත Master විසින් Slave වෙත යවනු ලබන අතර එම බිටුව 1 නම් Slave විසින් දත්ත Master වෙත එවනු ලබයි.) 

ඉන් අනතුරුව ඇත්තේ data frame හී බිටු යැවීම වේ.මෙහිදී ඇත්තේ එක්  data frame එකක් බැවින් මෙයට අදාල බිටු පිළිවෙලින් Slave 3 වෙත යවනු ලබයි.ඉන් අනතුරුව දත්ත බිටු සාර්ථකව ලැබුනේ ද යන්න හදුනා ගැනීම සදහා  ack බිටුවක් නැවත Master විසින් යවනු ලබන අතර දත්ත බිටු සාර්ථකව Slave 3 වෙත ලැබුනේ නම් එම ack බිටුව නැවත Master වෙත එවනු ලබයි.මේ ආකාරයට ඇති සියලුම data frame යැවීම සිදු කරනු ලබයි.මෙහිදී ඇත්තේ එක් data frame එකක් පමණක් බැවින් එය යැවීම සිදු කල පසු දත්ත සම්ප්‍රේෂණය අවසන් වේ.ඉන් පසු එය දැනුම් දීම සදහා  Stop bit එක Master  විසින් යැවීම සිදු කරනු ලබයි.එවිට  Master හා Slave 3 අතර තිබු සංනිවේදන සම්බන්දතාවය අවසන් වේ.

SPI සංනිවේදනයේදී මෙන් මෙහිදීද සෑම දත්ත බිටුවක්ම යැවීම හෝ ලබාගැනීම සිදු කරනු ලබන්නේ Clock ස්පන්දයකට වරක් වේ.ඒ අනුව පහත දැක්වෙන්නේ එය සිදුවන ආකාරය වේ.




PIC16F877A මයික්‍රෝකොන්ට්‍රෝලරය යොදාගෙන I2Cක්‍රමයට දත්ත හුවමාරු කිරීම

SPI ප්‍රොටෝකෝලය  යොදාගෙන සංනිවේදනය මෙන් I2C ප්‍රොටෝකෝලය  යොදාගෙන ද සංනිවේදනය කිරීම සදහා PIC16F877A මයික්‍රෝකොන්ට්‍රෝලරය තුල ඇති ඒකකය  MSSP වේ.ඒ අනුව I2C ප්‍රොටෝකෝලය  යොදාගෙන  සංනිවේදනය කිරීම සදහා යොදාගනු ලබන රෙජිස්ටර ද SPI සංනිවේදනයේදී යොදාගනු ලබන රෙජිස්ටරම වේ.එනම් මෙහිදීද දත්ත බිටු සම්ප්‍රේෂණය සදහා යොදාගනු ලබන්නේ shift රෙජිස්ටරය වන අතර එම දත්ත සම්ප්‍රේෂණය පාලනය කිරීම සදහා SPI හී යොදාගනු ලැබූ SSPSTAT හා SSPCON1 රෙජිස්ටර දෙකට අමතරව SSPCON2 නම් තවත් රෙජිස්ටරයක් යොදාගනු ලබයි.පහත දැක්වෙන්නේ I2C යොදාගෙන සංනිවේදනය හැසිරවීමට අදාල එම රෙජිස්ටරයන්ගේ සකස්කල යුතු බිටු සැකසුම් වේ.


SSPSTAT – MSSP Status Register




මෙම රෙජිස්ටරයේ ඇති අවසන් බ්ටු දෙක හැර අනෙක් සියලුම බිටු කියවීමට පමනක් ඇති බිටු වේ.ඒ අනුව මෙම බිටු හය I2C සංනිවේදනයේ දී ඇති වන තත්වයන් පෙන්නුම් කරනු ලබන බිටු වේ.

UA : Update Address Bit.
මෙම බිටුව මගින් යොදාගනු ලබන්නේ 10 බිට් හෝ 7 බිට්  Address එක්ද යන්න පෙන්නුම්  කරනු ලබයි.

R/W : Read/Write information.
මෙම බිටුව මගින් දත්ත Read කිරීමක්ද,එසේත් නොමැතිනම්  Write කිරීමක්ද යන්න පෙන්නුම් කරනු ලබයි.

S : Start Bit.
මෙම බිටුව මගින් පෙන්නුම් කරනු ලබන්නේ දත්ත සංනිවේදනයේ ආරම්භක බිටුව වේ.

P : Stop Bit.
මෙම බිටුව මගින් පෙන්නුම් කරනු ලබන්නේ දත්ත සංනිවේදනයේ අවසන් බිටුව වේ.‍

D/A : Data/Address bit.
මෙම බිටුව යොදාගනු ලබන්නේ මයික්‍රෝකොන්ට්‍රෝලරය Slave ලෙස යොදාගන්නා විට වේ.එනම් මෙමගින් Address bit ලැබුන බව පෙන්නුම් කරනු ලබයි.

SPI සංනිවේදනය පැහැදිලි කරන විට මෙම රෙජිස්ටරයේ ඉතිරි බිටුවල කාර්යන් පැහැදිලි කර ඇත.

SSPCON1 – MSSP Control Register 1

මෙම රෙජිස්ටරය I2C සංනිවේදනය පාලනය කරනු ලබන රෙජිස්ටරයක් වේ.SSPM0 සිට SSPM3 දක්වා රෙජිස්ටර මගින් I2C සංනිවේදනයේ මූලික සැකසුම් සිදු කරනු ලබයි.පහත දැක්වෙන්නේ එම සැකසුම් සකස් කිරීමට අදාල බිටු සැකසුම් වේ
මෙම රෙජිස්ටරයේ ද ඉතිරි බිටු වල කාර්යන් SPI සංනිවේදනය පැහැදිලි කරන විට සදහන්කර ඇත.

SSPCON2 – MSSP Control Register 2

SEN: - Start Condition or Stretch Enable bit
Master ලෙස යොදාගන්නා විට මෙම බිටුව මගින් SCL සහ SDA මාර්ගයන්ගේ ආරම්භ කිරීම් සිදු කිරීමට යොදාගනු ලබයි. එසේම ආරම්භය සිදු වූ පසු  ස්වයංක්‍රීයව මෙම බිටුව ඉවත් කිරීම කරනු ලබයි.

RSEN : - Repeated start condition enable bit
මෙම බිටුව යොදාගනු ලබන්නේද Master Mode එකේදී පමණක් වන අතර start condition එක නැවත නැවත ආරම්භ කිරීම සදහා මෙය යොදාගනු ලබයි.

PEN : - Stop condition enable bit
මෙම බිටුව යොදාගනු ලබන්නේද Master Mode එකේදී පමණක් වන අතර මෙමගින් SCL සහ SDA මාර්ගයන්ගේ stop condition එක සකස් කිරීම කරනු ලබයි.

RCEN: - Receive enable bit  
මෙම බිටුව යොදාගනු ලබන්නේද Master Mode එකේදී පමණක් වන අතර මෙම බිට් එක සැකසීමෙන් I2C සඳහා  දත්ත බිටු ලැබීම  සක්‍රීය කරයි.

ACKEN : -Acknowledge sequence enable bit
මෙම බිටුව යොදාගනු ලබන්නේ Master receive mode එකේදී වන අතර මෙමගින් ACKDT එක යැවීම සිදු කරනු ලබයි.

ACKDT :  - Acknowledge data bit
මෙම බිටුව යොදාගනු ලබන්නේ receive mode එකේදී Acknowledge බිට් එක සදහා වේ.

CKSTAT : - Acknowledge status bit
මෙම බිටුව යොදාගනු ලබන්නේ transmit mode එකේදී Acknowledge බිට් එක සදහා වේ.

MikroC යොදාගෙන I2C ක්‍රමයට දත්ත සංනිවේදනය කිරීම 


මෙහිදී ද MikroC හී Language library ඇති Function යොදාගෙන  පහසුවෙන් I2C ක්‍රමයට දත්ත සංනිවේදනය කිරීම  සිදුකල හැක.ඒ අනුව පහත දැක්වෙන්නේ එම Function වේ.



I2C1_Init (clock) :- SPI මෙන් I2C ක්‍රමයේදී ද දත්ත බිටු සම්ප්‍රේෂණය කරනු ලබන්නේ clock පල්ස් එක සමග වේ.එබැවින්  I2C හී දත්ත සම්ප්‍රේෂණ වේගය clock පල්ස් එකේ සංඛ්‍යතය මත රදා පවතී.මෙම Function එක මගින් කරනු ලබන්නේ clock පල්ස් එක සකස් කිරීම හා  I2C හී සංනිවේදනය සිදු කිරීමට අදාල මූලික සකස් කිරීම් සිදුකර ලීම වේ.

I2C1_Start() :-  මෙම Function එක මගින් I2C සංනිවේදනය ආරම්බ කිරීම සදහා ආරම්බක බිටුව යොදාගනු ලබයි.

I2C1_Repeated_Start () : -  I2C හී ආරම්බක සංඥාව නැවත නැවත යොදාගැනීම සිදු කරයි.

I2C1_Rd :- Slave මගින් දත්ත බිටු කියවීම සිදුකරනු ලබයි.

I2C1_Write() :- Slave වෙත දත්ත බිටු යැවීම සිදුකරනු ලබයි.

I2C1_Stop():- I2C සංනිවේදනය අවසන් කිරීම සිදු කරනු ලබයි.

PIC16F877A මයික්‍රෝකොන්ට්‍රෝලරය යොදාගෙන DS1307 IC එක සමග I2Cක්‍රමයට දත්ත හුවමාරු කිරීම

DS1307

DS1307 යනු දිනය සහ වේලාව binary coded decimal (BCD) වලින් ලබා ගත හැකි, I2C ක්‍රමයට දත්ත සංනිවේදනය කරනු ලබන IC එකකි.පහත දැක්වෙන්නේ එහි පින් සැකසුම හා එහි ක්‍රියාකාරිත්වය සිදු කිරීමට අදාල පරිපථ සටහන වේ.

ඉහත පරිපථ සටහන අනුව පරිපථය සකස් කර විදුලිය සැපයූ විට DS1307 IC එකේ ක්‍රියාකාරිත්ව සිදු වේ.එනම් දිනය සහ වේලාව ට අදාල දත්ත මෙහි මතකයන් තුල තැන්පත්  කිරීම නොකඩවා සිදු වේ.එම දත්ත ලබා ගැනීම සදහා කල යුත්තේ  SCL හා SDA පින් දෙක යොදාගෙනෙ I2C සංනිවේදන ක්‍රමය යොදාගෙන මෙහි මතකය කියවා ඒවා ලබා ගැනීමයි.මේ සදහා මෙම DS1307 IC එකේ මතකයන් පිළිබදව විමසා බැලිය යුතුය.ඒ අනුව පහත දැක්වෙන්නේ එම මතකයන්ගේ දල සටහනකි.

මෙම මතකය ඉහත රූපයේ දක්වා ඇති ආකාරයට රෙජිස්ටර කිහිපයකින් සමන්විත වේ.එම සෑම රෙජිස්ටර යකම පිහිටුම සොයා ගැනීම සදහා ඒවාට වෙන වෙනම address එකක් ඇත.IC එක ක්‍රියාත්මක වන විට සිදු වන්නේ දිනයට හා වේලාවට අදාල දත්ත මෙම රෙජිස්ටර වල තැන්පත් වීමයි. මෙම රෙජිස්ටර වලින් දත්තයක් ලබා ගැනීමේදී හෝ මෙම රෙජිස්ටරවලට දත්ත සටහන් කිරීමේදී  (වේලාව හා දිනය සකස් කිරීම සදහා මෙම රෙජිස්ටර වලට අගයන් ලිවීමට සිදු වේ.) කල යුත්තේ  address එක යොදාගෙන දත්ත ලබා ගැනීමට හෝ ලිවීම සදහා අවශ්‍ය රෙජිස්ටරය තෝරාදීම වේ.උදාහරනයක් ලෙස තත්පර ප්‍රමාණය ලබා ගැනීමට අවශ්‍ය නම්, 00h address එක මගින් තත්පර වල අගයන් අඩංගු වන රෙජිස්ටරය කියවීම සිදු කල හැක.ඒ අනුව DS1307 මගින් දත්ත ලබා ගැනීම හෝ ලිවීම පහත දක්වා ඇති පියවර අනුව සිදු කල හැක.

  1. I2C සංනිවේදනය ආරම්බ කිරීම(Start communication)
  2.  DS1307  හී address එක මගින්  Slave උපාංගය තේරීම සිදු කිරීම.(Send Slave Address)
  3.  දත්ත ලබා ගැනීමට හෝ ලිවීමට අදාල රෙජිස්ටර Address තේරීම (Send Register Address.)
  4.  දත්ත ලබා ගැනීම හෝ ලිවීම සිදු කිරීම(Data Read or Write)
  5.  I2C සංනිවේදනය අවසන් කිරීම (Stop communication)

මයික්‍රෝකොන්ට්‍රෝලරය සමග DS1307 IC එක සම්බන්ද කිරීම






MikroC code





  •