Како повезати И2Ц-ЕЕПРОМ са 8051 микроконтролером

Испробајте Наш Инструмент За Елиминисање Проблема





Термин И2Ц или ИИЦ скраћеница је интер интегрално коло и зове се као што сам на квадрат Ц. И2Ц је серијска рачунарска магистрала , који су измислили НКСП полупроводници, претходно је назван Пхилипс семицондуцторс. И2Ц магистрала се користи за повезивање периферних интегрисаних кола мале брзине микроконтролери и процесори . У 2006. години, за примену И2Ц протокола није потребна накнада за лиценцу. Али накнада је потребна да би се добила И2Ц помоћна адреса коју додељују НКСП полупроводници.

Неки конкуренти као што су Текас Инструментс, Сиеменс АГ, НЕЦ, Моторола, Интерсил и СТМицроелецтроницс најавили су на тржишту средином деведесетих година добро прилагођене И²Ц производе. 1995. године СМБус је дефинисао Интел, то је подгрупа И²Ц која наводи да су протоколи строжи. Главна сврха СМБуса је подршка интероперабилности и робусности. Стога тренутни И²Ц системи укључују правила и политике СМБуса, понекад подржавају И2Ц и СМБус уз минималну реконфигурацију.




И2Ц Бус

И2Ц Бус

Интерфејс И2Ц Бус-ЕЕПРОМ са 8051 микроконтролером

Шта је И2Ц Бус

И2ц магистрала користи две двосмерне отворене одводне линије као што су СДА (серијска линија података) и СЦл (серијска линија сата) и оне се повлаче отпорницима. И2Ц магистрала дозвољава главном уређају да започне комуникацију са славе уређајем. Подаци се међусобно размењују између ова два уређаја. Уобичајени напони су + 3,3 В или + 5 В, мада су системи са додатним напонима дозвољени.



И2Ц интерфејс

И2Ц интерфејс

ЕЕПРОМ

Програмабилни РОМ са електричним брисањем (ЕЕПРОМ) је РОМ који корисник може променити и који се може често уклањати и репрограмирати применом електричног напона већег од нормалног. ЕЕПРОМ је врста трајне меморије која се користи у електронским уређајима попут рачунара за складиштење малих количина података које би требало сачувати када се напајање одвоји.

8051 Слицкер Боард

Плоча 8051 Слицкер је посебно дизајнирана да помогне студентима техничке струке у области уграђени системи . Овај комплет је дизајниран на такав начин да све карактеристике 8051 микроконтролер користиће студенти. Ова ударна плоча подржава ИСП (у системском програмирању) који се врши преко серијског порта. Овај комплет и 8051 из НКСП-а су предложени да ублаже напредак у отклањању грешака у многим дизајном који окружују брзине 8-битних микроконтролера.

Повезивање И2Ц - ЕЕПРОМ

Следећа слика приказује повезивање И2Ц-ЕЕПРОМ-а са 8051 микроконтролером. Овде је И2Ц мастер-славе протокол, који укључује податке заједно са импулсом такта. Типично, главни уређај је пребацио линију сата СЦЛ. Ова линија одређује временско одређивање података које се преносе на И2Ц магистрали. Ако се не активира сат, подаци се неће пренети. Све робове контролише исти сат, СЦЛ.


Повезивање И2Ц - ЕЕПРОМ

Повезивање И2Ц - ЕЕПРОМ

И2Ц магистрала подржава различите уређаје где је сваки уређај идентификован јединственом адресом било да се ради о управљачком програму ЛЦД-а, меморијској картици, микроконтролеру или повезивање тастатуре који може функционисати као Тк или Рк зависи од функционисања уређаја. Контролер је дизајниран за контролу ЕЕПРОМ уређаја путем И2Ц протокола. Овде, он И2Ц протокол ради као главни уређај и регулише ЕЕПРОМ и ради као славе. Р / В операције су стручне преношењем скупа контролних сигнала који се састоје од адресе И / ИЛИ сабирнице података. Ови сигнали треба да буду праћени одговарајућим сигналима сата

Интерфејс И2Ц Бус-ЕЕПРОМ са 8051 микроконтролером

Ако желите да читате, напишите и избришите ЕЕПРОМ користећи И2Ц магистралу у ударној плочи 8051. Повезивање И2 магистрале-ЕЕПРОМ са 8051 микроконтролер је врло једноставан . Операција овог повезивања је слање сигнала попут ВРИТЕ, праћеног сабирницом података и адресе. У овој операцији ЕЕПРОМ се користи за чување података. У комплету 8051, два броја ЕЕПРОМ линија регулишу управљачки програми који подржавају И2Ц. СЦЛ и СДА су повезани на серијски ЕЕПРОМ ИЦ заснован на И2Ц.

Интерфејс И2Ц Бус-ЕЕПРОМ са 8051 микроконтролером

Интерфејс И2Ц Бус-ЕЕПРОМ са 8051 микроконтролером

Коришћењем СДА и СЦЛ И2Ц линија, операције читања и писања ЕЕПРОМ-а се обављају у 8051 Слицкер Кит

Повезивање И2Ц је тако једноставно и сваки поједини податак чита / пише у ЕЕПРОМ-у. Кашњење зависи од компајлера како побољшава петље чим направите промене у изборима које кашњење варира.

