WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Обсуждение, изготовление и проектирование
Аватара пользователя
Komaroff
Программист
Сообщения: 115
Зарегистрирован: Вт дек 06, 2011 11:04 am

WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Сообщение Komaroff » Сб янв 14, 2017 12:44 am

Аббревиатура WIP в заголовке (Work In Progress - работа в процессе) не случайна. Работа идет неспешно. Это не модный нынче "анонс" :), а просто рассказ о предпосылках и целях работы, но не только...
Цель данной работы - тест реальных характеристик TLE5011 и поднятие на новый уровень функционала (будет опробован также и TLE5010).
В джоестроении чип известен по DIY проекту MMjoy2, поднятому стараниями Mega_Mozg_13.
В промышленности основное использование - автомобильная электроника.

Чип неплохо зарекомендовал себя как бюджетный вариант магнитного сенсора для самодельщиков. В ряде случаев также востребованным является свойство измерения углов до 360 градусов.
При более внимательном рассмотрении оказалось, что, приемлемый для целей самодельщиков, TLE5011/TLE5010 имеет серьезные недостатки, в то же время дающие широкое поле для творчества в области оптимизации его использования для серьезных устройств управления компьютерных симуляторов. Именно это и послужило предпосылкой для начала работы.
Целевыми параметрами выбраны линейность, стабильность и количество реальных отсчетов сенсора.
На мой взгляд основная беда с первой характеристикой. По рассчетам, нелинейность в "сыром виде" может достигать аж +-25градусов. Причиной этого являются значительные технологические разбросы фундаментальных параметров микросхемы.

Отдельные, достаточно серьезные, вопросы вызывают указанное производителем ограничение по силе магнитного поля (судя по предупреждению о возможном повреждении, вероятно это связано с GMR технологией TLE501x), а также неоднозначная ситуация с температурной зависимостью основных параметров ТЛЕ (производитель скрыл типовые значения цифр температурных дрейфов, предлагая измерять дрейфы пользователям для каждого экземпляра чипа).

Как уже говорилось, используется конфигурация на основе симбиоза (сплава) собственно TLE5011 и вычислителя на одной печатной плате. Кто не знает, для получения удобного сенсора выходные сигналы TLE5010/11 должны быть пересчитаны по определенному алгоритму.
Подспорьем, значительно упрощающим работу над данной темой, являются собственные наработки по цифровому магнитному сенсору на основе более надежного магниторезистора KMZ41 (цифровой магнитный сенсор R.A.M.S.).
Кроме повышения точности TLE5011, появляется дополнительный бонус в виде прекрасно себя зарекомендовавшего трехпроводного интерфейса вместо родного для ТЛЕ шестипроводного.

Не размениваясь по мелочам, я нашел ресурсы изготовить заводские печатные платы экспериментального образца. Результат на фото. К слову, изготовлен ряд экспериментальных плат для опробования наряду с TLE5011 еще нескольких сенсорных магнитных чипов, имеющих свои достоинства и недостатки. Об остальных вариантах возможно расскажу позже.
TLE_fusion.jpg
TLE_fusion.jpg (52.63 КБ) 566 просмотров

Есть (WIP :)) интересный вариант вычислителя на основе 32-разрядного микроконтроллера с архитектурой ARM в миниатюрном корпусе. Пока можно экспериментировать с такой платкой с этим микроконтроллером на борту
ARM_demo.jpg
ARM_demo.jpg (107.17 КБ) 566 просмотров

Чтобы было с чем сравнивать при экспериментах, в качестве критерия приемлемости, для начала взята величина допустимой нелинейности для сенсоров джойстика Defender Cobra M5 первых серий, в соответствии с которой производилась отбраковка продукции. Величина взята из сообщений разработчиков сенсора Кобры на форумах, в частности БЗС (+-10 градусов, для конкретного экземпляра сенсора на картинке 9,1 градуса). Величина нелинейности +-10 градусов примерно соответствует расчетной нелинейности "сырого" сенсорного чипа Кобры.
Nonlinearity MARS_v4.jpg
Nonlinearity MARS_v4.jpg (104.14 КБ) 566 просмотров

Предстоит еще провести ряд дополнительных экспериментов по надежности и стабильности такого сенсора, в частности идентичность параметров в пределах одной производствнной партии. Ну и "искрометные" краш-тесты всегда были излюбленными темами любителей попкорна :1

Я не могу обещать, что выложу абсолютно все результаты и детали процесса. Но уверен, что работа окажется интересной достаточно широкому кругу сообщества.
PS. В кулуарах :) уже задаются вопросы - сколько же может стоить такой сплав ? Пока не знаю, зависит от результатов экспериментов.

vvm13
Посетитель
Сообщения: 4
Зарегистрирован: Пт дек 23, 2016 7:45 pm

Re: WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Сообщение vvm13 » Вт ноя 07, 2017 9:59 am

Не могли бы вы хоть немножко рассказать, как работать с TLE5010/5011? Предположим, никакого MMjoy2 нет, есть голый Ардуино. В даташите написано, что TLE5010/5011 SPI-совместимый, но у "нормального" SPI общение идёт по двум контактам - MOSI/MISO, здесь же обмен данными по одному и тому же в обе стороны. "Зато" прибавился CLK, и при наличии SCK меня это особенно смущает. Мне (как человеку, который обчитался разнообразных "Ардуино для начинающих" и думал, что всё легко и просто) ясно только, что стандартная библиотека SPI едва ли справится "как есть".

Аватара пользователя
Komaroff
Программист
Сообщения: 115
Зарегистрирован: Вт дек 06, 2011 11:04 am

Re: WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Сообщение Komaroff » Вт ноя 07, 2017 10:24 am

CLK - это входной тактовый сигнал частотой 4 МГц. Нужен для тактирования внутренних функциональных элементов ТЛЕ.
Непосредственно к SPI не относится.
Под совместимостью с SPI вероятно подразумевается возможность работы с "чистым" SPI портом микроконтроллера при условии наличия схемного решения для избежания встречного одновременного включения выходов ТЛЕ и МК на один провод. ТЛЕ не нужна одновременная передача и прием данных, возможность которой обеспечивает "чистый" SPI. В каждый отдельный момент времени ТЛЕ или принимает данные (команду) или передает данные в МК. Поэтому ТЛЕ и делает по одному проводу обмен данными, тактируемыми сигналом SCK.

vvm13
Посетитель
Сообщения: 4
Зарегистрирован: Пт дек 23, 2016 7:45 pm

Re: WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Сообщение vvm13 » Вт ноя 07, 2017 11:05 am

Спасибо. Нет ли у вас примеров/кода, которым вы могли бы поделиться?

vvm13
Посетитель
Сообщения: 4
Зарегистрирован: Пт дек 23, 2016 7:45 pm

Re: WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Сообщение vvm13 » Вт ноя 07, 2017 11:42 am

Я исходники ардуиновского SPI-кода смотрел и, наверное, смогу его модифицировать так, чтобы он читал и писал, откуда нужно, но я пока не понимаю, как предоставить эти 4 мегагерца для CLK.

dim666
Посетитель
Сообщения: 5
Зарегистрирован: Вт мар 21, 2017 12:22 pm

Re: WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Сообщение dim666 » Вт ноя 07, 2017 12:44 pm

vvm13 писал(а):Я исходники ардуиновского SPI-кода смотрел и, наверное, смогу его модифицировать так, чтобы он читал и писал, откуда нужно, но я пока не понимаю, как предоставить эти 4 мегагерца для CLK.
Не вижу смысла в использовании SPI-кода ардуино. Он с нуля реализуется в 30 строк кода: подаёте или читаете что-то с 4-й ноги TLE5010 и "дёргаете" часы (2-ю ногу).

Вот так ШИМ 4МГц скважностью 50% на выводе ардуины 3 включается (т.е. 1-я нога TLE5010 должна подключаться к 3-му выходу Ардуины):

Код: Выделить всё

pinMode(3, OUTPUT);
TCCR2A = 0x23;
TCCR2B = 0x09;
OCR2A = 3;
OCR2B = 1;


4-ю ногу TLE5010 (которая DATA) через резюк >1KОм подтягиваете к питанию, чтобы получился Open Drain (в доке глава 8 ), про который писал Komaroff; и подключаете к любому незанятому цифровому выводу Ардуины. Через неё будет весь обмен данными.
Читаете эту главу 8 и следующую главу с описаниями регистров. Вам сначала нужно добиться, чтобы при чтении регистра с номером 0x0D (в котором хранятся ID и ревизия микросхемы датчика) приходило значение 0x12.

Если всё будет плохо, пишите. Попробую поискать код, на котором я тестил работу с TLE5010 на Ардуинке. Сейчас я с ней "играюсь" на PIC18F2550.

vvm13
Посетитель
Сообщения: 4
Зарегистрирован: Пт дек 23, 2016 7:45 pm

Re: WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Сообщение vvm13 » Вт ноя 07, 2017 12:58 pm

Спасибо большое. /Мне пока не всё заказанное из Китая пришло, так что ещё неделю-другую ничего попробовать не могу/.

FX35RUS
Посетитель
Сообщения: 2
Зарегистрирован: Пт янв 22, 2016 7:11 pm

Re: WIP _Магнитный сенсор - сплав TLE5011 плюс вычислитель

Сообщение FX35RUS » Пн дек 04, 2017 12:18 am

Как протекает эксперимент?


Вернуться в «Джойстики»

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

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