|
ARM. Энкодеры и акселерометры, Помогите решить задачу |
|
|
|
Jul 29 2009, 20:01
|
Частый гость
 
Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318

|
Всем привет! Нужна помощь. Есть виброплощадка с двумя дебалансными валами, с одной стороны которой через эластические муфты приделаны двигатели, а с другой – инкрементные энкодеры. Площадка крепится через пружины к станине. Двигатели прикручены к станине жестко. Валы площадки не синхронизированы. К площадке крепится датчик ускорения ADXL210 с выходным сигналом ШИМ. Двигатель вращается с частотой 1500 об/мин, следовательно это равно 25об/сек. Энкодер имеет разрешение 1024им/об, это равно 1024*25=25600Гц. Начальное положение определяться перед пуском. Поскольку дебалансный вал имеет эксцентриситет, то соответственно он направлен в низ. Это и есть его начальное положение. Контролер и комп НЕ УПРАВЛЯЕТ ДВИГАТЕЛЯМИ, а они запускаются отдельно через рубильник. Точность измерения: - угловое положение +/-0,4градуса;
- угловую скорость(+/-1.0град/сек);
- угловое ускорение (после интерполяции графика скорости. Зависит от метода);
- линейное ускорение(+/-0,1g);
Нужно периодично опрашивать датчики, чтобы знать его положение, ускорение в каждый момент времени. Данные через USB от датчиков должны заливаться на комп. Нужно измерять положения дебалансных валов и их скорость, ускорение, а также ускорение, скорость, положение площадки. Ловить сдвиг фаз между положениями валов. Здесь нимного обсуждалось и здесьЧто уже есть: изготовлена площадка, на ней стоят энкодеры. Уже запускал, работает. Прикупил ARM отладочную плату AT91SAM7S64_DBoard для ARM микроконтроллеров фирмы ATMEL и программатор J-Link - USB JTAG adapter. Хочу на базе этого дивайса решить эту задачу. Опит программирования только AVR. Знаю немного Си и Delphi. Очень нужно. Помогите пожалуйста.
--------------------
If the person is successful, he is successful in any sphere.
|
|
|
|
|
 |
Ответов
(165 - 179)
|
Oct 25 2009, 23:01
|
Частый гость
 
Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318

|
Ради прикола оставил только конфигурацию, интерфейс и ендпоинт, заменил DEVICE_PID и USBlyzer увидел все. Странно. Буду разбираться.
Нашел проблему. Что-то сильно намудрил с интересами. Буду разбираться
Набросайте пожалуйста последовательность чтения и записи в USB.
--------------------
If the person is successful, he is successful in any sphere.
|
|
|
|
|
Oct 26 2009, 20:36
|
Частый гость
 
Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318

|
Цитата(aaarrr @ Oct 26 2009, 02:09)  Чтения и записи чего, чем, куда, откуда? Имелось в виду передача простого байта из контроллера в хост. Или я чтото не так спрашиваю?
--------------------
If the person is successful, he is successful in any sphere.
|
|
|
|
|
Oct 27 2009, 22:24
|
Частый гость
 
Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318

|
Цитата(aaarrr @ Oct 28 2009, 02:17)  А что предшествовало появлению этих ошибок? Первая выглядит вполне адекватно, а вот вторая - 0xffffffffffffffc7 initializer bytes  Компилировал с дивайсом AT91SAM7Х256 – работало нормально. Поменял проц на 128 - ошибки. Поменял также - Linker configuration file на AT91SAM7S128_FLASH.icf, и умерла программа.
--------------------
If the person is successful, he is successful in any sphere.
|
|
|
|
|
Nov 4 2009, 22:06
|
Частый гость
 
Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318

|
Подскажите пожалуйста, почему IAR ругается на такую вот запись: Код typedef unsigned int UINT;
--------------------
If the person is successful, he is successful in any sphere.
|
|
|
|
|
Nov 4 2009, 22:36
|
Частый гость
 
Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318

|
Цитата(aaarrr @ Nov 5 2009, 02:16)  Как именно ругается? Приведите сообщение об ошибке полностью. Error[42]: Duplicate label:'typedef' D:\My doc\_DISER\=ARM_Project=\Proba2\at91lib\boards\at91sam7s-ek\board.h 15 Error[40]: Bad instruction D:\My doc\_DISER\=ARM_Project=\Proba2\at91lib\boards\at91sam7s-ek\board.h 15
--------------------
If the person is successful, he is successful in any sphere.
|
|
|
|
|
Nov 5 2009, 21:46
|
Частый гость
 
Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318

|
С инициализацией USB закончил. CyConsole видит мое устройство. Посылаю данные на устройство, и в дебугере вижу их. Как передать на хост один байт данных?
--------------------
If the person is successful, he is successful in any sphere.
|
|
|
|
|
Nov 11 2009, 21:55
|
Частый гость
 
Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318

|
Не получаться передать данные на хост. Делаю так: Код AT91C_BASE_UDP->UDP_FDR[0x01] = 255; AT91C_BASE_UDP->UDP_CSR[0x01] |= AT91C_UDP_TXPKTRDY; И еще, анализируя полученные пакеты в процессе энумерации USB с помощью утилиты USBTrace, вижу, что дескриптор строки передается 2 раза, так должно быть?
--------------------
If the person is successful, he is successful in any sphere.
|
|
|
|
|
Nov 12 2009, 07:25
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Zliva @ Nov 12 2009, 00:55)  Делаю так А хостом что делаете в это время? Цитата(Zliva @ Nov 12 2009, 00:55)  И еще, анализируя полученные пакеты в процессе энумерации USB с помощью утилиты USBTrace, вижу, что дескриптор строки передается 2 раза, так должно быть? Все, или какой-то один?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|