Отговори на тема  [ 39 мнения ]  Отиди на страница Предишна  1, 2, 3
USB Full Speed device - кой контролер да избера? 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
evc написа:
@Цецо, наистина не съм ползвал сигма-делта, но съм пускал три АЦП-та SPI по този начин, защото при мен е критично важно едновременно да се обработват трите аналогови сигнала. Работи си, просто имаш един общ клок а данните са ти различни. Но инструкциите за АЦП-то не са толкова много и аз ползвах готова таблица с комбинираните битове за трите (в моя случай, в твоя 12). Отнема точно две инструкции да ги заредиш на порта и още две за клока. Но това всъщност е същото и за едно АЦП. Равносметката е Х загубени пина = Х пъти по бързо сканиране на аналоговите канали, но ЕДНОВРЕМЕННО и синхронно. Колкото за 4550, написах ти "еднократно" защото като натъпчеш с данни тези 2к рам, докато ги изстреляш към хоста ти поддържа 12Мб. Но понеже и ядрото работи на 12МИПС-а, след това задължително трябва да го пълниш наново (ако имаш обработки допълнително забавя) така че средната ти скорост пада.


При сигма-делтата, преобразуването не става с клока на SPI, а със отделен клок, абе там е мътна и кървава. Двата клока са асинхронни.

Относно трансфера към USB. Ами аз за да ми е относително ритмична скоростта исках да работя на изохронен трансфер с ping - pong буфери. Т.е аз пълня единия, другия си тече по жицата.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Чет Апр 20, 2006 5:22 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
колко S/H гониш на канал и колко ти е времето на преобразуване на ADC-то


Чет Апр 20, 2006 5:39 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Апр 13, 2006 11:06 pm
Мнения: 109
Мнение 
Обръщал ли си внимание на ADS1258, 16-channel, 24-Bit delta-sigma, 125kSPS и достатъчно евтино?

_________________
You can't manage what you can't measure.
You can't measure what you can't define.
You can't define what you don't understand.


Пет Апр 21, 2006 1:09 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Maгьостник какво се разбира под S/H? Ако е семпъл енд холд - това при сигма делта не се използва като параметър (поне аз не знам). Иначе времето за преобразуване е малко трудно дефинируемо при sigma delta технологията. Т.е. незнам точно, понеже както казах АЦП то работи асинхронно спрямо SPI клока (с два клока е). Но знам, че ще е под 125 us , понеже това ми е семплинг рейта.

Абе аз поне както си го представям АЦПто е една черна кутия. Работи си с некакъв си там външен клок (3.072МHz). Семплира си на 8kHz, прави си там типичните за сигма делта преобразуването математики и накрая ми изкарва данните през един SPI порт, който е с отделен клок. Малко е шашава работата. За първи път работя с такъв род АЦПта и не съм много наясно с това което става вътре, но знам че се правят осреднявания. Което значи че се налага да се натрупат определен брой дискрети вътре, за да получиш изходен дискрет. Това отговаря и на въпроса защо не ползвам многоканално АЦП. При превключване, тези натрупани дискрети се губят, трябва време за да се натрупат. И скоростта пада значително.

F-DR: Точно това ADC визирах когато казах че съм гледал многоканални и не става. Това е търговски трик. Казват ти че имаш 16 канала 125 кило семпъла. Но се оказва че ако каналите се превключват, скоростта пада на 23 килосемпъла за всичките. Което прави максимална честота на един канал - под 2 килосемпъла. А аз искам 8.
Както казах сигма делтата се нуждаят от време за да "потече" валидна информация. Това време спъва превключването на каналите.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Пет Апр 21, 2006 10:56 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Делта Сигма
http://www.beis.de/Elektronik/DeltaSigm ... Sigma.html

За да мислиш как да подкараш 12-те ADC-та ти трябват известни доста времена
минималното време за преобразуване, старт времето и Read времето на "SPI"
но все си мисли че тази делта сигма ще ти е бавна...


