реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Компас HMC 5883L в режиме автоинкремента адреса, зажимает SDA
Serj78
сообщение Apr 23 2013, 09:27
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Проблема в следующем- пытаюсь работать с HMC 5883L в режиме автоинкремента адреса., софтовый i2C.
Cами функии i2с работают на аналогичном хонейвелловском компасе ( HMC 6352) без проблем.

Cудя по даташиту после инициализации ( или просто после включения- по умолчанию стоит режим работы по запросу)
надо просто подать адрес на чтение и потом 6 раз подряд прочитать данные.

то есть ST- DA- RD -RD-RD-RD-RD-RD-SP ( DA-divice adress, RD- read data, ST- start, SP- stop)

Однако после этого алгоритма устройство "не отпускает" шину SDA.. и дальнейшее считывание превращается в мешанину импульсов
Если перед этим принудительно командой записать адрес регистра (3), (ST-DA-RA-SP)
то происходть то же самое.

Если я делаю стоп после одной регистровой пары ( (ST-DA-RA-SP) - задали адрес, затем прочитали 2 регистра подряд (ST- DA- RD -RD-SP),
то устройство шину отпускает, но считанные данные в регистре не меняются . (они кажется и не должны меняться пока не прочитаешь подряд все регистры)
(хотя данные в регистре правдоподобны)
Go to the top of the page
 
+Quote Post
alexPec
сообщение Apr 23 2013, 21:36
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Когда читаете данные, контроллером выдаете 9-й импульс ACK. Если хотите чтоб устройство отпустило шину, надо на 9-м бите последнего байта сделать NACK, т. е. не тянуть на землю SDA. Устройство должно отпустить шину. Это реализовано?
Причина редактирования: Избыточное цитирование. Т. Абсолютно.
Go to the top of the page
 
+Quote Post
Serj78
сообщение Apr 24 2013, 13:42
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Цитата(alexPec @ Apr 24 2013, 01:36) *
Когда читаете данные, контроллером выдаете 9-й импульс ACK. Если хотите чтоб устройство отпустило шину, надо на 9-м бите последнего байта сделать NACK, т. е. не тянуть на землю SDA. Устройство должно отпустить шину. Это реализовано?


Спасибо , это помогло! ( до этого я все все время передавал ask)
Странно, в даташите по этому поводу ничего не сказано..

Остается непонятным также почему с чтением регистровой пары устройство ведет себя по другому- при наличии ask все время- устройство отпускает шину.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Apr 24 2013, 17:13
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(Serj78 @ Apr 24 2013, 17:42) *
Спасибо , это помогло! ( до этого я все все время передавал ask)
Странно, в даташите по этому поводу ничего не сказано..

Остается непонятным также почему с чтением регистровой пары устройство ведет себя по другому- при наличии ask все время- устройство отпускает шину.


Сам вот-вот, позавчера узнал, когда читал доку на опенкоровский i2c контроллер. До этого думал что всегда ACK передавать надо... Оказывается это стандарт, там все написано...
Кстати да, в даташитах ни разу такого не видел, хотя пользую и флешки, и магнитомеры теже, и кодеки и т.д. Везде вроде информация дублируется по i2c, а этот момент нигде не отражен.
Go to the top of the page
 
+Quote Post
Serj78
сообщение Apr 25 2013, 10:41
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Алекс, я видел в параллельной теме что вы писали про недостаточную емкость для set/reset.

У меня наблюдаются четкие провалы напряжения на ней( 2 иголки) с очень резким спадом и линейным фронтом. Длительность спада менее 1мкс, фронта -100мкс.
высота иголки (глубина "провала")- 350мв, общее напряжение на конденсаторе - 2.2в

Иголки идут парами с частотой измерений, между иголками 1800 мкс. Спады этих иголок совпадают с фронтами импульса на конденсаторе 0.22мкф (между ногами 8 и 12, SetP, SetC)

Компас работает корректно, по крайней мере показания не нулеые а от +600 до -600 примерно при дефолтном усилении (диапазон 1.3 гаусс)

На какую глубину были провалы напряжения у вас?
Go to the top of the page
 
+Quote Post
alexPec
сообщение Apr 25 2013, 12:07
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(Serj78 @ Apr 25 2013, 14:41) *
Алекс, я видел в параллельной теме что вы писали про недостаточную емкость для set/reset.

У меня наблюдаются четкие провалы напряжения на ней( 2 иголки) с очень резким спадом и линейным фронтом. Длительность спада менее 1мкс, фронта -100мкс.
высота иголки (глубина "провала")- 350мв, общее напряжение на конденсаторе - 2.2в

Иголки идут парами с частотой измерений, между иголками 1800 мкс. Спады этих иголок совпадают с фронтами импульса на конденсаторе 0.22мкф (между ногами 8 и 12, SetP, SetC)

Компас работает корректно, по крайней мере показания не нулеые а от +600 до -600 примерно при дефолтном усилении (диапазон 1.3 гаусс)

На какую глубину были провалы напряжения у вас?


Да так не скажу, не помню, а железки той нет под рукой сейчас, 3 года назад делал. Помню что конденсатор ставил керамический на 4,7 или на 10 мкф (выпаял с винчестера дохлого). После этого сходу все заработало, разрешение по азимуту получал не хуже 0,5 градуса точно. Еще помню когда проседало питание некоторые биты (после измерения) сбрасывались в дефолт, хотя не должны были. После установки керамики как записывал, так и читались
Так что если точность нормальная, болтанки результатов нет, то значит все ОК. А что беспокоит то собственно?
Go to the top of the page
 
+Quote Post
Serj78
сообщение Apr 25 2013, 16:40
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Цитата(alexPec @ Apr 25 2013, 16:07) *
Да так не скажу, не помню, а железки той нет под рукой сейчас, 3 года назад делал. *////
После установки керамики как записывал, так и читались
Так что если точность нормальная, болтанки результатов нет, то значит все ОК. А что беспокоит то собственно?


Беспокоит насколько близко подошел к пределу, ибо величина провалов не нормирована sm.gif.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016