Отговори на тема  [ 3 мнения ] 
PIC18f4550 & USB 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 03, 2006 9:50 pm
Мнения: 39
Мнение PIC18f4550 & USB
От месец се опитвам да напиша софтуер за PIC18F4550 и USB, но срещам малко трудности. Доста материали изчетох, но някои неща все още не са ми ясни:

1.Когато се получават данни през USB към микроконтолера в USB Buffer Descriptor Table Registers се записва броя на байтовете в пакета и адреса на началната клетка на блока с данните. Как SIE определя коя да бъде тази клетка?
2. Ако е необходимо входящите данни да бъдат записани в следващата банка памет, предполагам, че смяната става автоматично?
3.Кога се изчиства USB RAM паметта (банки 4,5,6)?
4.При Enumeration как да определя кои точно данни да изратя към ЕР0 и в каква последователност трябва да бъдат? В документацията за ПИКа прочетх, че това се определя от PID битовете. От спецификацията на USB2.0 прочетох как се декодират, но това не ми помага да разбера кои данни точно хоста иска да получи.
5.Какво става когато настъпи някое от разрешените прекъсвания в UIE регистъра? Трябва ли да бъде изпълнена подпрограма или ...?
6.Как се осъществява синхронизацията на I/O поток? По какъв/кой сигнал става синхронизирането (ако е разрешено разбира се)?


Нед Яну 06, 2008 9:07 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Окт 13, 2004 11:24 pm
Мнения: 500
Местоположение: Стара Загора
Мнение 
забравил си да споменеш в какъв режим е комуникацията HID BULK. за HID мога да ти отговоря че клиентската програма е длъжна да пулва контролера и предава приема данни , размерите на буферите на данните трябва да са еднакви в дескриптора и в клиентската програма иначе комуникацията не работи , PID и VID са двете стойности които отличават закачените USB устройства, по тях драйвера разбира към кое устройство да направи комуникация /HANDLE/, най-добре виж примерчетата във CCS .


Сря Яну 09, 2008 1:31 am
Профил YIM
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 03, 2006 9:50 pm
Мнения: 39
Мнение 
Като се позамислих малко:
В банка#4 трябва да направя buffer descriptor table. За всяка крайна точка ще задам адреса от коя клетка на паметта да започне нейният буфер. Май така си отговорих на първите три въпроса, а? :D
4,5,6 въпрос остават :)
Ако мога да допълня 4ти въпрос :). Някой от описателите (като производител на у-втото) са по-дълги от 1байт. Какво става тогава? Как ще се означи къде започва един описател и къде свършва тоЙ?


forest_gump, Интересувам се от BULK (иначе ми е ясно, че при този режим не може да има синхронизация. Това може да се получи при Interrupt. Сигруно си имал предвид този режим като си писал HID, защото последното се води клас на у-вото). За CCS: ще видя какви примери са даденим въпреки че съм ориентиран единствено към Асемблер при писането на код за МКта. ;)


Сря Яну 09, 2008 2:38 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 3 мнения ] 

Кой е на линия

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


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

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