|
C8051F320 от Sillicon Labs и USB драйвер, USB driver - Virtual COM port. |
|
|
|
Sep 3 2005, 11:53
|

Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 20-10-04
Из: Новосибирская обл, п.Краснообск.
Пользователь №: 916

|
CP210x по некоторым источникам - это C8051F320 заточенный под USB <-> COM мост. Зайди на ефо.ру. Наверняка в доках найдёшь чтонибудь. Есть подозрение, что под винды драйвер стандартный будешь использывать от CP210x, а в программе только стартовую инициализацию делать. Обратись к Konst_777 - работал с C8051F320. Ну и эти ветки посмотри. http://forum.electronix.ru/index.php?showtopic=6781http://forum.electronix.ru/index.php?showt...53&hl=c8051f320
--------------------
_____________________________________ Пароли неприемлемы, легко взламываются терморектальным криптоанализатором.
|
|
|
|
|
Sep 3 2005, 17:49
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Последующее изложение предполагает, что Вам действительно необходимо использовать контроллер C8051F320, а не мост USB <-> COM. Под Windows, с контроллером C8051F320 проще "работать" используя USBXpress Development Kit фирмы SiLabs. Kit содержит драйверы для Windows 98SE/Me/2000/Server 2003/XP, а также API для host-а (.DLL) и контроллера (.lib). У SiLabs есть руководство программиста для USBXpress ( AN169). Используя USBXpress реально создать работающую систему, даже не зная, что такое USB. USBXpress не имеет драйвера для Linux. Если желательно иметь одно и то же firmware контроллера и для Windows и для Linux, то можно написать firmware так, что контроллер будет восприниматься операционными системами, как устройство, для которого Вы сможете найти драйверы под обе ОС. Например, как мост USB <-> Ethernet или мост USB <-> COM. При этом следует учитывать, что придется поискать производителя, у которого драйверы виртуального COM порта (VCP) обеспечивают скорость обмена по USB больше 400 Кбайт/сек.
|
|
|
|
|
Sep 5 2005, 08:58
|

Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 26-05-05
Из: Киев, Украина
Пользователь №: 5 426

|
USBExpress - это действительно очень удобно, если нужно организовать обмен с железом и нужно писать свое приложение под винду. У меня задача такая что бы стандартные терминальные программы могли работать с моей железкой. Т.е. Драйвер должен делать виртуальный COM порт.
Если, как говорят умные люди, CP2102 это C8051F320 заточеный под бридж USB <-> COM то мне наверное нужна начинка этого CP2102. Т.е. прошивка или примерчик, то что я смогу залить в 320-ы и он будет себя вести как CP2102 и к нему подойдут драйвера от CP2102.
--------------------
Смотреть в себя, зреть муки свои, зная, что сам ты виновник мук - вот истинное страдание. Отладка / Софокл, "Аякс".
|
|
|
|
|
Sep 6 2005, 20:25
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Архив содержит .EXE файлы. Проверьте на вирусы. Описание в Read_Me.
Прикрепленные файлы
CP210x.rar ( 253.36 килобайт )
Кол-во скачиваний: 623
|
|
|
|
|
Sep 12 2005, 09:23
|

Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 26-05-05
Из: Киев, Украина
Пользователь №: 5 426

|
Ну спасиб тебе дядька  за AN220, AN197 - веть они находятся в Application Notes к CP210x а я все глаза проглядел в App Notes к C8051F320, прям незнаю как благодарить  ! А прошивочка (Firmware) где взялась ? Сам писал или тоже генерится как-то ?
--------------------
Смотреть в себя, зреть муки свои, зная, что сам ты виновник мук - вот истинное страдание. Отладка / Софокл, "Аякс".
|
|
|
|
|
Sep 14 2005, 08:30
|

Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 26-05-05
Из: Киев, Украина
Пользователь №: 5 426

|
Цитата(Konst_777 @ Sep 13 2005, 02:21) Маладец, какой! А если в прошивке для работы с USB использовать USBExpress ? У меня что то неполучается. Хотя теоретически должно работать. Кто-то пробовал ? А то там весь текст на асме ... многа букв, неасилю...
--------------------
Смотреть в себя, зреть муки свои, зная, что сам ты виновник мук - вот истинное страдание. Отладка / Софокл, "Аякс".
|
|
|
|
|
Nov 13 2005, 19:06
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 10-11-05
Из: Chisinau
Пользователь №: 10 697

