реклама на сайте
подробности

 
 
> Помогите пожалуйста с I2C в lpc2148
Eugene.L
сообщение Jul 16 2009, 12:22
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 6-01-09
Пользователь №: 42 952



Доброго времени суток всем. С армами дружу совсем недавно, вот столкнулся с проблемой решения которой пока не нахожу.
Контроллер сопряжен через 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Jul 16 2009, 12:51
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Eugene.L @ Jul 16 2009, 15:22) *
Доброго времени суток всем. С армами дружу совсем недавно...

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

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Eugene.L
сообщение Jul 16 2009, 14:56
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 6-01-09
Пользователь №: 42 952



Цитата(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). не подскажете в чем ошибка?
Спасибо
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 06:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016