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

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

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

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

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

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


 
Опции темы

Помогите разобраться с шиной i2c

Непрочитано 06.03.2018, 16:20  
Alexei55555
Прохожий
 
Регистрация: 06.03.2018
Сообщений: 4
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Alexei55555 на пути к лучшему
По умолчанию Помогите разобраться с шиной i2c

Имеется плата orange pi zero plus и датчик MPU9250 подключенные по шине i2c
В результате опроса датчик передает одни -1
вот сам код и работа:
Нажмите, чтобы открыть спойлер
#include ‹iostream›
#include ‹wiringPi.h›
#include ‹wiringPiI2C.h›
using namespace std;
int main()
{
wiringPiSetup();
int i=0x68;
int n;
int a=wiringPiI2CSetup(i);
if (a‹0)
{
std::cout‹‹"error initializacion"‹‹std::endl;
}
std::cout‹‹"vvedite kolichestvo znachenie n=";
std::cin››n;
std::cout‹‹endl;
int j;
for (int j=1; j‹n; j++)
{
int Ax=wiringPiI2CReadReg8(i,0x3B)‹‹8|wiringPiI2CReadR eg8(i,0x3C);
int Ay=wiringPiI2CReadReg8(i,0x3D)‹‹8|wiringPiI2CReadR eg8(i,0x3E);
int Az=wiringPiI2CReadReg8(i,0x3F)‹‹8|wiringPiI2CReadR eg8(i,0x40);
int t=wiringPiI2CReadReg8(i,0x41)‹‹8|wiringPiI2CReadRe g8(i,0x42);
std::cout‹‹Ax‹‹" "‹‹Ay‹‹" "‹‹Az‹‹" "‹‹t‹‹std::endl;
}
return 0;
}

Нажмите, чтобы открыть спойлер
root@orangepizeroplus:/home# ./output
vvedite kolichestvo znachenie n=5

-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
root@orangepizeroplus:/home#

Такая же проблема была при подключении к ардуине и решалась подключением к земле осциллографа причем выключенного, датчик начинал прекрасно работать, но здесь это не работает.
Может дело в статике или ещё в чем-то
вообщем может кто сталкивался подскажите плиз в чем может быть дело и как это исправить
Реклама:
Alexei55555 вне форума  
Непрочитано 06.03.2018, 17:28  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,272
Сказал спасибо: 11,856
Сказали Спасибо 4,157 раз(а) в 3,175 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

Alexei55555
1. Схема соединений, тип и длина проводников, подтяжка к питанию,…?
2. Если уж идёт код, то неплохо в него включить все используемые подпрограммы.
3. А логическим анализатором и осциллографом на шине посмотреть происходящее?
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 06.03.2018, 17:50  
Alexei55555
Прохожий
 
Регистрация: 06.03.2018
Сообщений: 4
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Alexei55555 на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

1. соединение простое sda платы c sda датчика и т.д.
на ардуине пробовал разные проводники сейчас на orange обычные "папа-мама"
на счет подтяжки не уверен но визуально на датчике какие-то smd резисторы шине есть с непонятными номиналами
2. код чисто для тестовой проверки на 99% дело не в нем
3. осциллограф показывает примерно 3в на sda и scl
Alexei55555 вне форума  
Непрочитано 07.03.2018, 01:58  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,272
Сказал спасибо: 11,856
Сказали Спасибо 4,157 раз(а) в 3,175 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

Alexei55555, в DS есть осциллограммы и временные параметры для сигналов I2C.
Насколько наблюдаемое соответствует? Нет ли искажений формы? У осциллографа один канал или два?
Правильно ли выбрана частота для шины?
Таки что там с подтяжкой и к какому напряжению?
Питание у обоих от одного источника и напряжения?
Непонятные сопротивления это как и что даёт их измерение?
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 07.03.2018, 12:23  
DanilinSA
Почётный гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,800
Сказал спасибо: 133
Сказали Спасибо 1,152 раз(а) в 549 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

Подтяжка сколько и куда? Какие резисторы? Как реализован I2C - на открытом коллекторе или обычный выход?
DanilinSA вне форума  
Непрочитано 07.03.2018, 13:02  
dgrishin
Почётный гражданин KAZUS.RUN
 
Регистрация: 12.02.2013
Адрес: На болотах
Сообщений: 1,162
Сказал спасибо: 46
Сказали Спасибо 315 раз(а) в 244 сообщении(ях)
dgrishin на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

Сообщение от Alexei55555 Посмотреть сообщение
датчик передает одни -1
Это не датчик передаёт, а линия всё время остаётся в 1 (подтянутой к 1).

Сообщение от Alexei55555 Посмотреть сообщение
int Ax=wiringPiI2CReadReg8(i,0x3B)‹‹8|wiringPiI2CReadR eg8(i,0x3C);
int Ay=wiringPiI2CReadReg8(i,0x3D)‹‹8|wiringPiI2CReadR eg8(i,0x3E);
int Az=wiringPiI2CReadReg8(i,0x3F)‹‹8|wiringPiI2CReadR eg8(i,0x40);
int t=wiringPiI2CReadReg8(i,0x41)‹‹8|wiringPiI2CReadRe g8(i,0x42);
Чтобы прочитать чего нить из датчика (он slave на линии) в него надо записать адрес, после чего он (датчик) захватит шину и будет передавать данные к мастеру.
А у вас все функции только пытаются прочитать данные с датчика (без предварительной записи адреса).

Сорри похоже адрес для чтения это int i=0x68;
Но называть так адрес - это муветон.

Последний раз редактировалось dgrishin; 07.03.2018 в 14:07. Причина: добавление
dgrishin вне форума  
Сказали "Спасибо" dgrishin
Alexei55555 (13.03.2018)
Непрочитано 08.03.2018, 03:24  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,272
Сказал спасибо: 11,856
Сказали Спасибо 4,157 раз(а) в 3,175 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

Alexei55555
Начните отсюда там все параметры и схема подключения вполне разжеваны. Подтяжки там кстати совсем не видно.
Ну и хороший материал прямо тут на форуме .
Сам по себе датчик не вызывал проблем с использованием и на I2C, и на SPI.

Да и на I2C у этих датчиков вроде как адрес 110100A, что соответствует 0xD0 или 0xD2, в зависимости от состояния входа AD0.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 08.03.2018 в 03:27.
mike-y-k вне форума  
Непрочитано 13.03.2018, 12:14  
Alexei55555
Прохожий
 
Регистрация: 06.03.2018
Сообщений: 4
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Alexei55555 на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

попробовал поменять миникомпьютер на распберри пи 3 та же ситуация
подтяжка здесь вроде все-таки есть если я правильно понял это два резистора по 10 кОм их на этой фотке видно https://kazus.run/forums/showthread.php?t=113741 подключены к линиям и к питанию вроде 3,3 если ошибаюсь пожалуйста поправьте
Цитата:
Да и на I2C у этих датчиков вроде как адрес 110100A, что соответствует 0xD0 или 0xD2, в зависимости от состояния входа AD0.
адрес 0х68 из register map на датчик да и i2c-tools i2cdetect так же определяет
Цитата:
Сам по себе датчик не вызывал проблем с использованием и на I2C, и на SPI.
это да сам работал с mpu6050 на ардуине тож без проблем а тут что не получается (правда там такая проблема быстро осциллографом решалась просто подключал к земле и все начинало работать хоть месяц (причем при длине линии в 1,5м) если не разбирать физически)
Цитата:
Сорри похоже адрес для чтения это int i=0x68;
Но называть так адрес - это муветон.
С этим тож согласен.
извиняюсь просто в спешке подправлял прогу с несколькими датчиками
Цитата:
Как реализован I2C - на открытом коллекторе или обычный выход?
насчет этого не знаю наверное обычный просто первый слышу что есть ещё коллекторный
Цитата:
Питание у обоих от одного источника и напряжения?
пробовал по разному результат увы один
Может у кого ещё остались какие идеи а то у меня уже почти закончились
Alexei55555 вне форума  
Непрочитано 13.03.2018, 14:43  
Yuri222
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,912
Сказал спасибо: 3,106
Сказали Спасибо 3,029 раз(а) в 2,257 сообщении(ях)
Yuri222 на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

Сообщение от Alexei55555 Посмотреть сообщение
насчет этого не знаю наверное обычный просто первый слышу что есть ещё коллекторный
Ну вот чем не идея?
Проверить легко - подключить резистор на землю. Скажем, если есть подтяжка на питание 10 кОм - подключение 10 кОм на землю должно уменьшить напряжение в два раза.

Последний раз редактировалось Yuri222; 13.03.2018 в 14:46.
Yuri222 вне форума  
Эти 2 пользователя(ей) сказали Спасибо Yuri222 за это сообщение:
Alexei55555 (13.03.2018), mike-y-k (13.03.2018)
Непрочитано 13.03.2018, 19:55  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,272
Сказал спасибо: 11,856
Сказали Спасибо 4,157 раз(а) в 3,175 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Помогите разобраться с шиной i2c

Alexei55555, таки восстановить схему шины и разобраться с номиналами нужно. В варианте с arduino тоже наплохо разобраться со схемой. Подвешивание осциллографа в том варианте для обеспечения работоспособности навевает сомнения в наличии согласования линий для шины.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
Alexei55555 (13.03.2018)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Помогите разобраться с генератором igor1000 Электроника средств транспорта 10 05.07.2010 12:53
Помогите разобраться с импульсными стабилизаторами Vas2 Источники питания и свет 8 07.12.2007 17:27
Помогите разобраться с внешней памятью по I2C graham Микроконтроллеры, АЦП, память и т.д 3 16.12.2005 17:01
прога на VB по управлению шиной I2C и CY7C68013 alrond Микроконтроллеры, АЦП, память и т.д 0 08.10.2004 13:25


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


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