|
Цитата(Kaplinsky @ Sep 5 2005, 12:58)  USBExpress - это действительно очень удобно, если нужно организовать обмен с железом и нужно писать свое приложение под винду. У меня задача такая что бы стандартные терминальные программы могли работать с моей железкой. Т.е. Драйвер должен делать виртуальный COM порт.
Если, как говорят умные люди, CP2102 это C8051F320 заточеный под бридж USB <-> COM то мне наверное нужна начинка этого CP2102. Т.е. прошивка или примерчик, то что я смогу залить в 320-ы и он будет себя вести как CP2102 и к нему подойдут драйвера от CP2102. По моему я такую же идею встречал на специализированном форуме на сайте www.silabs.ru
|
|
|
|
|
Nov 17 2005, 13:15
|

Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 26-05-05
Из: Киев, Украина
Пользователь №: 5 426

|
Цитата(Charley @ Nov 13 2005, 21:06)  По моему я такую же идею встречал на специализированном форуме на сайте www.silabs.ruА где именно ? Как тема называется непривспомнишь ? А то я там все обсмотрел !!!
--------------------
Смотреть в себя, зреть муки свои, зная, что сам ты виновник мук - вот истинное страдание. Отладка / Софокл, "Аякс".
|
|
|
|
|
Feb 5 2015, 14:51
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387

|
Освежу тему (уже почти 10 лет ей) У кого-то есть раскрытая библиотека USBX_F320_1.LIB? Я так понял силаб её засекретил? Ну сейчас вроде 15ый год уже, к чему эти секреты ихние?
|
|
|
|
|
Feb 5 2015, 18:25
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387

|
Цитата(alexunder @ Feb 5 2015, 17:46)  Думаю, силабс держит патентец на нее. Там сидит функционал для USB-контроллера, зачем она Вам? Ну это всёравно что держать патент на первый паровой автомобиль начала века ) А зачем она мне... пишу на асме потихоньку, хотелось бы видеть набор команд для этих функций. USB_Clock_Start() USB_Init(USB_VID,USB_PID,USB_MfrStr,USB_ProductStr,USB_SerialStr,USB_MaxPower,US B_PwAttributes,USB_bcdDevice); USB_Int_Enable(); Возможно есть примеры на асме без этой мудреной библиотеки, для работы с USB.
|
|
|
|
|
Feb 6 2015, 07:10
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387

|
Цитата(Harbinger @ Feb 6 2015, 09:00)  Файл, прикреплённый к 10-му сообщению в этой теме. Да, раньше смотрел, но ничего не понял там
|
|
|
|
|
Feb 6 2015, 08:05
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Angelborn @ Feb 5 2015, 21:25)  Ну это всёравно что держать патент на первый паровой автомобиль начала века ) Бывает и такое  Цитата(Angelborn @ Feb 5 2015, 21:25)  А зачем она мне... пишу на асме потихоньку, хотелось бы видеть набор команд для этих функций. USB_Clock_Start() USB_Init(USB_VID,USB_PID,USB_MfrStr,USB_ProductStr,USB_SerialStr,USB_MaxPower,US B_PwAttributes,USB_bcdDevice); USB_Int_Enable(); Возможно есть примеры на асме без этой мудреной библиотеки, для работы с USB. Я все-таки не понимаю Вас или Вы не понимаете что есть USBX_F320_1.LIB. Эта "мудрёная" библиотека содержит код высокоуровневых функций типа USB_Clock_Start(), USB_Init() и пр. для работы с USB. На мой взгляд, она исполнена весьма неплохо: инициализация, отправка данных, и пр.. До проекта с F321 я много времени провёл с Cypress FX2 и должен сказать, что реализация USB у Silabs весьма неплохая хоть это и Full Speed. Зачем Вам ее исходники? Оптимизировать? Сомневаюсь, что Вы сделаете лучше чем Silabs, да и потом, Вам потребуется глубокое знание самоё USB и принципов работы подсистемы USB силабсовых МК - где это-то взять?. Если же Вы желаете просто попрактиковаться программированию на ассемблере для 51, то есть же масса вариантов: напишите поддержку файловой системы для какой-нибудь SPI флеш на ассемблере
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
Feb 6 2015, 08:37
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387

