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

 
 
> PIC18 + C18 + Proteus = I2C ?, помогите разобраться
comper
сообщение May 14 2012, 20:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 7-03-08
Из: Минск
Пользователь №: 35 707



Может кто сталкивался с такой проблемой:
пытаюсь работать с RTC в протеусе. На них нареканий нет, они все воспринимают и отображают.
Использую родную библиотеку из C18 для работы по I2C. отправляю ПИКом данные в часы. А посылается всякая чушь. Отслеживаю I2C дебагером. То 0xDO пройдет нормально, за ним адрес нулевой 0х00, то вместо нулевого адреса отправится 0х01. То посылаю туда 0xD1 для записи, а отсылается 0xD0, за ним Ack приходит а заним уходит 0x01...осциллографом смотрю - там какие-то импульсы короткие проскакивают по SDA, как будто случайные в то время, как по SCL идут тактовые импульсы на передачу байта.
пробовал на pic18f452 а потом еще на pic18f45k20 попробовал - то же самое.
при этом на атмеле i2c работает.

использую proteus 7.7 SP2
подскажите, если можно по этой краткой информации что-то сказать, может это протеус че-то мутит, или это библиотека c18 что-то не то делает??
заранее спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
fox2trot
сообщение May 14 2012, 20:12
Сообщение #2


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

Группа: Участник
Сообщений: 87
Регистрация: 22-09-07
Из: Орел
Пользователь №: 30 754



Цитата(comper @ May 15 2012, 00:09) *
Может кто сталкивался с такой проблемой:
пытаюсь работать с RTC в протеусе. На них нареканий нет, они все воспринимают и отображают.
Использую родную библиотеку из C18 для работы по I2C. отправляю ПИКом данные в часы. А посылается всякая чушь. Отслеживаю I2C дебагером. То 0xDO пройдет нормально, за ним адрес нулевой 0х00, то вместо нулевого адреса отправится 0х01. То посылаю туда 0xD1 для записи, а отсылается 0xD0, за ним Ack приходит а заним уходит 0x01...осциллографом смотрю - там какие-то импульсы короткие проскакивают по SDA, как будто случайные в то время, как по SCL идут тактовые импульсы на передачу байта.
пробовал на pic18f452 а потом еще на pic18f45k20 попробовал - то же самое.
при этом на атмеле i2c работает.

использую proteus 7.7 SP2
подскажите, если можно по этой краткой информации что-то сказать, может это протеус че-то мутит, или это библиотека c18 что-то не то делает??
заранее спасибо

Определите восьмибитный режим. У вас по умолчанию стоит 16 бит похоже.
Go to the top of the page
 
+Quote Post
comper
сообщение May 14 2012, 21:08
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 7-03-08
Из: Минск
Пользователь №: 35 707



Цитата(fox2trot @ May 15 2012, 00:12) *
Определите восьмибитный режим. У вас по умолчанию стоит 16 бит похоже.


а разве там вообще можно передавать данные по 16бит? там только выбор между 7-и и 10-и битным адресом, и то в слэйв режиме. А данные только по 8 бит.
Я может просто не вижу ничего такого...но в настройках MSSP модуля про 16бит вообще ничего нет.
и в софтверном режиме пробовал и хардверную библиотеку подключал.

в софтверном происходит то что я выше описал, а в хардверном вообще проходит пару байтов и то неверных и куча знаков вопроса в дебагере...


Сообщение отредактировал comper - May 15 2012, 08:10
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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