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

 
 
 
Reply to this topicStart new topic
> программный I2C интерфейс
BLex
сообщение Sep 7 2006, 14:48
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 28-01-05
Пользователь №: 2 258



Столкнулся с проблемой. Люди добрые, помоги решить её.
В проектируемом дейвайсе для подключения внешнего АЦП к контроллеру MSP430FW427 использовал I2Cшную библиотеку из slaa206, написанную неким Andreas Dannenberg из всем известной конторы TI. В описании говорилось, что для линий SDA и SCL можно использовать любые комбинации портов и пинов. В макетах девайса линия SDA вешалась на P1.3, а линия SCL - на P1.4 и все замечательно работало. В опытных образцах линию SDA перенесли на P1.0, а SCL - на P1.1 и АЦП перестал отвечать.
Вроде бы в программе все, что требовалось поменял. Осциллографом посмотрел, что контроллер долбит АЦП, но АЦП ни в какую не отвечает (причем АЦП 100% рабочий).
Кто-нибудь сталкивался с такой проблемой? Как её можно решить оставив линии на пинах P1.0 и P1.1 ?
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 7 2006, 16:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(BLex @ Sep 7 2006, 20:48) *
Вроде бы в программе все, что требовалось поменял. Осциллографом посмотрел, что контроллер долбит АЦП, но АЦП ни в какую не отвечает (причем АЦП 100% рабочий).
Кто-нибудь сталкивался с такой проблемой? Как её можно решить оставив линии на пинах P1.0 и P1.1 ?

Раз интерфейс программный, то можно на любых пинах реализовать. А чтобы много в программе не менять, достаточно использовать символические имена сигналов. Типа
#define SDA_PIN 0x01
#define SCL_PIN 0x02

#define RESET_SCL P1DIR|=SCL_PIN
#define SET_SCL P1DIR&=~SCL_PIN

Тогда при смене пинов назначения достаточно будет поменять изменить всего две верхние строчки. А по поводу вашей проблемы думаю, что вы где-то недоправили исходник.
Go to the top of the page
 
+Quote Post
A R T
сообщение Sep 7 2006, 18:49
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-06-06
Из: Сарапула
Пользователь №: 18 275



BLex, расставь точки останова и посмотри на каком этапе не получаешь аккнолиджа от АЦП...


--------------------
Сделал трэш - разбудил Ктулху!!!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 7 2006, 21:47
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(BLex @ Sep 7 2006, 17:48) *
Кто-нибудь сталкивался с такой проблемой? Как её можно решить оставив линии на пинах P1.0 и P1.1 ?
Присоединюсь к предыдущим коллегам: Сделайте простой проект который просто читает одно измерение из АЦП и приложите к сообщению. С картами в руках и разговор будет более предметный. Да и в процессе выкидывания всего лишнего велика вероятность обнаружить "ту самую" ошибку.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
A R T
сообщение Sep 8 2006, 14:24
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-06-06
Из: Сарапула
Пользователь №: 18 275



Вообще то I2C намного проще, чем кажется. Почемуто не получается выложить файл сюда. Дайте мыло - вышлю пример примитивной реализации...


--------------------
Сделал трэш - разбудил Ктулху!!!
Go to the top of the page
 
+Quote Post
BLex
сообщение Sep 12 2006, 11:19
Сообщение #6





Группа: Новичок
Сообщений: 4
Регистрация: 28-01-05
Пользователь №: 2 258



Спасибо всем кто откликнулся.
Проблема решена.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 23:54
Рейтинг@Mail.ru


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