| Автор |
Съобщение |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 USB Full Speed device - кой контролер да избера?
Трябва да се прави един проект, който да прехвърля доста прилично количество информация към PC.
Данните представляват непрекъснат поток който може да се каже че откъм устройството постъпва синхронно. Скоростта е близо 300 кбайта за секунда (12 канала 24 битa 8Khz ADC).
Скоростта е височка и предвид синхронността на данните - гледам към изохронен USB трансфер.
В полезрението ми са следните чипове:
1. PIC18F4550
2. AT91SAM7S
3. LPC214X
4. C8051F34X (обаче не ми допада 8051 ядрото, т.е няма кой да седне да го мъчи тепърва).
Имате ли опит с нещо подобно? Как мислите възможно ли е по принцип?
Освен това ми виси и проблема с драйверите за Windows. Никога не съм се блъскал в тая посока. Дали има нещо готово за целта, да не откривам топлата вода.
Друга еретична мисъл дето ми хрумва е Ethernet. Ама с USB поне имам малък опит откъм дивайса, а за мрежата съм бос както откъм устройство, така и откъм PC. А и много харчи пусти Ethernet, а аз се храня на батерии.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Апр 19, 2006 4:08 pm |
|
 |
|
3aek
Ранг: Форумен бог
Регистриран на: Вто Яну 10, 2006 2:40 pm Мнения: 2258
|
ако не си правил драйвери за USB за Windows забрави всички гореизброени, тръгнахме в таз насока от няколко месеца си блъскаме главите и писането е най-малкия проблем, после идват маса въпроси от клиенти - драйвера не работи със Windows build XXX, SP YYY, защо пренебрегвате великата система Lunux (или Mac OS) и прочее
FT245 + процесор по избор е най-бързото решение
|
| Сря Апр 19, 2006 4:37 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
няма начин да стане FTто. То има ограничение на 3Мbit. А моя трафик отива на малко над 3М, защото ми трябва и служебна информация. Някъде къде 3,2 мбита ми трябват.
По отношение на драйверите си мислех не може ли да се ползват някакви стандартни класове - например за stream audio.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Апр 19, 2006 4:43 pm |
|
 |
|
backson
Ранг: Новодошъл
Регистриран на: Сря Дек 21, 2005 2:09 pm Мнения: 145
|
Цецо това са байтове бе влизаш в нормата ?! --> http://ftdichip.com/Products/FT245BM.htm
драйверите VCO - 300 кбайт/сек ако с D2XX - 1Mбайт/сек трансфери. Аз между другото искам да питам варианта PIC18F4550 - USB некой пускал ли го е въобще поне като виртуален ком ?
|
| Сря Апр 19, 2006 4:47 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
Цецо
- PIC18F4550 - ексампъла(можеша да си го оптимизираш) на микрочип работи на 98 и на ХР и по скорост бие омразното ми FT. Допуска смяна на драйвери, но е все тая...
backson
- какъв е смисъла да го правиш на СОМ като можеш да го адресираш дирекно
3aek
- за 4550 невиждам смисъл да си пиша драйвер(WIN) освен да бъда оригинален. Проблем остават други операционни системи
|
| Сря Апр 19, 2006 5:34 pm |
|
 |