Изворни код за И2Ц повезивање

#инцлуде
#инцлуде
#инцлуде

#дефине АЦК 1
#дефине НО_АЦК 0

непотписани знак и
непотписани знак ЕДата [5]
непотписани цхар Подаци
воид ИнитСериал (воид)
воид ДелаиМс (унсигнед инт)
воид ВритеИ2Ц (непотписани знак)
воид Старт (воид)
воид Стоп (воид)
воид РеадБИТЕ (непотписан инт)
воид ВритеБИТЕ (непотписан инт)
непотписани знак РеадИ2Ц (бит)

сбит СЦЛ = П2 ^ 0 // повезивање са СЦЛ пином (сат)
сбит СДА = П2 ^ 1 // повезивање на СДА пин (Подаци)

// —————————————
// Главни програм
// —————————————
воид маин (воид)
{
ИнитСериал () // Иницијализација серијског порта
путцхар (0к0Ц) // обриши хипер терминал
ДелаиМс (5)
ВритеБИТЕ (0к0000)
ВритеИ2Ц (‘А’) // Напишите податке овде
ВритеИ2Ц („Б“)
ВритеИ2Ц („Ц“)
ВритеИ2Ц („Д“)
ВритеИ2Ц (‘Е’)
ВритеИ2Ц („Ф“)
Зауставити()
ДелаиМс (10)

РеадБИТЕ (0к0000)
ЕДата [0] = РеадИ2Ц (НО_АЦК)
ЕДата [1] = РеадИ2Ц (НО_АЦК)
ЕДата [2] = РеадИ2Ц (НО_АЦК)
ЕДата [3] = РеадИ2Ц (НО_АЦК)
ЕДата [4] = РеадИ2Ц (НО_АЦК)
ЕДата [5] = РеадИ2Ц (НО_АЦК)

за (и = 0и<6i++)
{
принтф („валуе =% ц н“, ЕДата [и]) // приказ података * /
Кашњења (100)
}

док (1)
}

// —————————————
// Иницијализација серијског порта
// —————————————
воид ИнитСериал (воид)
{
СЦОН = 0к52 // подешавање контроле серијског порта
ТМОД = 0к20 // хардвер (9600 БАУД @ 11.0592МХЗ)
ТХ1 = 0кФД // ТХ1
ТР1 = 1 // Тајмер 1 укључен
}

// ——————————-
// старт И2Ц
// ——————————-
воид Старт (воид)
{
СДА = 1
СЦЛ = 1
_буттон _ () _ ноп_ ()
СДА = 0
_буттон _ () _ ноп_ ()
СЦЛ = 0
_буттон _ () _ ноп_ ()
}

// ——————————-
// заустављање И2Ц
// ——————————-
воид Стоп (воид)
{
СДА = 0
_буттон _ () _ ноп_ ()
СЦЛ = 1
_буттон _ () _ ноп_ ()
СДА = 1
}

// ——————————-
// Напишите И2Ц
// ——————————-
воид ВритеИ2Ц (непотписани цхар подаци)
{

за (и = 0и<8i++)
{
СДА = (Подаци & 0к80)? 1: 0
СЦЛ = 1СЦЛ = 0
Подаци<<=1
}

СЦЛ = 1
_буттон _ () _ ноп_ ()
СЦЛ = 0

}

// ——————————-
// Прочитајте И2Ц
// ——————————-
непотписани знак РеадИ2Ц (бит АЦК_Бит)
{

Почетак()
ВритеИ2Ц (0кА1)

СДА = 1
за (и = 0и<8i++)

СЦЛ = 1
Подаци<<= 1
Датум = (Датум

ако (АЦК_Бит == 1)
СДА = 0 // Пошаљи АЦК
иначе
СДА = 1 // Пошаљите НЕ ПОТВРДИТИ

_буттон _ () _ ноп_ ()
СЦЛ = 1
_буттон _ () _ ноп_ ()
СЦЛ = 0
Зауставити()
ретурн Дата
}

// ——————————-
// Прочитати 1 бајт облика И2Ц
// ——————————-
поништава РеадБИТЕ (непотписани инт Аддр)
{
Почетак()
ВритеИ2Ц (0кА0)
ВритеИ2Ц ((непотписани знак) (Аддр >> 8) & 0кФФ)
ВритеИ2Ц ((непотписани знак) Аддр & 0кФФ)
}

// ——————————-
// Напишите 1 бајт у И2Ц
// ——————————-
воид ВритеБИТЕ (непотписан инт Аддр)
{
Почетак()
ВритеИ2Ц (0кА0)
ВритеИ2Ц ((непотписани знак) (Аддр >> 8) & 0кФФ) // адреса послати високо
ВритеИ2Ц ((непотписани знак) Аддр & 0кФФ) // адреса слања ниска
}

// —————————————
// Одгода функције мС
// —————————————
воид ДелаиМс (непотписан инт цоунт)
{// мСец кашњење 11.0592 МХз
непотписан инт и // Кеил в7.5а
док (рачунај)
{
и = 115
док (и> 0) и–
цоунт–
}
}

Дакле, овде се ради о примени И2Ц интерфејса. Надамо се да сте боље разумели овај концепт. Даље, било која питања у вези са овим концептом или уређаји за повезивање дајте своје драгоцене предлоге коментаром у одељку за коментаре испод.