Пет Апр 21, 2006 11:38 am
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Фев 21, 2006 11:49 pm
Мнения: 105
Мнение 
При сигма делта АЦП-тата нещата наистина стоят по различен начин. Аз лично си ги предствям като някъква тръба, на която пускаш сигнала на входа и тя ти плюе данни на изхода. В общи лини сложни машини са, имат вградени цифрови филтри, notch филтри за 50 и 60 Hz. При тях няма нужда от anti-aliasing филтри, честотна лента се ограничава автоматично в зависимост от скоростта с която се бълват изходните данни. Аз съм пускал AD7705
AD за мерене на темпеартура, на всеки 20ms ми даваше даннии и дигаше един флаг за прекъсване.
Това което Цецо казва за много каналните сигма делта ADC, напълно вярно. За да минеш от един канал на друг, трябва време за да се изчистята вътрешните буфери, така че скоростта пада.
Цецо мисля си при че при твойта система ако са захранени от общ clock, може и да стане паралелната работа.
Трябва SPI интерфейса да ти е бърз за да може да изчетеш всичките АЦП-та преди да са готови със следващи сампъл
Edit:
Значи при 8kHz, имаш 125us, за да обходиш АЦП-тата, от това което си написъл че ти трбват 4,8us за едно, при 12 около 60us - мисля че няма да имаш проблеми


Пет Апр 21, 2006 12:19 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Апр 26, 2006 7:09 am
Мнения: 2
Мнение 
TheWizard написа:
Цецо
- PIC18F4550 - ексампъла(можеша да си го оптимизираш) на микрочип работи на 98 и на ХР и по скорост бие омразното ми FT. Допуска смяна на драйвери, но е все тая...

backson
- какъв е смисъла да го правиш на СОМ като можеш да го адресираш дирекно

3aek
- за 4550 невиждам смисъл да си пиша драйвер(WIN) освен да бъда оригинален. Проблем остават други операционни системи


Wizard дай, ако обичаш, link към този example, че не можах да го намеря в сайта на Microchip


Сря Апр 26, 2006 7:19 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
PICDEM Full Speed USB
http://www.microchip.com/stellent/idcpl ... t=DM163025


Сря Апр 26, 2006 10:35 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Фев 17, 2006 9:17 am
Мнения: 765
Местоположение: Стара Загора
Мнение 
TheWizard написа:
синхрония трансфер е 64кБАЙТА/сек
асинхронния - скороста ти зависи от натовареноста на виндоуса
за 4550
max 800 кбайта/сек - само прехвърля масив
ном 400 кбайта/сек - работи без проблем
пробите за време(постоянен обмен) бяха около няколко часа(над 2)

Драйверите дето съм пробвал са оригиналния на микрочип и USBIO98.SYS - разлика - малка и несъществена

Има и виртуален ком - не съм го пробвал, но работил - има много примери в нета за ком
Аз пробвах дирекния със IOCTL и ReadFile, WriteFile


Да изтупаме темата малко от праха... :oops:

Taka, имам няколко работещи проекта, които съм ползвал за драйвер libUsb:
http://libusb.sourceforge.net/doc/

Опън сорс, мултиплатформен, не създава проблеми. Само че установих, че когато искам да получавам данни в реално време (или нещо поне малко близко до реалното време) за Виндовс-а почва да създава проблеми. Проблема е в този цикъл:

Код:

     while (p<end){

         rez=usb_interrupt_read(pic,0x82,p, 64,5); // приемаме 64 байта от 0х82 ендпойнт с таймаут 5 милискунди,записваме в р (указател)

           if (rez<0){   exit(1);  }     // ако      таймаут   

                                 
                    }
                   
               else {     
                p+=64;cnt++;

                }



И така, понякога (никому неизвестно защо) командата за четене от PC-то закъснява. И то с различно време, но понякога достига и до 250 милисекунди. 8O А през това време данните дето трябва да ги приемем са отишли на кино, най-много за 25 милисекунди мога да буферирам в устройството. Процеса си върви с real time приоритет, нищо друго нямам закачено по УСБ-тата, виндовс-а с нищо сериозно не е натоварен и въпреки всичко се отвява.


Въпроса ми към Wizard e: де го този драйвер "са оригиналния на микрочип" и как става това с IOCTL? Бих бил благодарен и за малко код - само най-основните функции поне, ако не те затрунява! Понеже съм почти профан за писане под Джам-а.:oops:
Приемам и всякакви идеи как да го подкарам стабилно.


Пон Дек 18, 2006 3:52 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 39 мнения ]  Отиди на страница Предишна  1, 2, 3

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни