boryx
Участник-
Постов
20 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о boryx
-
Звание
Участник
-
как это? я ведь ставлю AT91_SSC_CKS_PIN, что clk нужно брать с ножки
-
Жаль, а я так надеялся на их помощь. :) Если серьезно, то на шине для SSC2 висит устройство, которое генерит клоки и фреймы. На осцилографе видно, что есть и данные, и клоки и фреймы. Причем эти 3 ножки точно подключены к Атмелю, т.к. я могу через PIO их поднимать/опускать и изменения видны на осцилографе Теперь at91_sys_write(AT91_PIOB + PIO_PDR, AT91_PB14_TD2|AT91_PB15_RD2|AT91_PB16_RK2|AT91_PB17_RF2);//disable pio to control pins at91_sys_write(AT91_PIOB + PIO_ASR, AT91_PB14_TD2|AT91_PB15_RD2|AT91_PB16_RK2|AT91_PB17_RF2);//set pins to peripheral A at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SSC2);//SSC2 power on at91_ssc2_write(AT91C_SSC_CR, AT91C_SSC_RXEN); //reset at91_ssc2_write(AT91_SSC_RCMR, AT91_SSC_CKS_PIN| //AT91_SSC_CKS_PIN = 2; AT91_SSC_CKI_RISING| AT91_SSC_CKO_NONE ); at91_ssc2_write(AT91_SSC_RFMR, AT91_SSC_FSOS_NONE| AT91_SSC_MSBF| (15) ); at91_ssc2_write(AT91C_SSC_CR, AT91C_SSC_RXEN); теперь влажок RXRDY в SSC_SR об окончании приема не выставляется. А SSC_RHR = 0 всегда. Подскажите, что не правельно. Кто нидь работал с AT91 SSC на прием с клоком от внешнего источника?
-
Столкнулся с проблемой Немогу ничего принаять с SSC шины. Уже выкинуто все лишнее, теперь только конфигурю PIO (в PDR ставлю 1 и в ASR тоже) в PCM в нужное место 1. устонавливаю SSC_RFMR и RCMR как в примере. энаблю AT91C_SSC_RXEN в SSC_CR и сколько не жди данные, их нет в SSC_RHR. Кто нидь знает, что я не так делаю :)
-
для чистоты эксперемента я все отсоеденил. Включаю только плату с Атмегой и питание беру от источника в 10V (макс 1А) а не аккумулятора. На LM стабильно 5,05 В.
-
Я как раз и гоняю в Atmel AVR Studio 4. Странно, что код то работает. Я и таймеры могу использовать и АDC. Но только медленно. на правельно +0000031В 1)берем значение порта В 2)берем бит, что будем инвертировать 4 (0b100); 3)операция OR 4)сохраняем что получилось в порт В 5)прыжок на пункт 1 Я могу Fuse про частоту выбрать только один. Я пробовал и 1 и 4 и 8MHz internal RC generator. а также внешний кристал. Итоговая частота на выходе ножки 20-40Hz AVR Studio показывает, что XDIV=0 и прерывания я не врубаю
-
247: DDRB = 0xF; +00000316: E08F LDI R24,0x0F Load immediate +00000317: 93800037 STS 0x0037,R24 Store direct to data space 248: PORTB = 0; +00000319: 92100038 STS 0x0038,R1 Store direct to data space 251: PORTB INV_B(2); +0000031B: 91800038 LDS R24,0x0038 Load direct from data space +0000031D: E094 LDI R25,0x04 Load immediate +0000031E: 2789 EOR R24,R25 Exclusive OR +0000031F: 93800038 STS 0x0038,R24 Store direct to data space +00000321: CFF9 RJMP PC-0x0006 Relative jump никаких Sleep нет
-
с ресетом все OK. На плате есть кнопка для ресета. А Watchdog вырублен в FUSES пустой квадратик я могу через JTAG дебагить прогу. Ресета не происходит.
-
Я честно говоря не спец по хардварной части. Для меня не очень важно будет ли он работать от внешнего кристалла в 14,7456MHz или от внутреннего 8MHz или 4MHz RC генератора. Мне надо получить на ножку сигнал с определенной частотой (~300Hz). Но как это сделать, если контроллер зациклинную пару десятков иструкций выполняет так долго. Тут еще и до таймеров дело не дошло.
-
Имеется плата MicroVega с ATMega 128. (внешний кристалл 14,7456MHz) Включаю питание. Зашиваю программатором Atmel прогу while (1){ PORTB INV_B(2); (ножка PB2 сконфигурированна на выход) }; Наблюдаю странную картину на ножке. Частота всего 37.50 Hz Пробовал менять Fuses на Internal RC Generator 1/4/8 MHz. Особых изменений не заметил. Как заставить его работать на нормальной скорости? Мне нужна частота всего 300Hz.
-
Нужен датчик для того, чтобы обнаружить пламе свячи на расстоянии полуметра. Могу только мерить напряжение (ADC на ATmega128). Физически места очень мало. Нужно что-то очень компактное. Может кто подскажет какую-нибудь модель
-
ST7100
boryx опубликовал тема в Операционные системы
Необходим драйвер для ST7100, кто-нибудь знает, где его взять? Да и вообще любая информация по ST Linux была бы очень полезна. Знающие люди, поделитесь опытом. -
Вот такая проблема. Надо запустить 2 mp3 на at91rm9200. На at91 стоит Линукс, используется ALSA driver. WAV файлы проигрываются идеально. (с помощью aplay) Проблема с плеером. Такие монстры как AlsaPlayer и mpg123 (mpg321) не хотят работать. для перекодировки использую mad библиотеку. Но и madplay не пашет. Когда перенаправляешь вывод. То мр3 перекадируется замечательно в WAV. И потом этот WAV можно проиграть. Но почему-то madplay не хочет сам играть через АЛСУ. Он просто зависает и не выводит никаких сообщений. мр3 закачиваются из сети. сейчас все работает так, wget качает в fifo, madplay берет данные из этого fifo, перекодирует и пищет в другое fifo. А уже из последнего fifo забирает aplay и играет через ALSA. С двумя потоками не выходит, процессор не успевает. Хотя вроде бы как чтобы проиграть 1 мр3 надо 40MHz а тут 200MHz и не успевает. Подскажите как бы ускорить процесс да где бы взять плейер, чтобы был маленький и быстрый. Писать самому не выходит. По madlib очень мало информации а по исходникам разбираться времени нет. Буду рад любым соображениям.
-
у TS201 цена интересная а TMS320C67x всего $13.05
-
Пока еще весь проэкт в очень сыром виде. Но в общем должна получиться довольно универсальная вещь. На что нейронную сеть обучишь, то она делать и будет. Зашил коэффиценты во Flash и у тебя распозновалка речи. Перепрошил и устпройство сможет станком каким-нибудь упровлять. Из DSP есть с плавающей точкой TMS320C67x (помощнее) и TMS320VC33 (попроще), упомянутые здесь. Правда вот с внутренней flash у этих DSP сложности -- не припомню я модели со встроенным flash. я думаю TMS320C67x очень близок к тому, что нужно. Была бу у него хоть какая-нибудь маленькая Flash...
-
Уточняю. Мне шибко точности не нужно, поэтому я использую числа с плавающей точкой (float в C), когда в памяти в 32 битах хранится знак, порядок и мантисса. под сопроцессором (аппаратным) я подрузомеваю устройство способное производить арифметические операции напрямую с данным форматом (копирование данных из памяти, помещение в регистры и их вычитание, умножение...). программный сопроцессор это когда работает маленькая програмка которая побитно или еще как нибудь (в зависимости от алгоритма) осуществляет те же жействия, что и сопроцессор. Но очень не эффективно (команда выполняется далеко не за пару тактов как при аппаратном). Flash - это такая память, куда я хочу зашить вемь програмный код, и чтобы он при отключении питания сохранялся. векторный процессор это что-то вроде SSE или 3DNow на Intel&AMD. Когда за одну команду апирация производится сразу с несколькими числами. То есть когда не по отдельности c1=a1+b1, c2=a2+b2 ... а одной командой загрузка данных регистр 1 a1 a2 a3 a4 регистр 2 b1 b2 b3 b4 команда сопроцессору скажем сложить результат c1 c2 c3 c4 То есть до 4 раз увеличение производительности. пример векторнрого процесосра NM6403 но он очень медленный, и походу будет медленней програмного сопроцессора работать. Размер матриц вариируеся. А какая производительность нужна трудно оценить. Желательно максимальная из возможных вариантов. Но пока я ни одного подходящего не нашел. У меня скорее всего не Нейронный процессор а именно Нейронная сеть и работает как-то так входные данные -> нейронная сеть (куча математических операций, сложение и уножение матриц + вычисление не линейной функции скажем е в стенени) -> результат