Страница 1 из 1

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

Добавлено: Вт июл 17, 2012 11:41:43
gruffi
Добрый день, форумчане! Подскажите пожалуйста, почему proteus не обновляет данные при симмуляции. Работаю с ds1307. Дату и время могу установить без проблем, а при получении, такое впечатление, что идет запоминание старых значений. Часы шлет верно, а остальное - либо значение часов, либо мусор. В чем может быть прикол.
P.S.: Proteus 7.10

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

Добавлено: Вт июл 17, 2012 12:12:51
otest
1. Нужно приложить проект.
2. http://radiokot.ru/forum/viewtopic.php?f=2&t=3739

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

Добавлено: Вт июл 17, 2012 12:24:48
gruffi
Проект прилагаю, сам проект proteus и hex-файл. Если нужны исходники, то могу и их приложить. I2C программный. IDE - AVR Studio 5

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

Добавлено: Вт июл 17, 2012 12:30:32
Goodefine
А кому нужен проект без исходников, пронаблюдать то что вы описали?..

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

Добавлено: Вт июл 17, 2012 12:36:54
gruffi
Как-то не подумал :))...Бывает...Прилагаю проект...

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

Добавлено: Вт июл 17, 2012 13:13:16
Финский

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

//----------------
void I2C_SDA_SET()
{
	I2C_PORT |= bit(SDA);
Нужно порт переводить на вход, а не выставлять уровень "1" внаглую. Единица получается за счет подтяжки шины резисторами, которых, кстати, у вас нет. Ваш контроллер не выдает ACK на шину, первый байт от часов читается нормально, а дальше - мусор. В протеусе есть виртуальный инструмент I2C-Debugger, прицепите его на шину, и посмотрите, что там у вас творится.

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

Добавлено: Вт июл 17, 2012 13:26:02
gruffi
Спасибо, буду разбираться...а по-поводу резисторов, то они были, но каком-то форуме прочитал, что в proteus надо пользоваться pullup, вот и убрал...

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

Добавлено: Вт июл 17, 2012 13:30:11
Финский
Pullup в протеусе тоже есть. В библиотеке элементов, в разделе Modelling Primitives. Ставить обязательно, по спецификации шины.
И еще протеус вам неоднозначно намекает, что на соединении PC0 и SDA возникает конфликт логических уровней. Вот как раз из-за принудительной установки "1" на порту.

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

Добавлено: Вт июл 17, 2012 14:03:37
gruffi
еще раз спасибо, буду устранять недоделки:)