|
Цитата(alexunder @ Feb 6 2015, 10:05)  Я все-таки не понимаю Вас или Вы не понимаете что есть USBX_F320_1.LIB. Эта "мудрёная" библиотека содержит код высокоуровневых функций типа USB_Clock_Start(), USB_Init() и пр. для работы с USB. На мой взгляд, она исполнена весьма неплохо: инициализация, отправка данных, и пр.. До проекта с F321 я много времени провёл с Cypress FX2 и должен сказать, что реализация USB у Silabs весьма неплохая хоть это и Full Speed. Зачем Вам ее исходники? Оптимизировать? Сомневаюсь, что Вы сделаете лучше чем Silabs, да и потом, Вам потребуется глубокое знание самоё USB и принципов работы подсистемы USB силабсовых МК - где это-то взять?. Если же Вы желаете просто попрактиковаться программированию на ассемблере для 51, то есть же масса вариантов: напишите поддержку файловой системы для какой-нибудь SPI флеш на ассемблере  Наверное всё-таки низкоуровневых ) Нет, вовсе не хочу там что-либо менять, понятное дело что они это всем своим штатом разрабатывали. Просто нужно написать простую программу для отправки параметров в/из компа по шине USB. Пишу на асме. Вот как туда вставить эти подпрограммы... Что они расходуют, какие ресурсы - хотя бы понимание...
|
|
|
|
|
Feb 6 2015, 09:49
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Angelborn @ Feb 6 2015, 11:37)  Наверное всё-таки низкоуровневых ) я имел ввиду, что функции типа USB_Init, Block_Read и пр. являются высокоуровневыми по отношению к оперированию приемопередатчиком USB, пакетами, токенами и пр. Ну, не важно, в самомо деле. Цитата(Angelborn @ Feb 6 2015, 11:37)  Просто нужно написать простую программу для отправки параметров в/из компа по шине USB. Пишу на асме. Вот как туда вставить эти подпрограммы... Что они расходуют, какие ресурсы - хотя бы понимание... Отлично! Нет ничего проще, чем сделать это с помощью обсуждаемой библиотеки! Вы работаете в Keil? Ну так подключите библиотеку к проекту. Там в пакете USBXpress должны быть и примеры для популярных сред типа Keil и IAR. И там же была информация в PDF-файле о ресурсах, требуемых для библиотеки. Затем в Вашем ассемблерном проекте вызывайте внешние функции с помощью lcall (только не забудьте, что передача переменных идет через регистры Rx) Код ;**************************************************************** ; Объявления внешних функций из библиотеки Silabs USB_API ; Не забудьте прицепить файл USBX_F320_1.LIB к проекту! ;**************************************************************** extrn number (Flash_Size_L,Flash_Size_H) extrn code (USB_Clock_Start) extrn code (_USB_Init) extrn xdata (?_USB_Init?BYTE) extrn code (USB_Int_Enable) extrn code (USB_Int_Disable) extrn code (Get_Interrupt_Source) extrn code (USB_Disable) extrn code (_Block_Read) extrn code (_Block_Write) Вызов _BlockRead() Из обработчика прерывания от USB: Код MessageDispatcher: ; Получена структура сообщения от хоста. Диспатчим ее ; Считываем структуру из USB_Buffer mov r3, #0x01 mov r2, #HIGH(USB_Buffer) mov r1, #LOW(USB_Buffer) mov r5, #0x0E mov r4, #0x00 lcall _Block_Read
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
Feb 6 2015, 11:58
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387

|
О, спасибо. Уже начинаю понимать. В кейле конечно работаю. Вот только не совсем понял ссылки на регистры у вас в примере R1-R5. Получается что сама процедура общается с библиотекой на уровне асма как раз через регистры? А где можно почитать про эти сообщения? В пдф AN169_USBXpress_Programmers_Guide.pdf я не нашёл ничего конкретного, только описания этих подпрограмм.
|
|
|
|
|
Feb 6 2015, 12:41
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Angelborn @ Feb 6 2015, 12:58)  А где можно почитать про эти сообщения? Нигде. Напишите код с вызовом нужной функции, к примеру Block_Write(), на Си и откомпилируйте с выставленной настройкой генерации ассемблерного листинга (где-то в кейле есть, может даже по-умолчанию стоит), то в нем после компиляции увидите как происходит вызов библиотечной функции и передача параметров в функцию на ассемблере. Только тут надо быть очень внимательным, ибо вероятность понаделать ошибок из-за невнимательности на ассемблере гораздо выше чем на Си. Посему настоятельно рекомендую писать программы для работы с USB (да и вообще более менее сложные вещи) именно на Си. Кейл имеет хороший компилятор. Цитата(Angelborn @ Feb 6 2015, 12:58)  В пдф AN169_USBXpress_Programmers_Guide.pdf я не нашёл ничего конкретного, только описания этих подпрограмм. Было где-то, про модель памяти и указания какие регистры задействованы и не подлежат изменению после вызова USB_init(). Не помню точно (3 года уже прошло), в пакете должен быть мануал, не верю что в новых версиях он стал хуже.
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
Feb 6 2015, 13:13
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387

|
Цитата(alexunder @ Feb 6 2015, 14:41)  Нигде. Напишите код с вызовом нужной функции, к примеру Block_Write(), на Си и откомпилируйте с выставленной настройкой генерации ассемблерного листинга (где-то в кейле есть, может даже по-умолчанию стоит), то в нем после компиляции увидите как происходит вызов библиотечной функции и передача параметров в функцию на ассемблере. Только тут надо быть очень внимательным, ибо вероятность понаделать ошибок из-за невнимательности на ассемблере гораздо выше чем на Си. Посему настоятельно рекомендую писать программы для работы с USB (да и вообще более менее сложные вещи) именно на Си. Кейл имеет хороший компилятор. Т.е. вы предлагает просто дизассемблировать отдельные функции? Вариант. Наверное нужно на си переходить. Ассемблер хорош для небольших программ, хотя на нём пишу давно. Цитата Было где-то, про модель памяти и указания какие регистры задействованы и не подлежат изменению после вызова USB_init(). Не помню точно (3 года уже прошло), в пакете должен быть мануал, не верю что в новых версиях он стал хуже. Почитаю, спасибо.
|
|
|
|
|
Feb 6 2015, 14:09
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Angelborn @ Feb 6 2015, 14:13)  Т.е. вы предлагает просто дизассемблировать отдельные функции? Вариант. Нет! Я говорю об ассемблерном листинге, который генерируется любым компилятором Си (если выставлена соответствующая опция). Это будет точный ассемблерный код Вашей программы, написанной на Си. Чтоб потестировать, создайте пустой Си-проект в кейле для 8051, например и напишите что-то типа void main { a = 5; b = 6; _BlockRead(); } скомпилируйте и посмотрите листинг, оттуда станет ясно, что "находится внутри сишной программы". Это не позволит Вам заглянуть в библиотеку Silabs, т.к. она уже откомпилирована и является сборником бинарного кода (который можно дизассемблировать, только вот зачем?), но дасть понять как работает компилятор Си. Впрочем, думаю все это есть в описании к C51 от Keil, но я никогда его не читал...
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
Feb 10 2015, 07:42
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 12-06-07
Пользователь №: 28 387

|
Всем спасибо за ответы! Сделал проект в Кейле, добавил туда все файлы из проекта Силабс, который называется TestPanel, там где можно поморгать светодиодом и получить данные АЦП по шине USB. Откомпилировал (ошибок 0, но 19 предупреждений почему-то). В кейле поставил галочку "внедрять asm код в LST" Так вот... действительно все команды асма стали видны. Но какая-то неувязочка. Если сравнивать бинарно прошивку напрямую из камня и вот эти команды asm из lst, то видно много различий. Не пойму вследствии чего это так...
|
|
|
|
|
Jul 11 2016, 20:57
|
Группа: Новичок
Сообщений: 3
Регистрация: 11-07-16
Пользователь №: 92 512

|
Ребята, помогите написать\подобрать драйвер для железяки на базе silabs 8051f320. Изрыл весь инет, максимум чего добился - корректной работы на winxp32 и win764. Но проблема в том что работать это все должно на win7-32! на этой системе никак не встает, никакие танцы с бубном не помогают
Не за просто так, само собой!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|