|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 12:40 am
| Автор |
Съобщение |
|
polinom
Ранг: Новодошъл
Регистриран на: Съб Юни 09, 2012 12:23 am Мнения: 146 Местоположение: София/Стара Загора
|
 I2C интерфейс основи
Ще съм благодарен на някой (най-вече човек с практичен опит ) да ми разясни едни пример за комуникация между модули използваща I2C интерфейса. Говоря за 8 битови PIC контролери (ако има значениe по конкретно PIC18f8720) и C18 компилатора на Microchip . Знам как комуникират,последователността от сигнали и тяхното значение, знам какво правят библиотечните функции предоставени в MPLAB (i2c.h имам предвид ), но някак си не мога да съставя коректна програма. Ето едно мое кодче( моля не се смейте ): Целта ми е да се пращат някакви битове ,в случая низа ch="info", нямам конкретен устройство към което искам да го пратя. Може да го коментирате и дадете препоръки как да го организирам. И накрая не мога да разбра в режим Master как мога да адресирам повече от един slave, по скоро как изпращам адреса на slave.
|
| Пет Юли 20, 2012 9:56 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: I2C интерфейс основи
Не стават така тия работи... Това не е пералня с две програми ...
Не се сърди ама в интернет има писано предостатъчно кое, как и защо. Освен това в даташита на почти всеки дивайс го има описан подробно. И като знаеш последователността тогава какво трябва да има след StartI2C?.
|
| Пет Юли 20, 2012 10:08 pm |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: I2C интерфейс основи
puts() не може да вади данни на I2C освен ако не си дефинирал собствена функция _putchar() Което ти май не си направил. Така, че позвай хелпа и функциите за трансфер на данни с I2C
_________________ 'просто' е технически синоним на 'красиво'
|
| Съб Юли 21, 2012 1:43 am |
|
 |
|
polinom
Ранг: Новодошъл
Регистриран на: Съб Юни 09, 2012 12:23 am Мнения: 146 Местоположение: София/Стара Загора
|
 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 2:54 pm |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: I2C интерфейс основи
Puts() и putsI2C() имат леека разлика помежду си...
_________________ 'просто' е технически синоним на 'красиво'
|
| Съб Юли 21, 2012 3:53 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: I2C интерфейс основи
Едва ли смисъла на I2C е да се пращат някви данни някъде в небитието. Та нали за това е целия гърч с адреси, тристейтнати линии и т.н. Като искаш да пращаш данни в "етера" ползвай SPI или UART...
|
| Съб Юли 21, 2012 4:44 pm |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
 Re: I2C интерфейс основи
Полиноме, защо си го слагаш този таралеж в гащите??? По калпав интерфейс от I2C няма. НЯМА! За начало по-добре направи нещото я с SPI, я по друг начин, ама да вземеш I2C-то за начало е направо мазохизъм. Накрая (особено ако си нервак ) дори и да го пуснеш нещото, няма да си съвсем сигурен защо и как работи. И 'защо онзи път не стана'....
_________________ Хайде де!
|
| Съб Юли 21, 2012 5:38 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: I2C интерфейс основи
dan, I2C-то си е много хубав интерфейс даже и си има специфични приложения. Недейте така отказва хората и също така няма нищо лошо да се почне с него. Концепцията му не е кой знае колко трудна. Във всеки случай несравнимо по-лесна и проста от други серийни интерфейси като USB, Ethernet и т.н. Ако имаш накачени 10 чипа един за друг I2C-то е много по-добро от SPI и иска само 2 жици, докато SPI-я ще иска 12. Каква е далаверата да е серийното тогава, като става с жици като за паралелна шина. Та всичко си има ниши и приложения, а и дори I2C-то да няма приложение за сега не е зле да го знае като концепция. polinom-е, като за начало се опитай да си изясниш концепцията на I2C интерфейса и превключи на мастър, вместо на слейв  .
|
| Съб Юли 21, 2012 6:12 pm |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
 Re: I2C интерфейс основи
