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

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

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

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
имеется микросхема MLX90316 - цифровой, 14-ти битный датчик угла поворота на основе эффекта Холла.
Интерфейс подключения SPI.
С ее подключением я как бы разобрался (), но не работает..
Инициализация SPI (он работает):
Код
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);  //записываем информацию в регистр.
}
Обработчик таймера:
Код
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);

}
где
Код
SPI1_Buffer_Tx[10]={0x55, 0x00, 0x00, 0x00, 0x00, //инверсные 0xAA и 0xFF так как стоит транзистор
0x00, 0x00, 0x00, 0x00, 0x00}
функция обмена:
Код
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 2
временную диаграму в даташите поглядите внимательно, и проверьте выдерживается ли она, а то там есть странные требования, например на паузы после преабулы в 45мкс, которой на диаграмме явно не наблюдается.
0
ovys_roro
14.10.2015, 17:48 3
Цитата Сообщение от _pv
временную диаграму в даташите поглядите внимательно, и проверьте выдерживается ли она, а то там есть странные требования, например на паузы после преабулы в 45мкс, которой на диаграмме явно не наблюдается.
Спасибо, подтолкнули буду пробовать!
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
14.10.2015, 17:52 4
А такой датчик не хотите? У него человеческий SPI
Применил в одном девайсе - доволен
Сэмплы доставляются меньше чем за неделю
0
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 117
14.10.2015, 21:09 5
Цитата Сообщение от Sthuthu
А такой датчик не хотите? У него человеческий SPI
Применил в одном девайсе - доволен
Сэмплы доставляются меньше чем за неделю
Еще есть с нормальным "человеческим" квадратурным выходом, и ШИМ-ом.
Работал с AS5045B лютосоветую
0
ovys_roro
15.10.2015, 11:53 6
Спасибо, действительно as5048 будет получше...
15.10.2015, 11:53
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2015, 11:53
Помогаю со студенческими работами здесь

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

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

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

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

Преобразования угла поворота
Есть вобщим такой алгортм- сначала некое значение получается из массива, потом оно преобразуется, в...

Определение угла поворота отрезка
Добрый день. Нужна помощь. На плоскости даны три точки с координатами А (0; 0) В (5; 0) С...

Определение угла поворота изображения
Всем привет! Столкнулся с следующей проблемой: имеется сканированное изображение (после...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
Как сделать UPDATE из SELECT в SQL Server
hw_wired 24.01.2025
В современных системах управления базами данных операции обновления и выборки данных являются фундаментальными инструментами для работы с информацией. SQL Server предоставляет мощные команды UPDATE и. . .
Как вставить элемент в массив на указанный индекс в JavaScript
hw_wired 24.01.2025
Массивы являются одной из фундаментальных структур данных в JavaScript, предоставляющей разработчикам мощный инструмент для хранения и управления упорядоченными наборами данных. Они позволяют хранить. . .
Чем отличаются HashMap и Hashtable в Java
hw_wired 24.01.2025
В мире разработки на Java существует множество инструментов для работы с коллекциями данных, и среди них особое место занимают структуры данных для хранения пар ключ-значение. HashMap и Hashtable. . .
Как конвертировать видео в GIF
hw_wired 24.01.2025
В современном мире анимированные изображения стали неотъемлемой частью цифровой коммуникации. Формат GIF (Graphics Interchange Format) представляет собой особый тип файлов, который позволяет. . .
Как скопировать текст в буфер обмена на JavaScript во всех браузерах
hw_wired 24.01.2025
Копирование текста в буфер обмена стало неотъемлемой частью современных веб-приложений, значительно улучшающей пользовательский опыт и упрощающей работу с контентом. В эпоху активного обмена. . .
Как скрыть клавиатуру на Android
hw_wired 24.01.2025
При разработке Android-приложений часто возникает необходимость управлять видимостью экранной клавиатуры для улучшения пользовательского опыта. Одним из наиболее эффективных способов контроля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru