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

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Ами ето го заданието. 12 ADC-та 24 битови работещи на 8кHz (всяко). Луда работа. Това е непрекъснат поток, т.е пускаш и сядаш на компютера и гледаш на монитора (горе долу) и дращи на диска.

1. ADCтата са серйини. Някаква извратена форма на SPI. Но достатъчно извратена, за да не може да се пусне самостоятелно на DMA (поне така ми се струва). Водещ е контролера, но наличието на данни е асинхронно и се индицира от АЦП-то. Извратения. Максимална скорост на клока на SPI - 8Mhz.

Сега си правя такива сметки.

Трябва да се обходят всичките ADC-та за 125us(1/8kHz). Което прави около 10us за 1 АЦП. Ако вземем 5Mhz клок на SPI, само за четенето на данните (3*8 бита) ни трябват 4,8us. T.e на всяко АЦП имам около 5us на дискрет за някаква обработка плюс трансфер към компютера. Освен това трябва и да се менажира превключването на SPI канала към следващото АЦП + някаква система за изчакване и следене за готовност от страна на АЦПто.
Е с тия изисквания не ми се мисли за компресия. А и най - ми се ще нещата да станат прости като дизайн - всичкото данни да се мушне в компютера, пък натам програмиста да решава какво ще прави с тях. Защото иначе утре ще цъфне някой и ще каже - при твойта компресия губя един бит в един кой си случай - а сядай и мисли. Затова чиста работа - на ти данните - бии си ги в главата.

Цялата работа си плаче за програмируема логика. Но ако може да стане само с един контролер - по добре.

Сега умувам дали тия 12 АЦПта могат да се пуснат синхронно някак си. Та поне да следя само първото за готовност. Защото ако се окаже че трябва да дебна всяко - отказвам се.

Ей тва ми е мъката. Като цяло идеята с 24 битовите АЦПта е един голям търговски трик - на всички е ясно че от 24 бита я останат 19, я не. Но по подобие на звуковите карти - продаваме ти 24 битов звук.

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


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

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение 
Нещо не ти е вярна сметката - ако ползваш хардуерен SPI - имаш достатъчно време за обработка.
Ще имаш прекъсване на всеки байт.


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

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Ами незнам може и да бъркам, но:

5Mhz клок на SPI прави 200ns на бит, или 1,6us на байт. Еба гo и микроконтролера дето ще го прекъсвам на 1,6us. Ако е АРМ, направо забравяме, с PIC може и да стане, но ефекта от прекъсването ще е много спорен. Сега ако намеря SPI дето да може да работи на 24 бита, малко е по така, ама мен ако питаш все тая - циклични прекъсвания от порядъка на под 10 микросекунди не са си работа.

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


Чет Апр 20, 2006 11:16 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
мда... и аз така си мислех че проблема ти не е как да пратиш данните по USB а как да ги вземеш от АЦП...

Погледни SSC-то на SAM-a. С него напълно можеш да симулираш SPI, но по-важното е че можеш да си навържеш логика.
Примерно ако трябва да четеше и пишеш на всеки трансфер, може писането да се синхронизира по външен сигнал, а четенето да се синхронизра след писането... Така ще имаш хем DMA хем синхронизация, но виж за превключване на АЦП-тата ще трябва са измислиш нещо...
бтв, не разбирам що ще се набутвате с 12 АДЦ-та? Като си помисля че всяко парче ще е поне 5$... Що не вземеш едно с 12 входа. Мисля че бях гледал на TI 16 входово и струваше <10$, но не си спомням дали можеше да семплира синхронно (ако държиш на това)...


Чет Апр 20, 2006 11:28 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Цецо написа:
Ами незнам може и да бъркам, но:

5Mhz клок на SPI прави 200ns на бит, или 1,6us на байт. Еба гo и микроконтролера дето ще го прекъсвам на 1,6us. Ако е АРМ, направо забравяме, с PIC може и да стане, но ефекта от прекъсването ще е много спорен. Сега ако намеря SPI дето да може да работи на 24 бита, малко е по така, ама мен ако питаш все тая - циклични прекъсвания от порядъка на под 10 микросекунди не са си работа.