Аз не оспорвам предимствата на I2C-то. Даже съм го използвал точно за свързване на няколко сензори на една шина. Просто си е скапан интерфейса за начало (аз поне останах с впечатлението, че "Полинома" сега започва да се занимава).
_________________ Хайде де!
|
| Съб Юли 21, 2012 6:31 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: I2C интерфейс основи
Ами и аз съм научил I2C-то веднага след RS232-то, ама не се сещам това с нещо да ми е попречило  .
|
| Съб Юли 21, 2012 7:07 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 Re: I2C интерфейс основи
Dan, защо се изказваш неподготвен? то и преди сме дискутирали и2ц, има си положителни страни и отрицателни, но с такова изказване означава само едно -> не си се занимавал достатъчно с микроконтролери  Помня и Цецо не е възхитен о и2ц, но при положение, че във всички мобилни девайси от най-жълтите до айпадите и самсуните ->всичкото сезори са им на и2ц(има малки изключения, но те са за high speed ). Полиноме ети ти сбито начално 4етиво http://www.robot-electronics.co.uk/acat ... orial.html
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Съб Юли 21, 2012 9:15 pm |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
 Re: I2C интерфейс основи
Уффф, не ми се обяснява, но... ще трябва. 1. Моя първоначален опит с I2C беше на нулева серия pic24. Еррата на този контролер беше... абе дълга. Та може още от тогава да има нещо по-скоро емоционално в отношението ми. 2. И горе съм споменал, че и2ц-то си има място. 3.Тук става въпрос за връзка между два контролера. => едва ли има нужда да е точно и2ц. 4. Имал съм вземане-даване с чипове, на които фронтовете на импулсите трябваше да бъдат до незнамси-колко нс, за да отчетат правилно данните 5. Ако човекът няма осцилоскоп под ръка (както е обикновено при начинаещите) ще има да се чуди дали , да речем, насрещното у-во не е изпратило ACK, или контролера не го е разбрал ... 6. Муха, пишкомерството кой колко се е занимавал с контролери или каквото и да е друго ми е чуждо. Тук има няколко образа, с които предполагам, че с удоволствие можете да обмените малко пишкометрични данни, но по-добре отвори нова тема, че да не осираме и тази.
_________________ Хайде де!
|
| Нед Юли 22, 2012 9:53 pm |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: I2C интерфейс основи
Поименно колега, поименно! 
_________________ 'просто' е технически синоним на 'красиво'
|
| Пон Юли 23, 2012 2:45 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: I2C интерфейс основи
@dan - че е крив на пиковете крив е.
Ама с 18-ки само с готови библиотеки съм работил и всичките са си бачкали ок. Въобще и не съм го разучавал модула им.
За 24-ките с малко инат си направих една библиотека на асемблер.
Колкото до осцилоскопа - първите си устройства съм ги пускал без скоп. А досега само с един чип имах зор с пускането, ама вината не беше в хардуера.
И в общи линии не можеш да бягаш постоянно от този интерфейс - има доста интересни джаджи само с такъв. Даже честно казано го предпочитам за комуникация с няколко различни джаджи по платката. Примерно комбинацията RTC, EEPROM, термометър/и (и евентуално някой друга джиджавка) си става супер само на две жици.
|
| Пон Юли 23, 2012 9:13 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 Re: I2C интерфейс основи
I2C е рядко дърво и точка по въпроса  Към ден днешен, за да ползвам I2C, трябва да ми плащат поне двойна заплата  Предпочитам да си изрутя 12 жици и да си пусна 10 SPI дивайса, от колкото да побъркам процесора от следене на евенти и обикаляне из безмислени стейт машини с 10 I2C дивайса. А 1MHz I2C пък е 20 годишен ръждив голф с нови лети джанти.  Мнението ми да не се приема като препоръка.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Вто Юли 24, 2012 8:42 am |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|