Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Симуляция eeprom I2C

Непрочитано 11.03.2016, 17:47  
Lexil
Частый гость
 
Регистрация: 06.12.2008
Сообщений: 49
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 8 сообщении(ях)
Lexil на пути к лучшему
По умолчанию Симуляция eeprom I2C

Добрый день!

Проект содержит atmega2560 и 24FC512.

При считывании большого объёма информации (около 2000 байтов) в процессе симуляции выскакивает 5 -7 предупреждений:
[i2cmem timing] Repeated start setup time violated. Clock positive edge was at
114.0660977m, setup time is 300.p. min. setup time is 250.n ).

Если очистить память и запустить процесс чтение/запись то количество предупреждений увеличивается до 50.

Возникло несколько вопросов:
1. Как остановить выполнение симуляции после возникновения предупреждения?
2. Что не нравится программе симуляции?
3. Что означают значения 300.p и 250.n ?
Реклама:
Lexil вне форума  
Непрочитано 11.03.2016, 22:00  
Lexil
Частый гость
 
Регистрация: 06.12.2008
Сообщений: 49
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 8 сообщении(ях)
Lexil на пути к лучшему
По умолчанию Re: Симуляция eeprom I2C

Дополнение.

//Ошибка возникает в функции SoftI2CWriteByte400 в момент передачи //байта выбора ОЗУ:

unsigned char SoftI2CWriteByte400(unsigned char data)
{
unsigned char i,ack;
for(i=0;i‹8;i++)
{
SOFT_I2C_SCL_LOW;
Q_DEL_250ns;
if(data & 0x80)
SOFT_I2C_SDA_HIGH;
else
SOFT_I2C_SDA_LOW;
// Следующая задержка (H_DEL_250ns по непонятной причине не //выполняется.
// смена данных и установление SCL (SOFT_I2C_SCL_HIGH происходит //одновременно,
// что и фиксирует симулятор. Микросхема соответственно не
// выбирается - нет ack.
H_DEL_250ns;
SOFT_I2C_SCL_HIGH;
H_DEL_250ns;
while((SCLPIN & (1‹‹SCL))==0);
data=data‹‹1;
}
//The 9th clock (ACK Phase)
SOFT_I2C_SCL_LOW;
Q_DEL_250ns;
Q_DEL_250ns;
SOFT_I2C_SDA_HIGH;
H_DEL_250ns;
H_DEL_250ns;
SOFT_I2C_SCL_HIGH;
H_DEL_250ns;
H_DEL_250ns;
ack=!(SDAPIN & (1‹‹SDA));
SOFT_I2C_SCL_LOW;
H_DEL_250ns;
//H_DEL_250ns;
return ack;
}
//Приложил картинку с осциллографа - справа мелкий масштаб с //корректным запросом и начало запроса с ошибкой. Слева вверху //увеличил с ошибкой, внизу без ошибки.

//Ошибка 5 штук на 2000 операций.
//Загадка.

//Если использовать TWI такое не наблюдается, но есть другие проблемы // (в каких-то конкретных условиях происходит зависание в TWI, //прерывания от портов перестают обслуживаться на 40 мс).
//По этой причине от него отказываюсь от TWI.
Миниатюры:
Нажмите на изображение для увеличения
Название: I2CwriteByte.JPG
Просмотров: 39
Размер:	227.4 Кб
ID:	89441  
Lexil вне форума  
Непрочитано 11.03.2016, 22:10  
Lexil
Частый гость
 
Регистрация: 06.12.2008
Сообщений: 49
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 8 сообщении(ях)
Lexil на пути к лучшему
По умолчанию Re: Симуляция eeprom I2C

Дополнение.

Пропал SCL - схлопнулся.
Миниатюры:
Нажмите на изображение для увеличения
Название: I2CwriteByte2.JPG
Просмотров: 39
Размер:	88.7 Кб
ID:	89443  
Lexil вне форума  
Непрочитано 13.03.2016, 09:55  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Симуляция eeprom I2C

Согласно спецификации I2С, смена сигналов на линии данных (SDA) возможна при низком уровне на линии тактирования (SCL). У вас просто не выдержаны требования протокола. Предупреждения были о несоответствии таймингов сигналов. И почему бы вам не использовать аппаратный модуль для I2C?
NewWriter вне форума  
Непрочитано 13.03.2016, 15:22  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Симуляция eeprom I2C

Сообщение от NewWriter Посмотреть сообщение
почему бы вам не использовать аппаратный модуль
на реальных
Сообщение от Lexil Посмотреть сообщение
atmega2560 и 24FC512
и проверять в железе? а то ведь минздрав предупреждает - онанизм с симуляторами плохо отражается на интеллекте программиста
jump вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
I2C EEPROM. Нужно отследить факт передачи данных. ArtemKolesnikov Микроконтроллеры, АЦП, память и т.д 3 19.02.2013 14:42
Протеус и система зажигания после симуляции не сохраняет настройки cfif11 Proteus 23 04.02.2012 01:26
Загрузка прошивок в I2C EEPROM в Proteus Dok_Alex Proteus 1 21.08.2010 10:19
Запись в I2C EEPROM yel Микроконтроллеры, АЦП, память и т.д 8 07.03.2007 16:08
24c256 i2c CVAVR и симуляция в PROTEUS сделал пример avr123-nm-ru Микроконтроллеры, АЦП, память и т.д 1 09.06.2006 09:29


Часовой пояс GMT +4, время: 10:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.