С ARM нямаш проблем да си направиш FIQ на всяка микросекунда... Влизането и излизането са не повече от 500нс (при 48МHz). Ако напишеш обработката на асмеблер и изпълняваш от RAM - < 10-на инструкци, ще трае около 200-300нс.
А с ДМА на 3 байта може и нормално IRQ да подкараш при 10Мбит SPI без никакъв проблем....


Чет Апр 20, 2006 11:41 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Обиколил съм всички пройзводители. Наистина има едни бързи Sigma Delta на TI, но между редовете е написано че динамичния обхват е дефиниран при работа с един канал. При превключване на каналите, става мазало, което си е нормално, говорим за сигма делта. И ако искаш точност, трябва силно да се намали скоростта. А мен ми трябват 12*8kHz което си е огромна скорост за sigma delta. Единственото многоканално АЦП което може да вдига големи скорости при що годе добър динамичен обхват е едно на Analog, дето струва 50$ за 1000 бр, още не се продава, иска 4 захранващи напрежения (баси кво ги правят незнам) и като капак на всичко е забранено да се доставя за БГ . Явно е някаква военна разработка, която сега са решили да продават на простолюдието, защото е така направено че да ти е максимално неудобно всичко.

Та накрая отидохме на 12 АЦП-та (ADS1251). Които сумарно струват точно 264,96 лв. доставка Акерман. Но общо взето това чудо няма да е масово пройзводство (ако въобще се пройзвежда). Така че цената е .... да кажем, че не е определящ фактор.

А забравих да кажа че тоя модул трябва да е изолиран галванично от компютера. На 5kV. Което също си е проблем.

Едит: По отношение на контролера.

1. Не мога да вдигам клока над 8Mhz (АЦПто).

2. Абе да прекъсвам веднъж на 1,6us при положение че обработката на прекъсването е 500+300нс, т.е половината от времето - не ми се струва ресурсооправдано. Излиза че по голяма част от работата е в прекъсването - ами защо да е в прекъсване тогава. Пулинга ми се струва по подходящ.

3. Гледал съм SSC то на Атмела. Наистина има възможност за по големи думи, но логиката на АЦП то е някаква супер извратена. То си сигнализира готовноста през DOUT пина и то само ако го попиташ чрез ниво на клока. На всичко отгоре не е просто бит, а трябва да се изчака да падне в нула и да се качи в единица. Абе извращение някакво. Ама АЦПтата не ги избирам аз. И затова си мисля че DMA то няма да иска да се нагоди към такава главоблъсканица.

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


Чет Апр 20, 2006 11:49 am
Профил ICQ
Ранг: Напреднал
Ранг: Напреднал
Аватар

Регистриран на: Пет Окт 21, 2005 8:45 am
Мнения: 499
Мнение 
@Цецо, ако пуснеш на всичките 12 АЦП-та клок едновременно, ще можеш да ги четеш в паралел, като после на PC-то ще си разхвърляш съответните битове в съответните 24-битови думи за всяко АЦП. Подаваш един такт и прочиташ на веднъж порт и половина. Ако ти стига времето можеш и директно в ПИК-а да си ги разхвърляш битовете. Загуба на пинове е, но времето ти става 12 пъти по малко.
А иначе ти препоръчвам все пак да ползваш 18F4550. Има 2к буфер за USB модула и еднократно наистина може да ти ги осигури тези 12Мв трансфер.

_________________
Простотията е Божи дар, но човек не бива да парадира с подаръците си!


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

Регистриран на: Чет Апр 13, 2006 11:06 pm
Мнения: 109
Мнение 
Цецо написа:
Ама е 8051. А аз него не го обичам (защото просто не го познавам добре), а пък тепърва да седна да се занимавам с него, нямам време и нерви. Иначе нищо лично към процесорите - сигурно са си ОК.


Какво ще кажеш да ти предоставим един Silabs USB Toolstick, включва IDE и Keil (до 2к), за да се запознаеш спокойно с C8051Fxxx, когато си свободен.

Офертата важи за всеки заинтересуван...

_________________
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.


Чет Апр 20, 2006 12:30 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Цецо написа:
А забравих да кажа че тоя модул трябва да е изолиран галванично от компютера. На 5kV. Което също си е проблем.


Малка подробност - голям проблем... за това ли трябва да си на батерии?

Може да подходиш съвсем радикално. Виж http://www.thisisant.com/
Това е т.н. ANT технология, с две думи е правена точно за сензори - прехвърля сериен по радио.. Имаш 1Мб/с на RF канал, 100-на RF канала, но от 1 чип се поддържат до 4.
Само че така ще се наложи да направиш не едно устройство а поне 4 (или 12). Във всяко устройство ANT+MSP430 + 1-4 ADC...
Без АДЦ-то устройството ще издържи години на малка батерийка... изолация няма нужда... Няма сложни протоколи - само 7 байта хедър на всеки пакет който пращаш...

ЕДИТ: Nordic (http://www.nvlsi.no) предлагат nRF24E1:
The entire radio, 8051 MCU, 9 channel 12 bit ADC, peripherals, inductors and filters, are integrated on a single die which gives the highest value and smallest Bill of Material (BoM) available in the market today. The only external components needed to make a complete system are a crystal, resistor, and a low cost external 4KB EEPROM for initial program storage.


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

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
вържи 12 ADC-SPI последователно


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

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
evc:
Идеята има смисъл, при обикновенни АЦП та ще стане, при тия обаче не съм 100% убеден. Сигма делтата са малко особенни.
Какво разбираш под "Има 2к буфер за USB модула и еднократно наистина може да ти ги осигури тези 12Мв трансфер", по точно с думата "еднократно"

F-DR:
На тази оферта преди няколко години бих се израдвал страшно. Тогава развойните системи ги гледах по списанията и можех само да цъкам с език(тогава всичко ми беше ужасно скъпо, а имах време бол). Сега просто нямам време да се обърна, притиснат съм с камари задачи, времето ми е най-голямата преса. Това е и основната причина да търся решение базирано на нещо познато. Но все пак ще имам предвид офертата. Особенно ако се получи идеята ми да прехвърля проекта на друг колега, че на мен ми идва множко определено.

Миро:
Мерси за предложението. Като казвам продължително време за работа не визирам години. По скоро да кажем няколко часа автономна работа. Така че това все още не ми е най-големия проблем. Засега мислех да изолирам АЦПтата с оптрони и от там да съм вързан с компютъра. А ако ползвам FT245 мога да изолирам и данновата шина, макар че там скоростта е височка и незнам дали е добра идея. Но с тия новите изолатори на Analog може и да станат и така нещата.

Магьостник:
Не става. АЦП то не е с стандартен SPI. По скоро е просто синхронен сериен порт - има само два крака - CLK и DOUT. Поне един CS да му бяха турили каубойците.

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


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

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
мисля че 4550 ще ти свърши работа ама ела на ICQ


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

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Цецо написа:
evc:
Миро:
Мерси за предложението. Като казвам продължително време за работа не визирам години. По скоро да кажем няколко часа автономна работа. Така че това все още не ми е най-големия проблем. Засега мислех да изолирам АЦПтата с оптрони и от там да съм вързан с компютъра. А ако ползвам FT245 мога да изолирам и данновата шина, макар че там скоростта е височка и незнам дали е добра идея. Но с тия новите изолатори на Analog може и да станат и така нещата.


С риск да стана нахален... виж nRF24Z1

В един чип има 2.4ГХц трансмитер + 96Кхц 24бит АЦП + 16бит DAC + регулатори на захр + ...


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

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Не става. Това е за аудио. Там се ползват всякакви хитрини за да се замаже калпавата работа на евтиния конвертор. Сами факт - вход 24 бита изход 16 бита, говори че това си е един търговски трик.

То не че и това което правя, няма да е нещо в тая насока, но все пак говорим за медицинска техника. Не случайно ще се дават 250лв за АЦП та. Иначе просто щях да сложа audio конвертори, каубойците продават 24 битовите по 1$.

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


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

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

_________________
Простотията е Божи дар, но човек не бива да парадира с подаръците си!


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

Кой е на линия

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


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

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