Перейти к содержанию
    

megadocent

Участник
  • Постов

    36
  • Зарегистрирован

  • Посещение

Весь контент megadocent


  1. Ух, что нашел. :rolleyes: Краткие итоги. TMS320C6726 позволил одновременно обрабатывать 120 каналов, считать мощности в каналах, детектировать DTMF, производить анализ импульсного набора + анализ 425Гц. Плюс еще что-то делать по мелочи. Уперся скорее в пропускную способность DMA и объем памяти (Работал с буфером, а не по мере поступления отсчетов), чем в производительность процессора. Из интересного вспоминается, как очень резко удалось поднять производительность развернув циклы. Вместо while (i<BUFSIZE) { x2 = x1; x1 = x; x = shortaddr[i++] + f_coef*x1 - x2; } return (x2*x2 + x*x - f_coef*x2*x); использовал одновременный расчет 3 отсчетов. Компилятор гораздо лучше смог оптимизировать это дело. За счет этого раза в 2, что-ли, скорость повысилась. while (i<BUFSIZE) { x = shortaddr[i++] + f_coef*x1 - x2; x2 = shortaddr[i++] + f_coef*x - x1; x1 = shortaddr[i++] + f_coef*x2 - x; } x = shortaddr[i++] + f_coef*x1 - x2; x2 = shortaddr[i++] + f_coef*x - x1; return (x2*x2 + x*x - f_coef*x2*x);
  2. Добрый день. Года 3-4 назад работал с DSP (C6726), причем без отладчика и в версии 3.3, отладчик только под конец появился и практически не использовался. Но работал, это помню. Потом занимался другим и уже забыл все, если честно. Сейчас новая задача появилась, поднял старую макетку, достал из коробки jtag и настраиваю всё хозяйство. Отладчик SAU510-USB IsoPlus. Драйвер скачал последний, поставил. В диспетчере пишется "SAU510-USB Iso [Plus] JTAG emulator". 1) В CCS5 в таргерт конфигурейшн можно выбрать" SAU510-USB Iso [Plus] JTAG emulator" и "Sauris SAU510-USB [and Plus] Emulator". Мне первый нужно выбирать? 2) Если нет лицензии (плавающая есть, но сисадмин еще разбирается как там сервер лицензий запустить), то с 510 работать нельзя, насколько я помню. Верно ли это? 3) Как это проявляется? Просто недоступна кнопка Test connection, как у меня? Или я неправильно настраиваю что-то, раз она недоступна... 4) Уже вышла CCS 6. В ней отладчик нормально будет работать? Драйвера те же самые? Заранее спасибо.
  3. Эпик фейл с моей стороны. Если у DSP есть только 1 вывод TCK, то на разъеме RTCK и TCK должны быть через резистор 22 ома замкнуты. В старой плате сделал так, в новой забыл. :laugh: В помощь по стопам идущим. Если у вас проблемы с jtag (TI или Sauris, без разницы),не коннектится, не работает, работает не так - читаем мануал. http://www.ti.com/lit/ug/spru655h/spru655h.pdf Помогло. =) P.S. Если sau100 выдавал ошибку "Error connecting to the target: Connect to PRSC failed", то sau510 выдал конкретно, что проблемы в отсутсвии тактовой. Хорошо, когда устройство умное. =) P.P.S. SAURIS GmbH Большое спасибо за помощь. Завоевываете лояльность покупателей вашей продукции. ;)
  4. Ошибку выдавал, большую, страшную. И сейчас выдает на [and plus] Error connecting to the target: (Error -203 @ 0xFFFFFF35) The test bus controller is not compatible with the installed software. (Emulation package 5.0.681.0) Если выбрать iso plus, вроде все работает.
  5. 0. Теперь в списке два эмулятора. =) -sau510 iso plus -sau510 [and plus] Что-то не запускается ни один. Почищу все, поставлю заново, отпишусь. Тогда на упаковке надо поправить. Там написано "v1 or v2". Спасибо. На плате в воздухе была, в даташите на проц не было такого указано, что надо 4 ногу разъема на землю. Хотя, вообще, логично, даташит не на jtag, а на проц. :laughing: DSP - TI. Переходник TI14. Замкнул 4 на землю, cable break пропал, поведение при указании соединения v1 и v2 совпадает. Тест проходит. А вот при заливке программы вылетает "Error connecting to the target: Connect to PRSC failed" Думаю, это все же не отладчик, а в схеме что-то.
  6. А я 2 дня пытался запустить. Не всегда, если у тебя что-то не работает, ты неправильно что-то делашь. Иногда оно и правда не работает. =) Вдогонку еще вопросы по sau100-usb. 1) Имеется рабочая плата на TMS320С6726. С ней (судя по вики на сайте TI) работать можно только через 510, через 100 не выйдет? 2) Имеется опытная плата на С6747. С ней (судя по вики на сайте TI) можно работать и с 100? 3) В connection к С6747, судя по упаковке JTAG можно выбирать как TI xds100v1, так и v2? И должны работать оба? 4) Кабель, в разъем на плате воткнут. Встроенный загрузчик С6747 по SPI отвечает мастеру. Test connection v1 выдает "scan-test has succeeded". http://clck.ru/d/VN1j1_4a1BTGu Test connection v2 выдает "The controller has detected a cable break far-from itself. The user must connect the cable/pod to the target.". http://clck.ru/d/oSSFhsxP1BTGs При подключении как v1 выдает "connect to PRSC failed" При подключении как v2 выдает "Error connecting to the target: (Error -183 @ 0x0) The controller has detected a cable break far-from itself. The user must connect the cable/pod to the target. (Emulation package 5.0.681.0)" Собственно вопрос. Что проверять в первую очередь? Или ответ загрузчика DSP мастеру по SPI не означает, что с железной частью все ок?
  7. Кстати, да, у меня, из соседней темы, так же версия 5,2. WinXP. Навреное, имеет смысл тут продолжить общение.
  8. Пришел отладчик sau510 и лицензия. Поставить плавающую лицензию тот еще квест, оказывается. =) Но там на сайте TI инструкция есть, так что справились. А вот с отладчиком что-то не очень понимаю. Дрова поставил, в диспетчере устройств видно его, в студии нету. А документация только под версию 3.3, что не совсем подходит. Для того, чтобы подключиться в 5 студии к плате, надо задать отладчик в настройках проекта, в general->connection, верно? Там его нет, только стандартные варианты. В target configuration тоже только стандартные, спектрум диджиталовские 510. Может кто-то подсказать, куда копать? Про то, что есть линукс в курсе. Можно вкратце, в чем странности? Еррдату читал, ничего критичного там не увидел, а pci не нужен. Так что тут полегче будет.
  9. да я на их сайте смотрел. http://www.ti.com/tool/xds510 Price (US$) $1595.00 http://www.ti.com/tool/xds560 Price (US$) $2995.15 :laughing: Просто срабатывает защитный механизм - раз дешевле, значит надо искать почему. А то купишь аналог подешевле, а оно не работает потом, как оригинал. Бывало такое. Ладно, подумаем над покупкой 510 у вас.
  10. Кстати, про XDS100. Ведь работая с ним, можно использовать бесплатно CCS (Bundle License (Free Limited License)). А для работы с 510 и 560 уже надо лицензию покупать. Спасибо за ответы. Пока ограничимся одним xds100. Если не хватит - будем брать 510. Сроки не жмут, наверное, тогда, EVM брать не будем. UPD. Кстати, вопрос. Посмотрел ваш сайт. 0) Я так понимаю, это ваша разработка? 1) А почему такая цена - 650$, если у TI указана цена 1600$ на 510? 2) Как она работает с лицензиями CCS? 4) Работает ли с 5 версией? 5) Чем отличается от TI-шной 510?
  11. Ну это я, в общих чертах, представляю. Мне бы мнение именно разработчиков, насколько необходимо скоростные отладчики. Насколько нужно гонять недетские потоки? Что это даст? Единственное, что я вижу - на компьютере видеть то, как "видит" процессор видео где-нибудь в середине обработки. Не уверен, нужно ли это мне. И, ведь, в DM6467 DSP ядро - с64+. Так что оба ядра поддерживает и XDS100. Верно ли? Да где купить, всегда найти можно. И опписания всех этих девайсов с сайта TI можно взять. Мне именно опыт людей интересен. Кто работал с этим. Насколько это нужно. Потому что, например, я пока не вижу необходимости в высокоскоростном отладчике. Но, вероятно, я ошибаюсь. И, возможно, услышу веские доводы в необходимости покупки 510 или 560. И про EVM тоже не все ясно. Вроде штука нужная, но, с другой стороны, не ясно насколько позволит сэкономить время/деньги. Все-таки стоит она немало.
  12. Добрый день. Пытаюсь разобраться, что нужно для разработки под ДаВинчи от TI, конкретно - DM6467T. До этого работал с TMS320С6000, однако, работал без эмуляторов, потому в них не разбираюсь. А проект с ДаВинчи на подходе, надо закупаться средствами для отладки/разработки. По опыту с TMS320, для отладки и разработки вообще не обязательно никакое устройство. Можно писать прошивки, компилировать, заливать на карту/грузить с мастера прошивку. Но это не очень удобно, особенно для серьезной разработки, так что встает вопрос, какой отладчик купить. XDS100 Emulators стоит недорого, поддерживает как ARM, так и TMS ядра, можно сделать точки останова, посмотреть что и как себя ведет. Про DM ничего не сказано, но, я так понял, так как они состоят из тех же ядер, можно и DM отлаживать. XDS510 отличается в основном тем, что... И вот тут не очень понятно. Как я понял, основное отличие - в реально мвремени, без останова, можно смотреть данные отладочные. Нужен ли он? Учитывая, что стоит он 1600$ проти 80$ за XDS100. Также есть Evaluation Module за 2000$. Опять же, не очень понятно, насколько он нужен. Там уже есть готовая система, стоят драйвера и кодеки. И, как я понял, никаких ограничений нет, можно использовать проект оттуда для своей разработки. Взять готовую систему и сразу приступать к разработке прикладных программ. Сижу думаю, писать служебку на закупку или нет. Если писать, надо хорошо обосновать необходимость. А мне самому не до конца ясна эта необходимость. В общем, поделитесь опытом, пожалуйста, по средствам отладки/разработки. Буду благодарен за любые советы по поводу того, что же выбрать.
  13. Пожалуйста. :) 1) Тактирование кварцом? Ну тогда хз. Не должно убегать сильно за пару сотен байт. Хотя... Вы опрашиваете ножку? Сами? И посылаете дергая из программы ножку? Тогда ничего удивительного. А если у вас прерывание важное пришло? Одна Атмега потупила, не послала байт, послала с опозданием, вторая протупила, пропустила бит и пошла опрашивать со сдвигом. Тут очень внимательно надо 7 раз перепроверить, что принимаете вы точно с той же частотой, что и передаете. 2) Пробовали на листе бумаги (excel тоже удобно) 2 колонки написать. Что приняли и что пришло? Попробуйте. Очень полезно. а) Если у вас именно систематически (и довольно редко) уезжает - увидите на скольких битах вы уезжаете. Проверяйте кварцы. 001100110011001100110011 001100100110010011001001 каждый 7 бит теряется. От кварца, конечно, должно не так ехать... А 1 бит в кучу-кучу-кучу бит... Но тем не менее. б) Если у вас уезжает случайно, не систематически, тогда я грешу на то, что опрашиваете/посылаете не равномерно. 001100110011001100110011 001100100110110011001100 Потерян 8 и 14 биты. в) Случайные битовые ошибки - тогда и правда шум. 001100110011001100110011 001010110001001110110101 3) Синхро надо не только зацепить, но и корректировать. Это как бы само собой. У меня на бит данных 16 бит ПСП. В бите данных 512 отсчетов. Выгоднее раз в 512 отсчетов проверить 2 соседних, и посмотреть, не уезжаю ли я, чем каждый отсчет гадать что у нас, 1 или 0. 4) ПСП рулит. =) Должна сильно устойчивость к помехам подняться. В разы, по сравнению с сигналом без ПСП. И это не зависит от того, как вы биты получаете. Я вот анализируя сигнал тоже, по сути, выделяю биты, а уже потом биты сравниваю с образцами ПСП. Просто я делаю это за 1 проход и чуть точнее, анализируя сигнал. 5) Сдается мне, у вас не в канале дело. Где-то ошибка. Иначе применение баркера дало бы довольно ощутимые результаты по сравнению с его отсутствием. Я бы посоветовал: а) Выписать передаваемый сигнал (поток битов), принимаемый сигнал, сравнить. б) Проверить что у вас частота, с которой вы выплевываете биты точно равна частоте, с которой опрашиваете.
  14. Я коррелирую на ДСП, но я там ищу последовательность битов в переданном фазово-модулированном сигнале. По сути в ДСП реализовано то, что у вас в радиомодуле. Потому работаю не с битами, а с большим количеством отсчетов. Раскажу как у меня, и как бы на вашем месте делал. У меня цепочка сигнала такова - аналоговый вход -> аналоговый фильтр (передаем в зашумленной полосе, дабы отсеять шум за пределами нашей полосы) -> АЦП -> ДСП. Весь анализ в ДСП. И ДСП анализирует и коррелирует не биты двоичного сигнала, а семплы. У вас приходят сразу биты, так что у вас должно быть Радиомодуль->Атмега. Зависит от вашей частоты дискретизации и скорости передачи данных. Частоты дискретизации зависит от скорости несущей. У меня на 1 бит 24 отсчета. Но у меня не биты с радиомодуля, а аналоговый сигнал оцифрованный. Из того, что я понял, у вас сразу идут биты. Минимально достаточно 1 семпл на бит (при условии что тактовые приемника и передатчика идеальны). Больше семплов - точнее синхронизация. Я бы опрашивал раза в 2-4 чаще, если мощности хватает. Идут у вас 100 бит/с - я бы опрашивал ногу с частотой 200-400раз в секунду. Так легче синхронизироваться. Да. Если в лоб - каждый отсчет сигнала на образец. Если не в лоб - можно применять БПФ. Корреляторы обычно делают так, чтобы они не зависели от чего-либо. И на выходе получаем float число от -1 до 1. С другой стороны у вас сигнал без амплитуды, так что имеет смысл говорить в абсолютных числах. Но, имхо, о погрешности мало смысла говорить. Тут скорее не погрешность, а граница срабатывания, которую мы сами задаем. Не вижу смысла на каждый семпл пытаться определить 1 или 0 и коррелировать. Вам надо точно синхронизироваться (вот тут корреляция и нужна). А потом уже каждый xx отсчетов сравнивать с последовательностью, задав, что если количество совпавших семплов <xx/2 у вас 0, а если больше, у вас 1. Или у вас данные не пакетами/непрерывно, а переодически может быть 1 бит данных?
  15. Смущало то, что везде где читал ни слова про многоуровневую модуляцию. =) Везде пишут просто "Фазовая". И все. Потому не мог понять как при простой фазовой так все выходит. Теперь все понял. Всем большое спасибо. =)
  16. Вот! В том -то и дело, что из рисунков (и по логике человеческой) получается, что после суммирования чипов 4 каналов он имеет возможные значения не 0/1, а -4,-2,0,2,4. -2,0,2 для 2-х каналов. Для 64 битового и его 64-х каналов будет -64, -62, -60... 0... +62, +64. Или 65 возможных значений. В таком случае вопросов как все работает нету. И получается что на каждый чип надо передать 7 бит информации. Или многоуровневый сигнал, амплитудно-фазовая модуляция, или передавать эти 7 бит оп очереди. О чем нигде ничего не написано. Получается выглядит так - для передачи 4 бит данных с 64-х битной функцией получаем 256 чипов. Для передачи каждого чипа надо 7 бит. Итого частота должна поменять (или не поменять) фазу не 256 раз, а 1792 раза. Или 256 раз поменяться многоуровнево. Тогда все встает на свои места, за исключением того, что везде пишут "Промодулировали фазовой модуляцией, передали" Мне вот это и непонятно было. Я правильно все понял?
  17. Для меня тоже. За инфу спасибо, почитал, ясней не стало, как так получается. =( Так как послать/принять мы можем только фазу или не фазу. Ну отсутствие фазы еще посмотреть. А если суммировать так не 2 канала, а много, 1 чип может принимать много значений. В общем как в мультике. "Ниччего не понимаю"
  18. В CDMA в сотовой связи передают 64 канала. При таком количестве уже мало бы отличались сдвинутые на несколько градусов фазы. Если бы уровни отличались амплитудой, тоже было бы не разделить их особо. Там модуляция ФМ4/ОФМ4. Уровней два. Передаются 2 бита за раз. Вот чешу репу, роюсь, а найти что я упустил не могу пока. Количество функций Уолша равно их длине, там квадратная матрица. При 16 битах - 16 функций, которые не должны оказывать никакого влияния.
  19. Насколько я понял амплитуда вообще не учитывается. Меняется фаза. Ну или амплитуда на противоположную, что для синусоиды есть сдвиг по фазе на 180 градусов. Эм... я ведь прав? Написанное вами и так везде написано. =) Это я знаю. Книгу прочитал. Каналы отличить могу, если они не были смешаны, там видно сразу что корреляции нет, если применяю функцию Уолша которой не было в сигнале. Моменты которые непонятны из книги непонятны, иначе бы и не спрашивал. =) Проблема в том, что на примере одного канала все понятно. И оно у меня работает. И к шумам устойчивость большая и так далее. И две модулированные несущие точно определяются, если их не смешивать и по отдельности накладывать функции Уолша. Непонятно и не работает когда хочу 10-16 каналов передать. Книгу сейчас читаю второй раз, сначала и разбираясь в формулах внимательно. Фазовая модуляция/демодуляция, как я понял делается так - сначала получаем чипы пропуская через фазовый демодулятор, потом накладываем последовательность, смотрим как она коррелируется. Я конкретно не могу понять как они передаются сразу все. В том-то и вопрос, как складываются каналы после модуляции? И как демодулируются сложенные сигналы? При сложении у меня получается что фазы повернутые на 180 градусов уничтожаются, сигнал равен 0 без всяких колебаний. 16 каналов сложенных вместе потом вообще не дают вычленить что-либо из себя, в них практически нет сигнала. Если по всем каналам передавать единицу, получается в первом чипе 1, в остальных вообще сигнала нет, ни фазы, ни противофазы. И что тут коррелировать непонятно... Везде где читал чип - бит ПСП последовательности. :laughing: Да я тоже так и понял, это 3б) в первом посте получается, хотелось убедиться что правильно. Но вопрос как несколько каналов получаются.
  20. Добрый день. Как бы не банально звучало, помогите новичку. =) Начал разбирать CDMA. Конкретные реализации в мобильной связи не нужны, важно понять принцип и как это считать (теорию). И кроме общих фраз "Кодируем уолшем, коррелируем, получаем результат" практически ничего не встречается. Про Уолша/шумоподобные/широкополсные сигналы, помехоустойчивость и так далее все понял. Вопрос возник по модуляции/демодуляции и канальном разделении. Конкретно не до конца понятно как именно происходит демодуляция и совсем непонятно как получается, что передается сразу несколько каналов одновременно (не как их различать, а как передавать и принимать). 0) Есть последовательность из 8 бит. 1) Кодируем сигнал функцией Уолша (например 16-битовой). Получаем 16*8=128 чипов. 2) Модулируем несущую. Как я понимаю фазовую модуляцию (без дибитов, для простоты со сдвигом фазы на 180) - есть несущая, ее фаза меняется в зависимости от 1/0 в получаемой после кодирования функцией Уолша последовательности. Получаем сигнал который 128 раз меняем (или не меняет) фазу. 3) Демодуляция и корреляция. Сравниваем пришедший сигнал (модулированная несущая) с ??? Тут, как понимаю два варианта. 3а) Сравниваем с несущей модулированной последовательностью уолша длиной в 1 бит. Если корреляция сильно положительная - 1, если сильно отрицательная - 0, если около 0 - данных в сигнале нет. Получаем 8 бит. 3б) Сравниваем с опорной (не модулированной ничем несущей), фаза - 1, противофаза - 0. Получим 128 бит, пройдясь по которым фунцкией уолша получим либо корреляцию 16, либо -16, либо 0 (ну, если без помех). Аналогично предыдущему 1,0 и нет данных. В принципе а и б практически одно и то же, только в первом случае за 1 раз, во втором в два этапа. Вопросы. 1) Правильно ли я понял модуляцию? 2) Правильно ли я понял демодуляцию и корреляцию? 3) Непонятно, как быть в случае передачи множества каналов. Надо просто суммировать полученные модулированные несущие? Если нет, дальше можно не читать, если да, скажите где я не прав. Допустим у нас два канала с последовательностями 1111000011110000 1100001100111100 Закодируем ими 1 и 1. Сложим несущие, получим 11хх00хххх11хх00 где 1 - фаза, 0 противофаза, х - нет ни противофазы, не фазы, так как они сложились. накладываем первую функцию и получаем корреляцию 8. В принципе это 1 с большой достоверностью. Но при 16 каналах сложив 16 модулированных несущих получается что во всех чипах у нас 0. И тут уже ничего не разобрать. Как тогда передаются сразу несколько (вплоть до 16) каналов? Буду рад помощи. Спасибо.
  21. Если обнулять ошибки и считывать после этого, то уже что-то читается, не то что нужно, но хоть что-то. Дело сдвинулось с мертвой точки, спасибо за наводку на XBUSEL/RBUSEL. Обидно, что примерно знал зачем этот бит, но забыл его изменить на нужный. И про проверках внимания на него не обращал. :laughing:
  22. Да, ошибки есть, причем несколько, из-за того, что не обслуживаю буфер. DMA не настроил пока, как уже говорилось, хочу последовательно все настроить. Или тут без одновременной настройки DMA нельзя? Боюсь не разобраться отлаживая их параллельно. Попробую настроить DMA тогда сначала. Такой вопрос, если даже сериалайзер затыкается, в буфере приемника все равно бы что-то должно быть? И на выходе проскакивало бы что-нибудь тоже. Записываю в XBUF что-то - оно там неизменно хранится. Назад без изменений считывается. На выходе же ничего нет. С RBUF считывается только 0. На входе постоянно 1, приниматься должно что-то типа 0xFF. При этом тактовые и синхроимпульсы принимаются и передаются, в XSTAT и RSAT номер тайм слота меняется. Если я правильно понимаю - запущены? Да, все запущены, при инициализации есть подтверждение об установке.
  23. В регистрах активность адекватная, флаги событий и ошибок там появляются, если произошли. Не работает именно прием и передача, будто только шифт не происходит. Все остальное вроде в порядке. Будто mute включен. Но mute выключен, так ведь? Да, если произошли ошибки, ведь работае останавливается, насколько я понял из написанного, выдаваться должно что-то? Или, чтобы сериалайзер работал, нужно чтобы не было никаких флагов ошибок? За ссылку спасибо, поизучаю. =)
  24. Спасибо. Это конфигурация уже для DMA, согласен. Для отладки забыл поменять этот бит. =) В итоге все равно через DMA читать-писать буду. Но сначала хотелось бы настроить McASP, чтобы при настройке DMA точно знать, что это в нем проблема, а не в McASP. После записи в буфер настроенного на передачу сериалайзера теперь обратно считывается его значение. Однако, на ножку оно так и не выдается. :laughing: По крайней мере, если я все верно понял. В цикле постоянно пишу туда что-нибудь, на ноге ничего. А принимать он так же ничего не принимает, увы, одни 0. Причем, в PDIN корректно показывает, что на входе-выходе ножек.
×
×
  • Создать...