I2C - как проверить на "вшивость"?

Раздел начинающих пользователей
Правила форума
В песочнице можно спрашивать когда незнаешь где спросить.
В песочнице нелзя посылать в гугл
В песочнице можно задавать любой вопрос, но на него могут и неответить.
Песочница для тех, кто начинает свои вопросы с защиты чайников от пинков.
В песочницу будут перетаскиваться вопросы неполучившие ответа.
Песочница - попытка навести порядок.
На песочницу большие надежды.

I2C - как проверить на "вшивость"?

Сообщение MdMx1 (Максим) » 07 дек 2013, 10:26

Доброго времени суток!
Про шшину I2C писано - переписано много.... но пришлось сталкнуться с одной запеньдей.
Начну по порядку. Подключил DS1307 без батарейки (ну не нужно мне сохранять время в данном устройстве), накидал алгоритм во ФК - и ни чего!!! Давай даташиты разбираться - толку ноль покуда регулятор на 3,3 В не подпаял про что в техдокументации не написано а ни строчки. Так вот и вопрос к людям которые ФК крутят длительное время в отличии от меня - как алгоритмом делаеться проверка шины на отсутствие прем - передача, т.е. на ошибку ну и остальные выпендрежи также?
Зарание благодарен за ответ.
Ник: MdMx1
Имя: Максим
(Житомир)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: I2C - как проверить на "вшивость"?

Сообщение mim (mim) » 07 дек 2013, 10:51

Максим писал(а):Про шину I2C писано - переписано много....
А что прочел ты?
Для начала вГугл... и без споров!!! Если возник такой вопрос, - значит не знаешь принципа работы шины.
Затем на на форум, примеры посмотри.
Здесь все описано на твой вопрос...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: I2C - как проверить на "вшивость"?

Сообщение MdMx1 (Максим) » 07 дек 2013, 11:24

Прочел я много... возраст мой не маленький однако. Теорию знаю хорошо и книг под рукой хватает, а потому принцип работы знаю. Датчик влажности действительно дорогой - сам на него в свое время слюни пускал. И виртуальная шина на ПИКе тоже хорошо реализовано, но вопрос был не отом...

// Функция чтения данных из DS1307

uint8_t DS1307Read(uint8_t address,uint8_t *data)

{
uint8_t res; // Результат
I2CStart(); // СТАРТ
res = I2CWriteByte(0b11010000); // адрес DS1307 + бит W
if(!res) return 0; // ОШИБКА
// Передача адреса необходимого регистра
res = I2CWriteByte(address);
if(!res) return 0; // ОШИБКА
I2CStart(); // Повторный СТАРТ
res = I2CWriteByte(0b11010001); // адрес DS1307 + бит R
if(!res) return 0; // ОШИБКА
// Чтение данных с неподтверждением
res = I2CReadByte(data,0);
if(!res) return 0; // ОШИБКА
I2CStop(); // СТОП
return 1;
}

Вот чтото на подобие того алгоритмом собираеться или делать вставку нужно?
Ник: MdMx1
Имя: Максим
(Житомир)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: I2C - как проверить на "вшивость"?

Сообщение mim (mim) » 07 дек 2013, 11:33

MdMx1 писал(а):1. возраст мой не маленький однако.
2. Вот чтото на подобие того алгоритмом собираеться или делать вставку нужно?

1. Мне все равно, какой твой возраст однако... И ссылки я тебе дал не для того чтобы ты к датчику приценивался... Ты бы хоть прочел описание примера...
2. Вот когда прочтешь что я дал, вот тогда сможешь и сам на это ответить. Кроме того в Хелпе описано что и как возвращают макросы.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: I2C - как проверить на "вшивость"?

Сообщение Вячеслав (Вячеслав) » 26 авг 2019, 14:46

Добрый день.
Пытаюсь использовать модель RTC (PCF8563) в Proteus 7.10 и FC for PIC (5.5.2.1). Не получаю верные данные при чтении внутренних регистров часов (всегда FF). Программа и схема в архиве. Картинку и шпаргалку последовательности обмена с модулем по I2C прилагаю. Что делаю не так?
Возможно, есть ошибка в файле PIC_CAL_I2C.c. Менял его, согласно рекомендации с форума (лишняя задержка - кажется). Или модель Proteus-a не работает? Если буду уверен в приведенном тесте программы обмена, могу попробовать железо. Модуль RTC есть. Надеюсь на помощь.
Архив:
p88_I2C_PCF8563.rar

Картинка:
p88_PCF8563_Proteus 7.10.jpg

Шпаргалка:
Адрес, запись, чтение в PCF8563.docx
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Вячеслав
Имя: Вячеслав
(Саратов)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: I2C - как проверить на "вшивость"?

Сообщение Taska (Максим) » 27 авг 2019, 07:51

А откуда ты взял А0 и А1?????
JPG_Screen1.jpg

JPG_Screen.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Taska
Имя: Максим
(Кривой Рог)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: I2C - как проверить на "вшивость"?

Сообщение Вячеслав (Вячеслав) » 27 авг 2019, 10:44

Taska писал(а):А откуда ты взял А0 и А1?????

Спасибо за ответ. Вот отсюда:
"Шина I2C и AVR пример, PCF8583 (RTC) вечный календарь". Статья хорошая. Адреса девайса неверные.
Но и с верными адресами - в шину выдается только 2 байта. Чтение не выполняется.
p88_PCF8563_change1.jpg

p88_model_PCF8563.fcf
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Вячеслав
Имя: Вячеслав
(Саратов)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: I2C - как проверить на "вшивость"?

Сообщение Taska (Максим) » 27 авг 2019, 10:53

Вот твоя программка, все три байта читаются.
JPG_Screen.jpg

По поводу адресов в коде все верно.
JPG_Screen2.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Taska
Имя: Максим
(Кривой Рог)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: I2C - как проверить на "вшивость"?

Сообщение mim (mim) » 27 авг 2019, 11:04

В модели часов есть параметр "Стартап тайм"... его нужно или убрать (Yes/No), или добавить паузу на время инициализации часов (время запуска и нормализации работы) в программу...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: I2C - как проверить на "вшивость"?

Сообщение Вячеслав (Вячеслав) » 27 авг 2019, 15:29

Taska писал(а):По поводу адресов в коде все верно.

Не совсем. При чтении, после задания адреса внутри RTC надо поставить RESTART.
Вот это мне понравилось тем, что заработало с моим файлом CAL_I2C:
p88_model_DS3232_0.jpg

p88_DS3232_Proteus.rar

Спасибо.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Вячеслав
Имя: Вячеслав
(Саратов)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх


Вернуться в ПЕСОЧНИЦА

Кто сейчас на форуме

Пользователь просматривает форум: Google [Bot], Yandex [Bot]