Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/32: Рейтинг темы: голосов - 32, средняя оценка - 4.84
ovys_roro

Помогите с датчиком угла поворота.

14.10.2015, 15:38. Показов 6289. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
имеется микросхема MLX90316 - цифровой, 14-ти битный датчик угла поворота на основе эффекта Холла.
Интерфейс подключения SPI.
С ее подключением я как бы разобрался (), но не работает..
Инициализация SPI (он работает):
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void SPI_InitCounterMode(void)
{
//Линии SPI1 (Master)
RCC->APB2ENR |= (RCC_APB2ENR_AFIOEN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN | RCC_APB2ENR_IOPCEN);
GPIOA->CRL &= ~(GPIO_CRL_CNF7 | GPIO_CRL_CNF5 | GPIO_CRL_CNF4); //Очистка бит выбора режима
GPIOA->CRL |= GPIO_CRL_CNF7_1 | GPIO_CRL_CNF5_1 | GPIO_CRL_CNF4_1; //PA7(MOSI), PA5(SCK), PA4(NSS) - AF, Output, PP
GPIOA->CRL |= GPIO_CRL_MODE7 | GPIO_CRL_MODE5 | GPIO_CRL_MODE4; //Выходы MOSI, SCK, NSS - 50MHz
GPIOA->CRL &= ~GPIO_CRL_MODE6; //PA5(MISO) - Input
GPIOA->CRL |= GPIO_CRL_CNF6_0; //PA5(MISO) - Input ftooting
 
/*Настройка SPI1 (Master)
8 бит данных, MSB передается первым, программный режим управления NSS
вывод NSS (PA4) разрешено использовать в качестве выхода*/
RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; //Тактирование модуля SPI1
SPI1->CR1 |= SPI_CR1_BR; //Baud rate = Fpclk/256
SPI1->CR1 &= ~SPI_CR1_CPOL; //Полярность тактового сигнала
SPI1->CR1 &= ~SPI_CR1_CPHA; //Фаза тактового сигнала
SPI1->CR1 &= ~SPI_CR1_DFF; //8 бит данных
SPI1->CR1 &= ~SPI_CR1_LSBFIRST; //MSB передается первым
SPI1->CR1 |= SPI_CR1_SSM; //Программный режим NSS
SPI1->CR1 |= SPI_CR1_SSI; //Аналогично состоянию, когда на входе NSS высокий уровень
SPI1->CR2 |= SPI_CR2_SSOE; //Вывод NSS - выход управления slave select
SPI1->CR1 |= SPI_CR1_MSTR; //Режим Master
SPI1->CR1 |= SPI_CR1_SPE; //Включаем SPI1
 
GPIO_InitTypeDef    GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4; //A4 - CS  программный не работает
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;  //двухтактный выход
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);  //записываем информацию в регистр.
}
Обработчик таймера:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
void TIM2_IRQHomdler(void)
{
TIM_ClearITPendingByt(TIM2, TIM_IT_Update);
GPIO_RisetByts(GPIOA, GPIO_Pin_4); //CS
for (j=0; j<10; j++)
{
send_data=SPI1_Buffer_Tx[j];
spi_exchange(send_data);
SPI1_Buffer_Rx[j]=temp;
}
GPIO_SetByts(GPIOA, GPIO_Pin_4);
 
}
где
Code
1
2
SPI1_Buffer_Tx[10]={0x55, 0x00, 0x00, 0x00, 0x00, //инверсные 0xAA и 0xFF так как стоит транзистор
0x00, 0x00, 0x00, 0x00, 0x00}
функция обмена:
Code
1
2
3
4
5
6
void spi_exchange(uint8_t send_data)
{
SPI_I2S_SendData(SPI1, send_data);//Пишем в буфер передатчика SPI1.
while(!(SPI1->SR & SPI_SR_RXNE));
temp = SPI1->DR;//Считываем данные из приемного буфера SPI1. очистка буфера и сброс флага RXNE
}
Но микросхема ничего не возвращает...

<Изображение удалено>

Прошу помощи знатоков, а то информации по микросхеме в сети практически нет.
Спасибо!
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.10.2015, 15:38
Ответы с готовыми решениями:

Контроля угла поворота вала редуктора DC мотора
Всем привет, пытаюсь научить мотор поворачиваться на определенный угол используя энкодер на эффекте Холла. Использую связку мотора...

Как с помошью AVR получить значение угла поворота сельсина
Необходимо получить значение угла поворота такого датчика

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

5
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
14.10.2015, 17:27
временную диаграму в даташите поглядите внимательно, и проверьте выдерживается ли она, а то там есть странные требования, например на паузы после преабулы в 45мкс, которой на диаграмме явно не наблюдается.
0
ovys_roro
14.10.2015, 17:48
Цитата Сообщение от _pv
временную диаграму в даташите поглядите внимательно, и проверьте выдерживается ли она, а то там есть странные требования, например на паузы после преабулы в 45мкс, которой на диаграмме явно не наблюдается.
Спасибо, подтолкнули буду пробовать!
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
14.10.2015, 17:52
А такой датчик не хотите? У него человеческий SPI
Применил в одном девайсе - доволен
Сэмплы доставляются меньше чем за неделю
0
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 117
14.10.2015, 21:09
Цитата Сообщение от Sthuthu
А такой датчик не хотите? У него человеческий SPI
Применил в одном девайсе - доволен
Сэмплы доставляются меньше чем за неделю
Еще есть с нормальным "человеческим" квадратурным выходом, и ШИМ-ом.
Работал с AS5045B лютосоветую
0
ovys_roro
15.10.2015, 11:53
Спасибо, действительно as5048 будет получше...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2015, 11:53
Помогаю со студенческими работами здесь

Как рассчитать поворот угла, зная координаты трех точек до поворота и после поворота угла
Как рассчитать поворот угла (в градусах), зная только координаты трех точек до поворота и после поворота данного угла? Заранее спасибо.

измеритель угла поворота
Ребята кто может помочь сделать измеритель угла поворота на msp430? Буду благодарен за любую помощь!

Обнуление угла поворота
Подскажите пожалуйста, как можно обнулить угол объекта или угол группы объектов не меняя при этом его(их) положение? То есть, повернули...

датчик угла поворота
из чего и как модно сделать абсолютный датчик угла поворота? причем такой который &quot;помнит/знает&quot; своё положение если нет питания....

Расчет угла поворота
Здравствуйте. Требуется найти угол поворота моста(Мостом на картинке обозначена линия).Мост может двигаться по часовой стрелке на 190...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru