Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

PIC18f4550 & USB
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=5282
Страница 1 от 1

Автор:  harleybg [ Нед Яну 06, 2008 9:07 pm ]
Заглавие:  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 поток? По какъв/кой сигнал става синхронизирането (ако е разрешено разбира се)?

Автор:  forest_gump [ Сря Яну 09, 2008 1:31 am ]
Заглавие: 

забравил си да споменеш в какъв режим е комуникацията HID BULK. за HID мога да ти отговоря че клиентската програма е длъжна да пулва контролера и предава приема данни , размерите на буферите на данните трябва да са еднакви в дескриптора и в клиентската програма иначе комуникацията не работи , PID и VID са двете стойности които отличават закачените USB устройства, по тях драйвера разбира към кое устройство да направи комуникация /HANDLE/, най-добре виж примерчетата във CCS .

Автор:  harleybg [ Сря Яну 09, 2008 2:38 am ]
Заглавие: 

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


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

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/