| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| I2C интерфейс основи http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=10332 |
Страница 1 от 2 |
| Автор: | polinom [ Пет Юли 20, 2012 9:56 pm ] | |||||||||
| Заглавие: | I2C интерфейс основи | |||||||||
Ще съм благодарен на някой (най-вече човек с практичен опит ) да ми разясни едни пример за комуникация между модули използваща I2C интерфейса. Говоря за 8 битови PIC контролери (ако има значениe по конкретно PIC18f8720) и C18 компилатора на Microchip . Знам как комуникират,последователността от сигнали и тяхното значение, знам какво правят библиотечните функции предоставени в MPLAB (i2c.h имам предвид ), но някак си не мога да съставя коректна програма. Ето едно мое кодче( моля не се смейте ):
Целта ми е да се пращат някакви битове ,в случая низа ch="info", нямам конкретен устройство към което искам да го пратя. Може да го коментирате и дадете препоръки как да го организирам. И накрая не мога да разбра в режим Master как мога да адресирам повече от един slave, по скоро как изпращам адреса на slave. |
||||||||||
| Автор: | Cekins [ Пет Юли 20, 2012 10:08 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
Не стават така тия работи... Това не е пералня с две програми ... Не се сърди ама в интернет има писано предостатъчно кое, как и защо. Освен това в даташита на почти всеки дивайс го има описан подробно. И като знаеш последователността тогава какво трябва да има след StartI2C?. |
|
| Автор: | Н'бабане Гт'муан'га [ Съб Юли 21, 2012 1:43 am ] |
| Заглавие: | Re: I2C интерфейс основи |
puts() не може да вади данни на I2C освен ако не си дефинирал собствена функция _putchar() Което ти май не си направил. Така, че позвай хелпа и функциите за трансфер на данни с I2C |
|
| Автор: | polinom [ Съб Юли 21, 2012 2:54 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
добре за puts() ето пример от http://www.electro-tech-online.com/cust ... ries-7.pdf Code Example: unsigned char string[] = “data to send”; putsI2C(string); Иначе съм напълно съгласен с 1-вото мнение че не стават нещата туко така |
|
| Автор: | Н'бабане Гт'муан'га [ Съб Юли 21, 2012 3:53 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
Puts() и putsI2C() имат леека разлика помежду си... |
|
| Автор: | Cekins [ Съб Юли 21, 2012 4:44 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
Едва ли смисъла на I2C е да се пращат някви данни някъде в небитието. Та нали за това е целия гърч с адреси, тристейтнати линии и т.н. Като искаш да пращаш данни в "етера" ползвай SPI или UART... |
|
| Автор: | dan [ Съб Юли 21, 2012 5:38 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
Полиноме, защо си го слагаш този таралеж в гащите??? По калпав интерфейс от I2C няма. НЯМА! За начало по-добре направи нещото я с SPI, я по друг начин, ама да вземеш I2C-то за начало е направо мазохизъм. Накрая (особено ако си нервак ) дори и да го пуснеш нещото, няма да си съвсем сигурен защо и как работи. И 'защо онзи път не стана'.... |
|
| Автор: | Dimitar [ Съб Юли 21, 2012 6:12 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
dan, I2C-то си е много хубав интерфейс даже и си има специфични приложения. Недейте така отказва хората и също така няма нищо лошо да се почне с него. Концепцията му не е кой знае колко трудна. Във всеки случай несравнимо по-лесна и проста от други серийни интерфейси като USB, Ethernet и т.н. Ако имаш накачени 10 чипа един за друг I2C-то е много по-добро от SPI и иска само 2 жици, докато SPI-я ще иска 12. Каква е далаверата да е серийното тогава, като става с жици като за паралелна шина. Та всичко си има ниши и приложения, а и дори I2C-то да няма приложение за сега не е зле да го знае като концепция. polinom-е, като за начало се опитай да си изясниш концепцията на I2C интерфейса и превключи на мастър, вместо на слейв |
|
| Автор: | dan [ Съб Юли 21, 2012 6:31 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
Аз не оспорвам предимствата на I2C-то. Даже съм го използвал точно за свързване на няколко сензори на една шина. Просто си е скапан интерфейса за начало (аз поне останах с впечатлението, че "Полинома" сега започва да се занимава). |
|
| Автор: | Dimitar [ Съб Юли 21, 2012 7:07 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
Ами и аз съм научил I2C-то веднага след RS232-то, ама не се сещам това с нещо да ми е попречило |
|
| Автор: | MYXATA [ Съб Юли 21, 2012 9:15 pm ] | |||||||||
| Заглавие: | Re: I2C интерфейс основи | |||||||||
Dan, защо се изказваш неподготвен? то и преди сме дискутирали и2ц, има си положителни страни и отрицателни, но с такова изказване означава само едно -> не си се занимавал достатъчно с микроконтролери Помня и Цецо не е възхитен о и2ц, но при положение, че във всички мобилни девайси от най-жълтите до айпадите и самсуните ->всичкото сезори са им на и2ц(има малки изключения, но те са за high speed ). Полиноме ети ти сбито начално 4етиво http://www.robot-electronics.co.uk/acat ... orial.html |
||||||||||
| Автор: | dan [ Нед Юли 22, 2012 9:53 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
Уффф, не ми се обяснява, но... ще трябва. 1. Моя първоначален опит с I2C беше на нулева серия pic24. Еррата на този контролер беше... абе дълга. Та може още от тогава да има нещо по-скоро емоционално в отношението ми. 2. И горе съм споменал, че и2ц-то си има място. 3.Тук става въпрос за връзка между два контролера. => едва ли има нужда да е точно и2ц. 4. Имал съм вземане-даване с чипове, на които фронтовете на импулсите трябваше да бъдат до незнамси-колко нс, за да отчетат правилно данните 5. Ако човекът няма осцилоскоп под ръка (както е обикновено при начинаещите) ще има да се чуди дали , да речем, насрещното у-во не е изпратило ACK, или контролера не го е разбрал ... 6. Муха, пишкомерството кой колко се е занимавал с контролери или каквото и да е друго ми е чуждо. Тук има няколко образа, с които предполагам, че с удоволствие можете да обмените малко пишкометрични данни, но по-добре отвори нова тема, че да не осираме и тази. |
|
| Автор: | Н'бабане Гт'муан'га [ Пон Юли 23, 2012 2:45 am ] | |||||||||
| Заглавие: | Re: I2C интерфейс основи | |||||||||
Поименно колега, поименно! |
||||||||||
| Автор: | Cekins [ Пон Юли 23, 2012 9:13 pm ] |
| Заглавие: | Re: I2C интерфейс основи |
@dan - че е крив на пиковете крив е. Ама с 18-ки само с готови библиотеки съм работил и всичките са си бачкали ок. Въобще и не съм го разучавал модула им. За 24-ките с малко инат си направих една библиотека на асемблер. Колкото до осцилоскопа - първите си устройства съм ги пускал без скоп. А досега само с един чип имах зор с пускането, ама вината не беше в хардуера. И в общи линии не можеш да бягаш постоянно от този интерфейс - има доста интересни джаджи само с такъв. Даже честно казано го предпочитам за комуникация с няколко различни джаджи по платката. Примерно комбинацията RTC, EEPROM, термометър/и (и евентуално някой друга джиджавка) си става супер само на две жици. |
|
| Автор: | Цецо [ Вто Юли 24, 2012 8:42 am ] |
| Заглавие: | Re: I2C интерфейс основи |
I2C е рядко дърво и точка по въпроса А 1MHz I2C пък е 20 годишен ръждив голф с нови лети джанти. Мнението ми да не се приема като препоръка. |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|