Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите пожалуйста с I2C в lpc2148
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Eugene.L
Доброго времени суток всем. С армами дружу совсем недавно, вот столкнулся с проблемой решения которой пока не нахожу.
Контроллер сопряжен через I2C с ЦАПом ad5315 по средствам I2C. МК должен работать в режиме МАСТЕР соотвественно ЦАП в режиме СЛЕЙВ. Задача проста, послать по шине адрес ЦАПа, указатель (Pointer) и значения старший байт и младший, всего получается 4 байта.
Как я понял, необходимо для начала записать в регистр I2С0ADR - адрес ведомого устройства т.е. моего ЦАПа(или этот регистр хранит адрес самого МК при работе в слейв режиме???). Далее в I2С0DAT пишем поинтер, после чего :
I2С0CONCLR = 0x000000FF; //Clear all I2C settings
I2С0CONSET = 0x00000040; //Enable the I2C interface
I2С0CONSET = 0x00000020; //Start condition
НО!! после данных операций мне же надо проверить бит подтверждения ACK? Проверяю его вычитав I2С0STAT, но почемуто ЦАП мне не присылает его. В чем я неправ?
2й вопос
Возможно ли повторить данные операции для передачи последующих данных?
Зарание спасибо!
П.С. если у кого тоуже есть готовая процедурка для подобных задач, буду очень признателен если позволите на нее взглянуть. smile.gif
zltigo
Цитата(Eugene.L @ Jul 16 2009, 15:22) *
Доброго времени суток всем. С армами дружу совсем недавно...

Ну, поскольку I2C контроллеру используемому в LPC уже десятки лет, то достаточна и дружба с, например, 51 smile.gif.
Цитата
П.С. если у кого тоуже есть готовая процедурка для подобных задач, буду очень признателен если позволите на нее взглянуть. smile.gif

Берем образцы исходников работы с I2C с сайта призводителя. На этом форуме тоже неоднократно выкладывались, в том числе и мной.
Годятся и можество примеров любых филипсовских контроллеров и соответственно тонны описаний работы.
Eugene.L
Цитата(zltigo @ Jul 16 2009, 15:51) *
Ну, поскольку I2C контроллеру используемому в LPC уже десятки лет, то достаточна и дружба с, например, 51 smile.gif.

Берем образцы исходников работы с I2C с сайта призводителя. На этом форуме тоже неоднократно выкладывались, в том числе и мной.
Годятся и можество примеров любых филипсовских контроллеров и соответственно тонны описаний работы.


Спасибо за скорый ответ. Нашел проблему такиsmile.gif....дело было d подтягивающих резисторах, чуток с номиналом ошибся, теперь почти все гуд...
Вот написал процедуру для передачи по И2С:
Код
void SetDACI2C(int Point, int DACh,int DACl)
{
I2C0CONCLR     = 0x000000FF;                    //Clear all I2C settings
I2C0CONSET     = 0x00000040;                     //Enable the I2C interface
I2C0CONSET     = 0x00000020;
     while(I2C0STAT!= 0x08);
I2C0DAT = 0x18;                                                      //Send Address of AD5315
I2C0CONCLR     = 0x08;
     while(I2C0STAT!= 0x18);
I2C0DAT = Point;                                                      //Send Pointer for select DAC#
I2C0CONCLR     = 0x08;
     while(I2C0STAT!= 0x28);
I2C0DAT = DACh;                                                     // Send High Byte of value
I2C0CONCLR     = 0x08;
     while(I2C0STAT!= 0x28);
I2C0DAT = DACl;                                                     // Send Low Byte of value
I2C0CONCLR     = 0x28;


но теперь новая трабла, когда передаю байт данных I2C0DAT = Point; мне в подтверждение приходит код 0x08h (START Transmitted). не подскажете в чем ошибка?
Спасибо
SasaVitebsk
У меня после передачи старт-условия есть
I2CONCLR = 0x20; //--- Сбрасываем флаг обработки старт условия ---

Но вы бы лучше поискали исходники чьи-нибудь, что вам предлагали.
У меня как-то посложнее написано. Попытки обработать ситуёвины нестандартные предусмотрены.
Eugene.L
Цитата(SasaVitebsk @ Jul 16 2009, 23:27) *
У меня после передачи старт-условия есть
I2CONCLR = 0x20; //--- Сбрасываем флаг обработки старт условия ---

Но вы бы лучше поискали исходники чьи-нибудь, что вам предлагали.
У меня как-то посложнее написано. Попытки обработать ситуёвины нестандартные предусмотрены.

Спасибо, помоглоsmile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.