roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 11:38

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 02:48 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Здравствуйте уважаемые форумчане. Решил я сделать одно устройство - чтение/запись байта в FLASH-память AT24C04. Общение с этой памятью производится по I2C интерфейсу. Записываю в адрес 0x00 значение 47 ("G"). Затем пытаюсь по нажатияю кнопки PORTD.2 считывать значение и выводить его в COM-порт. Проблема в том что при отладке не только ничего не считывается но и ничего не записывается в память. Мучаюсь с этим уже часов 5.
Ниже прилагаю исходник интерфейса и код. По схеме к контроллеру (Tiny2313) подходят следующие сигналы: PORTB.0 = SDA памяти, PORTB.1 = SCL памяти, PORTD.0 = RXD max232, PORTD.1 = TXD max232.


Вложения:
Комментарий к файлу: новый исправленный код
usard_i2c.rar [57.15 КиБ]
Скачиваний: 34
Комментарий к файлу: схема интерфейса
.JPG
.JPG [ 35.84 КиБ | Просмотров: 1631 ]
Комментарий к файлу: код
usard_i2c.rar [55.89 КиБ]
Скачиваний: 26

_________________
if(!Operate) Read(pDatasheet);


Последний раз редактировалось galex1981 03 янв 2009, 23:26, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 10:00 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
а подтяжки твоя i2c принципиально не носит?
религия не позволяет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 13:07 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
galex1981 писал(а):
Мучаюсь с этим уже часов 5.

Сделайте в CVAVR по примеру в нем же - и все будет работать. Там и про подключение i2c написано. Отлаживать можно в PROTEUS - будет видно сигналы передаваемые по линиям и что куда пишется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 15:30 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
EdGull писал(а):
а подтяжки твоя i2c принципиально не носит?
религия не позволяет?

Эд, поясни, какие подтяжки нужны для I2C, если сопротивления подтягивающие, то на аналогичных схемах я не замечал подобного

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 15:42 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
На каких аналогичных?
Шины SCL/SDA должны быть подтянуты к Vcc через резисторы (обычно 4.7 кОм).

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 16:11 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Vooon правильно сказал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 19:35 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
galex1981 писал(а):
какие подтяжки нужны для I2C, если сопротивления подтягивающие, то на аналогичных схемах я не замечал подобного


А в даташите замечал ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 22:11 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Да на подтягивающие резисторы внимания я то и не обратил - и в CVAVR про них написано :sorry:

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 22:27 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
galex1981 писал(а):
и в CVAVR про них написано :sorry:

CVAVR - это сила брат !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 03 янв 2009, 23:29 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
В общем разобрался я, огромное спасибо вам! Основная проблема в том что не были установлены подтягивающие резисторы, соответственно сигналы на Eprom приходили мусорные. Резисторы подпаял. Также после записи данный в Eprom нужно добавить небольшую задержку, иначе просто не успеет дописаться. В первом сообщении добавил новые переделаные исходники. Частая проблема человека это невнимательность и беглый просмотр даташита...

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 13 янв 2009, 16:06 
Не в сети
Аватара пользователя

Зарегистрирован: 05 фев 2008, 15:33
Сообщения: 2687
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович
Похожая проблемма. Сначала не поставил подтягивающих резисторов.
Потом поставил на 1кОм. Все равно как то не фурычит. Обязательно надо 4.7кОм???
А то у меня есть только резисторы на 1 кОм и на 500 Ом.

_________________
Никто кроме нас!!!
4Robots.ru - Все для роботов!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 13 янв 2009, 16:18 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Поставь последовательно 5 подряд 1 кОм :crazy:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 13 янв 2009, 16:48 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
2 ком наверн будут работать. в панелях приборов ВАЗ по 1.5 ком подтяжки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 13 янв 2009, 18:20 
Ещё за ёмкостью линии следить приходится... Провода-то длинные поди... Да и наверное не отдельные проводки, а жгут целый...???


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ошибка в коде по реализации I2C
СообщениеДобавлено: 13 янв 2009, 19:46 
Не в сети
Аватара пользователя

Зарегистрирован: 05 фев 2008, 15:33
Сообщения: 2687
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович
avr123.nm.ru писал(а):
2 ком наверн будут работать. в панелях приборов ВАЗ по 1.5 ком подтяжки.

А в чем смысл увеличения номинала Резистора в данном случае ...
U = RI, U = 4.2 В, R = 1000 Ом
I = U/R =4.2 милиА, соответственно при увеличении R мы уменьшаем I.
Вопорос: Почему это должно помочь I2C ??? :oops:

_________________
Никто кроме нас!!!
4Robots.ru - Все для роботов!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO