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

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

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

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

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

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


 
Опции темы
Непрочитано 26.03.2017, 21:39  
vladmed
Прохожий
 
Регистрация: 26.03.2017
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vladmed на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

GarryZZ, именно то, что мне было нужно, огромное спасибо!
Автоинкремент внутренних адресов оболочка может и умеет, я не умею, буду читать просто по адресам.
Только еще уточнить можно, байт идентификации для чего нужен? Просто контроль правильности работы?
Реклама:
vladmed вне форума  
Непрочитано 26.03.2017, 21:54  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

Вообщето, в байте адреса устройства на шине младший байт означает направление - запись/чтение. Отсюда и адреса 0х3C, 0x3D.
Я не знаю, умеет ли тот графический редактор правильно работать с последовательностями запись/чтение.
При чтении регистра, нужно сначала записать в магнетометр номер регистра, затем сформировать повторный старт и отправив адрес устройства с битом чтения и далее принять как минимум два байта. Судя по даташиту, там автоинкремент адреса регистров, поэтому можно продолжить чтение, приняв все 6 байт, а чтобы остановить чтение, нужно "не подтвердить" последний байт и остановить чтение.
NewWriter вне форума  
Непрочитано 27.03.2017, 08:25  
GarryZZ
Гражданин KAZUS.RU
 
Регистрация: 18.07.2010
Адрес: Днепр, Украина
Сообщений: 754
Сказал спасибо: 450
Сказали Спасибо 397 раз(а) в 279 сообщении(ях)
GarryZZ на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

Сообщение от vladmed Посмотреть сообщение
байт идентификации для чего нужен?
Мм... конструктор... кубики... три компаса разных изготовителей. С разными алгоритмами работы по I2C... Или к примеру все микросхемы фирмы Honeywell, но с разными буквами/цифрами в конце обозначения (скорость, потребление, точность).

Как определить, с чем в данный момент будет работать программа оболочки? Прочитать идентификатор изделия, который обычно присваивается производителем и уникальный для каждого типа/версии изделия.

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

Как то так. А насчет автоинкремента адреса внутренних регистров - это внутренне дело микросхемы, важно понять как ваша графическая оболочка сможет (и сможет ли?) прожевать поток данных из микросхемы, сохранить его где то , затем еще и преобразовать их. А после еще и визуализировать в виде стрелки компаса.

И регистры идентификации тем и хороши, что данные в них всегда есть и всегда предсказуемы. А значит удобны для отладки последовательного чтения трех байт с автоинкрементом или без него.

зы. NewWriter, у меня нет опыта работы с описанной графической оболочкой. Могу только догадываться, что она делает. Подозреваю, что весь нижний уровень реализуется автоматически. Рестарты и АСК. Вывод исключительно на основе картинки из поста на первой странице.

Последний раз редактировалось GarryZZ; 27.03.2017 в 08:30.
GarryZZ вне форума  
Сказали "Спасибо" GarryZZ
mike-y-k (27.03.2017)
Непрочитано 29.03.2017, 10:38  
vladmed
Прохожий
 
Регистрация: 26.03.2017
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vladmed на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

Краткий отчет: устройство успешно работает. Вначале делается переход на continuous mode (0х02 0х00), затем начинаем читать. Запись 0x1Е 0x03 {готовимся работать с внутренним регистром 03} не требуется, сразу начинаем читать регистры 0x03, 0x05 и 0x07, именно так, через один. Формат входных данных 16 bit MSB. Получаемые цифры точно соответствуют сырым данным, получаемым через готовый скетч Arduino, видимо оболочка понимает автоинкремент и совмещает куски 8-bit значений.
Осталось написать математику, не подскажете, где можно посмотреть псевдокод для получения направления на север?
vladmed вне форума  
Непрочитано 29.03.2017, 18:47  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

"Строго на север, порядка 50 м будет туалэт типа сортир, помеченный на карте буквами Мэ и Жо"

Школьную тригонометрию помним? Прямоугольный треугольник с катетами некоторой величины. Как найти длину гипотенузы треугольника и самое главное, угол между гипотенузой и одним из катетов?
Я не знаю, понимает ли ваш графический пакет тригонометрические функции, но в общем случае - направление вектора, то есть, угол между одной из коорд.осей и направлением вектора = арктангенс отношения значений координат.
Поскольку магнетометр трехосевой, сначала считаем в плоскости X-Y, затем ищем направление по Z.
NewWriter вне форума  
Непрочитано 29.03.2017, 22:18  
vladmed
Прохожий
 
Регистрация: 26.03.2017
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vladmed на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

Ну это-то я помню, но тогда шкалы 360 гр. не получается. Впрочем я уже догадался, что надо разбить значения на 4 диапазона. Сейчас мы уже играемся работающим компасом, еще раз спасибо.
vladmed вне форума  
Непрочитано 29.03.2017, 22:35  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

Почему ж не получается? все должно получаться. Отрицательные значения по осям то присутствуют. Надо просто переменные определить как signed int.
NewWriter вне форума  
Непрочитано 30.03.2017, 01:53  
vladmed
Прохожий
 
Регистрация: 26.03.2017
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vladmed на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

Ну пока не получается, с трехмерным пространством что-то мне сложновато, последний раз я с этим сталкивался лет 25 назад...
vladmed вне форума  
Непрочитано 30.03.2017, 08:45  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,559
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Адресация магнетометра 5883L

Сообщение от vladmed Посмотреть сообщение
с трехмерным пространством что-то мне сложновато
1.
2.
Гоголь в помощь!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor на форуме  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Адресация к памяти I2C по адресу Lexil Proteus 2 12.12.2012 12:40
Косвеная адресация и указатели CERGEI1982 Микроконтроллеры, АЦП, память и т.д 7 08.09.2007 18:43
Косвенная адресация. bopohok Микроконтроллеры, АЦП, память и т.д 8 29.04.2007 00:38
Адресация RAM в PIC18 vasseff Микроконтроллеры, АЦП, память и т.д 0 20.04.2007 22:39
Адресация в CompactFlash xelos Микроконтроллеры, АЦП, память и т.д 3 13.10.2004 21:55


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot