Электроника - это просто Теоретические и практические вопросы для начинающих электронщиков. |
28.09.2022, 17:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 7,772
Сказал спасибо: 2,667
Сказали Спасибо 2,640 раз(а) в 1,950 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
Сообщение от worldmasters
|
Тут компонентов мало и по сути все свободные щели залиты земляным полигоном
|
плата двухслойка? Посмотрите - по Вашей картинке земляной вывод С3 идет кругами, а не напрямую на нужные земляные ноги микросхемы. Там на 12-13 ноги достаточно полмиллиметра проводник довести. И 16-ю - снизу широкий проводник земля - почему бы переходное отверстие не добавить к С3... Но по уму - тот кусок платы по фрагменту картинки трудно анализировать, может быть этот кусочек с датчиком просто переразвести.
Сообщение от worldmasters
|
слишком много внимания к обычному акселю
|
смотрите его внутреннюю начинку (блок-схему) У него внутри датчик - емкостной. Думаю, там и единиц пикофарад может не быть величины емкости, шум по питанию - и хз как оно работать будет...
|
|
|
Сказали "Спасибо" Yuri222
|
|
|
28.09.2022, 18:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,792
Сказал спасибо: 2,912
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
I2C - программный или аппаратный? Clock stretching и обязательный ACK на адресный байт - учтены?
__________________
Экзорцист 40-го уровня.
|
|
|
Сказали "Спасибо" ForcePoint
|
|
|
28.09.2022, 19:51
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
worldmasters, а если просто через UART вывести поток данных?
Подключите чип к raspberry pi и там считайте поток данных
И кит у ST есть в наличии https://www.st.com/content/st_com/en...-mki153v1.html
Таки потратьте время на знакомство со всем разделом Documents на странице чипа у ST
Ну и про процесс работы с датчиком расскажите подробнее - реализация I2C, инициализация. запись. чтение. Откуда взят код для работы?
Что с шумами при разных шкалах и разных частотах?
Про конденсаторы по питанию - керамику прямо у ноги VCC, полярный рядом с ним… Разбрасывать их и ставить типа 5…10мм вроде как рядом - пример плохих практик сейчас и источник головной боли потом…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
28.09.2022, 20:34
|
|
Гражданин KAZUS.RU
Регистрация: 21.02.2007
Сообщений: 551
Сказал спасибо: 37
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
Сообщение от ForcePoint
|
I2C - программный или аппаратный? Clock stretching и обязательный ACK на адресный байт - учтены?
|
Аппаратный вроде как. Использую HAL для STM. Не могу точно сказать про ак но наверное учтены ))
Сообщение от mike-y-k
|
worldmasters, а если просто через UART вывести поток данных?
Подключите чип к raspberry pi и там считайте поток данных
|
хм.. попробую. Спасибо.
Сообщение от mike-y-k
|
реализация I2C
|
Это все из коробки. HAL классический пример работы. Завтра выложу коды но там вроде бы все стандартно.
Сообщение от mike-y-k
|
процесс работы с датчиком
|
Тут тоже не могу точно сказать но взял какую то либу с ардуино и переписал на свой лад. Но там тоже все стандартно .. считал регистр изменил биты и записал обратно. Завтра выложу.
Так у кита тоже кондеры вдалеке стоят от самого чипа. Жаль конечно что этот кит не попался раньше. Видимо все таки наводки идут потому как у них вокруг микросхемы вообще пустота.
Сообщение от mike-y-k
|
Разбрасывать их и ставить типа 5…10мм вроде как рядом
|
Сообщение от Yuri222
|
плата двухслойка?
|
Да двухслойная.
Ну писец ... в общем вообще получается криво все сделал. Судя по тому как в ките разведено нужно было везде оставить свободные зоны от меди.
И почему пины Reserved выведены как ADC. Это выход или вход??
Последний раз редактировалось worldmasters; 28.09.2022 в 20:52.
|
|
|
|
28.09.2022, 22:46
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
worldmasters, сама плата кита у них многофункциональная - на нее ставятся и другие чипы…
Прочитайте на сайте ST описание MKI153, так будет понятнее…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
28.09.2022, 23:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,792
Сказал спасибо: 2,912
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
Сообщение от worldmasters
|
Тут тоже не могу точно сказать но взял какую то либу с ардуино и переписал на свой лад. Но там тоже все стандартно .. считал регистр изменил биты и записал обратно. Завтра выложу.
|
Боюсь "открытий ч удных".
__________________
Экзорцист 40-го уровня.
|
|
|
Сказали "Спасибо" ForcePoint
|
|
|
29.09.2022, 00:30
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,771 раз(а) в 5,896 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
Сообщение от worldmasters
|
И может быть кто то знает хорошие акселерометры с маленьким шумом?? Можно даже аналоговые. главное чтобы в состоянии покоя был уровень менее 0,5g.
|
Под какую задачу?
Инструмент подбирается под задачу, а не по весу или диаметру/длине.
И есть акселерометры с фильтрами (этот придирчиво не смотрел). А есть еще и ADXL213, который и со временем почти не плывет, и повторяемость от замера к замеру очень высокая. Применяем для контроля положения статических объектов.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 29.09.2022 в 00:34.
|
|
|
|
29.09.2022, 01:09
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
worldmasters, как-то пропустил это слово, но уважаемый ForcePoint очень справедливо заметил…
Вам от производителя кода мало было готового для cube?
Может сначала попробовать на этом код написать, без кусков от Arduino?
Посмотреть на сам шум…
Ну и по итогу - если производительность на грани фола, стоит посмотреть на написание кода на чистом C, даже с вкраплениями ассемблера…
Обнаружатся некоторые ресурсы производительности…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
29.09.2022, 09:10
|
|
Гражданин KAZUS.RU
Регистрация: 21.02.2007
Сообщений: 551
Сказал спасибо: 37
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
Сообщение от ForcePoint
|
Боюсь "открытий чудных".
|
Ну какие тут могут быть открытия чудные.
Вот функции отправки
Код:
|
HAL_StatusTypeDef LIS331_read(uint8_t Reg, uint8_t *buf, uint8_t len) {
if (len › 1) {
// MSB is 1 enable autoincrement adress
Reg |= 0x80;
}
if (HAL_I2C_IsDeviceReady(&hi2c2, DEV_ADDR, 1, 0x2) == HAL_OK) {
if (HAL_I2C_Master_Transmit(&hi2c2, DEV_ADDR, &Reg, 1, 0xff) == HAL_OK) {
if (HAL_I2C_Master_Receive(&hi2c2, DEV_ADDR, buf, len, 0xff) == HAL_OK) {
return HAL_OK;
}
}
}
return HAL_ERROR;
}
/// отправляет данные в указанный адрес
HAL_StatusTypeDef LIS331_write(uint8_t Reg, uint8_t value) {
uint8_t buffer[2] = { Reg, value };
if (HAL_I2C_IsDeviceReady(&hi2c2, DEV_ADDR, 1, 0x2) == HAL_OK) {
if (HAL_I2C_Master_Transmit(&hi2c2, DEV_ADDR, &Reg, 1, 0xff) == HAL_OK) {
if (HAL_I2C_Master_Transmit(&hi2c2, DEV_ADDR, buffer, 2, 0xff) == HAL_OK) {
return HAL_OK;
}
}
}
return HAL_ERROR;
} |
Вот чтение регистра:
Код:
|
void LIS331_ReadAxes(RAWAccelValue *value) {
LIS331_read(OUT_X_L, (uint8_t*) value, 6);
// The data that comes out is 12-bit data, left justified, so the lower
// four bits of the data are always zero. We need to right shift by four,
// then typecase the upper data to an integer type so it does a signed
// right shift.
value-›x ››= 4;
value-›y ››= 4;
value-›z ››= 4;
} |
БЫл вариант с блокировкой регистра на время чтения:
Код:
|
void LIS331_LockData() {
uint8_t data = 0;
LIS331_read(CTRL_REG4, &data, 1);
data |= 0x80;
LIS331_write(CTRL_REG4, data);
}
void LIS331_UnLockData() {
uint8_t data = 0;
LIS331_read(CTRL_REG4, &data, 1);
data &= ~0x80;
LIS331_write(CTRL_REG4, data);
}
void LIS331_ReadAxes(RAWAccelValue *value) {
LIS331_LockData();
LIS331_read(OUT_X_L, (uint8_t*) value, 6);
LIS331_UnLockData();
value-›x ››= 4;
value-›y ››= 4;
value-›z ››= 4;
} |
Каждая функция это примитив: считали регистр выставили бит и отправили назад. Перепроверял запись и значения битов все тут норм.
Код:
|
LIS331_IntSrcConfig(INT_SRC, 1); // Select the source of the
// signal which appears on pin INT1. In
// this case, we want the corresponding
// interrupt's status to appear.
LIS331_SetIntDuration(2, 1); // Number of samples a value must meet
// the interrupt condition before an
// interrupt signal is issued. At the
// default rate of 50Hz, this is one sec.
LIS331_SetIntThreshold(4, 1); // Threshold for an interrupt. This is
// not actual counts, but rather, actual
// counts divided by 16.
LIS331_EnableInterrupt(X_AXIS, TRIG_ON_HIGH, 1, 1);
LIS331_EnableInterrupt(Y_AXIS, TRIG_ON_HIGH, 1, 1);
LIS331_EnableInterrupt(Z_AXIS, TRIG_ON_HIGH, 1, 1);
LIS331_SetFullScale(LOW_RANGE_100);
LIS331_SetODR(DR_100HZ);
LIS331_AxesEnable(1, 1, 1);
LIS331_SetFilter(1, HPM_REF_SIGNAL, HPFCF_0);
LIS331_SetPowerMode(NORMAL); |
ЗАвисимость есть от частоты выборки. Если ставить 100 герц и ниже то уровень шума не превышает требуемые 0,5g.
Но частота маленькая.
Сообщение от akegor
|
Под какую задачу?
Инструмент подбирается под задачу, а не по весу или диаметру/длине.
|
Так и подбирался под задачу. Требуется фиксировать профиль удара. Удары могут быть сильные поэтому и шкалу искали за 100g.
Удары могут быть от 2 мс. Время нарастания и даже для таких надо успевать фиксировать профиль. Поэтому и частота большая.
В прошлом был аналоговый датчик MMA3201KEG и там с помощью АЦП снимал данные. в нем все было надежно и стабильно как швейцарские часы. Только жрет тот датчик как лошадь.
Сообщение от mike-y-k
|
Вам от производителя кода мало было готового для cube?
|
Про эту штуку не знал.
МК не такой емкий а эти библиотеки опять накидают тьму лишнего кода.
Последний раз редактировалось mike-y-k; 29.09.2022 в 15:08.
|
|
|
|
29.09.2022, 11:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 7,772
Сказал спасибо: 2,667
Сказали Спасибо 2,640 раз(а) в 1,950 сообщении(ях)
|
Re: Сильный шум акселерометра H3LIS331DL
Сообщение от worldmasters
|
Ну писец ... в общем вообще получается криво все сделал. Судя по тому как в ките разведено
|
Как разведено в именно этом ките - обнять и плакать. Лично я бы никогда так не додумался.
Ув. mike-y-k правильно заметил
Цитата:
|
плата кита у них многофункциональная - на нее ставятся и другие чипы
|
Поскольку эта плата - сама по себе, без дополнительных источников помех, возможно, и будет более-менее нормально работать.
Сообщение от worldmasters
|
Если ставить 100 герц и ниже то уровень шума не превышает требуемые 0,5g.
|
контроллер чем еще занимается сейчас? Только этим акселерометром?
Вполне может свидетельствовать о помехах датчику от сигналов интерфейса ...
Ну и - по даташиту до килогерца допустимо его опрашивать.
Цитата:
|
Удары могут быть от 2 мс. Время нарастания и даже для таких надо успевать фиксировать профиль
|
Вы уверены, что зафиксируете профиль воздействия длительностью 2 мс при опросе 1 мс? ИМХО - хотя бы 10 отсчетов надо бы... т.е. раз в 5-10 поднять частоту опроса, что с данными датчиками невозможно сделать (судя по даташиту).
UPD
Сообщение от worldmasters
|
В прошлом был аналоговый датчик MMA3201KEG и там с помощью АЦП снимал данные. в нем все было надежно и стабильно как швейцарские часы. Только жрет тот датчик как лошадь.
|
глянул даташит
8-10 мА макс при 5В. Это много? У Вас батарейное питание?
Ну и - у него встроенный фильтр (это хорошо от помех), но полоса - 400 Гц всего...
Да, совсем забыл - надо же все ускорение по всем 3 координатам снимать и обсчитывать - т.е. еще в 3 раза поднять частоту запросов к датчику. Или ставить кучу датчиков и проц соотв. мощности...
Последний раз редактировалось Yuri222; 29.09.2022 в 12:33.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:33.
|
|