Proteus не обновляет данные при симуляции

Обсуждаем цифровые устройства...
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Чт дек 29, 2011 16:25:56

Сообщение gruffi »

Добрый день, форумчане! Подскажите пожалуйста, почему proteus не обновляет данные при симмуляции. Работаю с ds1307. Дату и время могу установить без проблем, а при получении, такое впечатление, что идет запоминание старых значений. Часы шлет верно, а остальное - либо значение часов, либо мусор. В чем может быть прикол.
P.S.: Proteus 7.10
Реклама
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

1. Нужно приложить проект.
2. http://radiokot.ru/forum/viewtopic.php?f=2&t=3739
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Чт дек 29, 2011 16:25:56

Сообщение gruffi »

Проект прилагаю, сам проект proteus и hex-файл. Если нужны исходники, то могу и их приложить. I2C программный. IDE - AVR Studio 5
Вложения
project.rar
(19.58 КБ) 137 скачиваний
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

А кому нужен проект без исходников, пронаблюдать то что вы описали?..
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Чт дек 29, 2011 16:25:56

Сообщение gruffi »

Как-то не подумал :))...Бывает...Прилагаю проект...
Вложения
prIncubator.rar
(74.22 КБ) 161 скачивание
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Сб авг 28, 2010 13:29:43
Откуда: Докучаевск, Донецк

Сообщение Финский »

Код: Выделить всё

//----------------
void I2C_SDA_SET()
{
	I2C_PORT |= bit(SDA);
Нужно порт переводить на вход, а не выставлять уровень "1" внаглую. Единица получается за счет подтяжки шины резисторами, которых, кстати, у вас нет. Ваш контроллер не выдает ACK на шину, первый байт от часов читается нормально, а дальше - мусор. В протеусе есть виртуальный инструмент I2C-Debugger, прицепите его на шину, и посмотрите, что там у вас творится.
[color=#800000]Техноманьяк и IT-шаман. Танцы с бубном на дому.[/color]
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Чт дек 29, 2011 16:25:56

Сообщение gruffi »

Спасибо, буду разбираться...а по-поводу резисторов, то они были, но каком-то форуме прочитал, что в proteus надо пользоваться pullup, вот и убрал...
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Сб авг 28, 2010 13:29:43
Откуда: Докучаевск, Донецк

Сообщение Финский »

Pullup в протеусе тоже есть. В библиотеке элементов, в разделе Modelling Primitives. Ставить обязательно, по спецификации шины.
И еще протеус вам неоднозначно намекает, что на соединении PC0 и SDA возникает конфликт логических уровней. Вот как раз из-за принудительной установки "1" на порту.
[color=#800000]Техноманьяк и IT-шаман. Танцы с бубном на дому.[/color]
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Чт дек 29, 2011 16:25:56

Сообщение gruffi »

еще раз спасибо, буду устранять недоделки:)
Ответить

Вернуться в «Цифровая техника»