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

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

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

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

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

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


 
Опции темы

Адресация магнетометра 5883L

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

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

Вообщето, в байте адреса устройства на шине младший байт означает направление - запись/чтение. Отсюда и адреса 0х3C, 0x3D.
Я не знаю, умеет ли тот графический редактор правильно работать с последовательностями запись/чтение.
При чтении регистра, нужно сначала записать в магнетометр номер регистра, затем сформировать повторный старт и отправив адрес устройства с битом чтения и далее принять как минимум два байта. Судя по даташиту, там автоинкремент адреса регистров, поэтому можно продолжить чтение, приняв все 6 байт, а чтобы остановить чтение, нужно "не подтвердить" последний байт и остановить чтение.
NewWriter вне форума  
Непрочитано 27.03.2017, 08:25  
GarryZZ
Гражданин KAZUS.RUN
 
Регистрация: 18.07.2010
Адрес: Днепр, Украина
Сообщений: 779
Сказал спасибо: 453
Сказали Спасибо 421 раз(а) в 292 сообщении(ях)
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
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
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
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
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,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
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, время: 12:29.


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