|
backson
Ранг: Новодошъл
Регистриран на: Сря Дек 21, 2005 2:09 pm Мнения: 145
|
Брех тоз магьосника ни сипа на всичките да ядем.  Значи аз тогава the wizzard да те разбирам че си пускал USB на 4550 ли ? Какви фрайвери ползва за XP ? има ли готови ? Как конфигурира PICa под MCC18 с функците на Майкрочип ли ? Дай малко разяснения плс 
|
| Сря Апр 19, 2006 5:56 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
Значи ако компилнеш примера им работи в дебуг режим с ICD2 - махаш фусето за дебуг
Драйверите дето съм пробвал са оригиналния на микрочип и USBIO98.SYS - разлика - малка и несъществена
main.c
#include <p18cxxx.h>
#include "config.h"
...................
Conifg.H
#ifdef __18F4550_H
#pragma config PLLDIV = 3 // Divide by 3 (12MHz input)
#pragma config CPUDIV = OSC1_PLL2 // [OSC1/OSC2 Src: /1][96MHz PLL Src: /2]
#pragma config USBDIV = 2 // Clock source from 96MHz PLL/2
#pragma config FOSC = HSPLL_HS // HS oscillator, PLL enabled, HS used by USB
#pragma config FCMEM = OFF // Fail Safe Clock Monitor
#pragma config VREGEN = ON // USB Voltage Regulator
#pragma config IESO = OFF // Internal/External Switch Over
#pragma config PWRT = ON // Power Up Timer
#pragma config BOR = OFF // Brown Out Reset
#pragma config BORV = 21 // Brown Out Voltage
#pragma config WDT = OFF // Watchdog Timer
#pragma config WDTPS = 32768 // 1:32768
#pragma config MCLRE = OFF // MCLR Enable
#pragma config LPT1OSC = OFF // Low Power Timer1 Oscillator Enable
#pragma config PBADEN = OFF // Port B A/D Enable: PortB<4:0> pins are configured as digital I/O on RESET
#pragma config CCP2MX = OFF // CCP2 Mux bit
#pragma config STVREN = OFF // Stack Overflow Reset
#pragma config LVP = OFF // Low Voltage ICSP:
#pragma config ICPRT = OFF // Dedicated In-Circuit Debug/Programming Enable
#pragma config XINST = OFF // Extended Instruction Set Enable
#pragma config DEBUG = OFF // Background Debugger Enable
#pragma config CP0 = OFF //Code Protection Block 0
#pragma config CP1 = OFF //Code Protection Block 1
#pragma config CP2 = OFF //Code Protection Block 2
#pragma config CP3 = OFF //Code Protection Block 3
#pragma config CPB = OFF //Boot Block Code Protection
#pragma config CPD = OFF //Data EEPROM Code Protection:
#pragma config WRT0 = OFF // Write Protection Block 0:
#pragma config WRT1 = OFF //Write Protection Block 1:
#pragma config WRT2 = OFF //Write Protection Block 2:
#pragma config WRT3 = OFF //Write Protection Block 3:
#pragma config WRTB = OFF //Boot Block Write Protection:
#pragma config WRTC = OFF //Configuration Register Write Protection:
#pragma config WRTD = OFF //Data EEPROM Write Protection:
#pragma config EBTR0 = OFF //Table Read Protection Block 0:
#pragma config EBTR1 = OFF //Table Read Protection Block 1:
#pragma config EBTR2 = OFF //Table Read Protection Block 2:
#pragma config EBTR3 = OFF //Table Read Protection Block 3:
#pragma config EBTRB = OFF //Boot Block Table Read Protection:
//#pragma config //
#endif
|
| Сря Апр 19, 2006 7:00 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
SAM&LPC са за предпочитане, даже по-скоро само SAM заради това че има DMA-та.
но... първо трябва да помислиш как ще ги вкараш в съответния контролер...
Всичко зависи от интерфейса на АЦП-то... Ако примерно е SPI - тогава най-лесно ще стане с SAM - пускаш си ДМА-тата и чакаш...
Ама ако ще ги вкарваш прези GPIO-ta имаш сериозен проблем... Ако си мастер, ще ти трябват поне 3 операции с бавните портове, ако си слейв - може евентуално да успееш с FIQ-a
|
| Сря Апр 19, 2006 7:11 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Верно че 245 цата работи до 1 мегабайт (поне така пише).
Магьостник, какъв трансфер си вдигал със драйвера на микрочип? Ако не ме лъже паметта той беше за виртуален COM. Пробвал ли си да правиш непрекъснат трансфер - не кратки и бързи пакети, а продължителен трансфер да кажем 10 минути на висока скорост. Че контролера го може е ясно, ама не знам драйверите дали са написани като хората.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Сря Апр 19, 2006 7:19 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
синхрония трансфер е 64кБАЙТА/сек
асинхронния - скороста ти зависи от натовареноста на виндоуса
за 4550
max 800 кбайта/сек - само прехвърля масив
ном 400 кбайта/сек - работи без проблем
пробите за време(постоянен обмен) бяха около няколко часа(над 2)
Има и виртуален ком - не съм го пробвал, но работил - има много примери в нета за ком
Аз пробвах дирекния със IOCTL и ReadFile, WriteFile
|
| Сря Апр 19, 2006 7:38 pm |
|
 |
|
F-DR
Ранг: Новодошъл
Регистриран на: Чет Апр 13, 2006 11:06 pm Мнения: 109
|
Главното преимущество на C8051F3xx на Silabs e високопроизводителното ядро - от 2 до 4 пъти по-производително от PIC18F4550, както и бързото АЦП, вграден осцилатор (и за USB).
_________________ 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 1:15 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ама е 8051. А аз него не го обичам (защото просто не го познавам добре), а пък тепърва да седна да се занимавам с него, нямам време и нерви. Иначе нищо лично към процесорите - сигурно са си ОК.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Чет Апр 20, 2006 10:13 am |
|
 |
|
backson
Ранг: Новодошъл
Регистриран на: Сря Дек 21, 2005 2:09 pm Мнения: 145
|
Цецо към какво се насочи все пак ? Аз също имам един проект с USB и PIC ма не ми се рискува с 4550, мисля да си ползвам FTxxx чисто решение без да ставам "гуру" в протокола на USB. Много ми се ще да ползвам 4550 щото ще спестя пари и място на платката, ама нещо нямам доверие на PIC с USB, пък и някой беше казал някога във форума май беше бач Кольо, че ако трябва да се прави нещо дет работи читаво по-добре от FTDI няма, а 4550 ще си го оставя кат имам по-свободно време да го разцъкам
|
| Чет Апр 20, 2006 10:18 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
И аз имам същия проблем. Трябва ми бързо решение, без много да се мисли. Засега ще пробваме с 245цата.
Но иначе имам желание да разбера как да стане с пика, на по късен етап, може да го ползвам.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Чет Апр 20, 2006 10:26 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Цецо какъв ти е проблема с AT91SAM7S32 ?
само с това животно може да постигнеш >12мбита. Разбира се, ако можеш да си направиш и входния и изходен трансфер с ДМА-та, а по средата CPU-to компресира "on the fly".... Не занам какво мериш с тези АЦП-та, но много вероятно е от 24-бит стойности с проста компресия да ги намалиш поне до 8-бит.
|
| Чет Апр 20, 2006 10:42 am |
|
|