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

 
 
 
Reply to this topicStart new topic
> Аппаратный I2C в LPC2148, Работа с аппаратным I2C
LEXIS
сообщение May 25 2011, 04:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 10-10-08
Пользователь №: 40 829



При работе программы не работает аппаратный I2C. Насколько понял косяк в обработчике прерывания, в симуляторе Keil в I2STAT постоянно перескакивает из 0х8 в 0х20. Т.е. в железе должен быть виден по осциллографу хотя бы START I2C, а его нет. И можно ли в обработчике использовать внешние функции типа printf?
В архиве моя программа.
Прикрепленные файлы
Прикрепленный файл  HP03.zip ( 2.58 килобайт ) Кол-во скачиваний: 31
 
Go to the top of the page
 
+Quote Post
yashok
сообщение May 25 2011, 05:58
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 31-08-10
Из: Минск-Витебск
Пользователь №: 59 203



попробуйте для начала сделать переменную не просто lock, а volatile unsigned char lock и увеличить стек для прерываний.
Go to the top of the page
 
+Quote Post
LEXIS
сообщение May 26 2011, 08:17
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 10-10-08
Пользователь №: 40 829



Рекомендация yashok не помогла, то же самое. Как вообще отлаживать аппаратный I2C в Keil?
Go to the top of the page
 
+Quote Post
yashok
сообщение May 26 2011, 09:42
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 31-08-10
Из: Минск-Витебск
Пользователь №: 59 203



В железе в прерывания попадаете?? Линии к плюсу подтянуты??
Go to the top of the page
 
+Quote Post
LEXIS
сообщение May 26 2011, 14:52
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 10-10-08
Пользователь №: 40 829



В симуляторе да попадает, а реально в железе не могу посмотреть - сгорел программатор-отладчик. Линия SDA подтянута к 3.3В, а линия SCL нет, т.к. по спецификации на HP03S она не должна быть подтянута, хотя это не долго проверить.
Go to the top of the page
 
+Quote Post
Nixon
сообщение May 26 2011, 15:00
Сообщение #6


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



Цитата(LEXIS @ May 26 2011, 17:52) *
Линия SDA подтянута к 3.3В, а линия SCL нет, т.к. по спецификации на HP03S она не должна быть подтянута, хотя это не долго проверить.
Притягивайте тоже. HP03S тут не причем.


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
LEXIS
сообщение May 27 2011, 10:55
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 10-10-08
Пользователь №: 40 829



Подтянул, все заработало. НО, при первом чтении одни 0, при последующих данные появляются, но последний байт может изменяться при чтении. Попробую сделать синхронизацию обработчика I2C с читаемыми данными, скорее всего косяк здесь зарылся.
yashok СПАСИБО за помощь.

Nixon тоже спасибо, надо доверять спецификации на I2C, а не даташиту на железяку.
Go to the top of the page
 
+Quote Post

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

 


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


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