<?xml version="1.0" encoding="windows-1251" ?>
<rss version="2.0">
<channel>
	<title>ELECTRONIX_INTERFACES</title>
	<description>Конференции по интерфейсам</description>
	<link>http://electronix.ru/forum/index.php</link>
	<pubDate>Tue, 07 Sep 2010 06:14:45 +0400</pubDate>
	<ttl>60</ttl>
	<item>
		<title>передача данных GPRS модулем Q2501B</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80133</link>
		<description>Подскажите пожалуйста кто сталкивался.. Есть модуль WISMO Q2501B управляется микроконтроллером PIC18, задача сего устройства отправлять(и принимать) определенные данные на сервер. регится в сети и в интернет выходит без проблем, но при установке TCP соединения (открытии сокета) и передаче данных возникают ситуации когда от модуля на сервер пакет проходит, а ответный пакет хоть и отправляется сервером но обратно не доходит. И наоборот. весь трафик со стороны модуля и сервера смотрел и анализировал различными снифферами, все пакеты корректны, но почему то не все проходят .. бьюсь уже долго и безуспешно.. может не тем путем иду? TCP/IP стек реализован мной програмно в PIC18</description>
		<pubDate>Mon, 06 Sep 2010 19:53:53 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80133</guid>
	</item>
	<item>
		<title>dp 83865</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80122</link>
		<description>Добрый день! Не подскажите где можно посмотреть/скачать/или просто поделится личным опытом/ скоростные характеристики микросхемы в зависимости от размера пакета?</description>
		<pubDate>Mon, 06 Sep 2010 16:01:26 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80122</guid>
	</item>
	<item>
		<title>ERROR 13</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80106</link>
		<description>Всем добрый день.Подскажите пожалуйста что это за ошибка 13.Проект работал не один десяток устройств и вдруг такая беда не знаю с чем связана.</description>
		<pubDate>Mon, 06 Sep 2010 10:31:51 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80106</guid>
	</item>
	<item>
		<title>GPRS-соединение между двумя телефонами</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80094</link>
		<description><![CDATA[здравствуйте.<br /><br />подскажите пожалуйста, есть ли возможность установить gprs-соединение между мобильным телефоном и gsm-мостом? существуют ли устройства/программное обеспечение, реализующие подобную возможность?<br /><br />для чего нужно: хотело бы сэкономить на мобильном интернете, подключившись через гсм-мост к домашнему проводному интернету <img src="http://electronix.ru/forum/style_emoticons/default/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" /> .]]></description>
		<pubDate>Sun, 05 Sep 2010 21:39:36 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80094</guid>
	</item>
	<item>
		<title>Трабла с приемом данных в режиме Slave FIFO на чипе Cypress FX2LP</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80076</link>
		<description><![CDATA[Всем привет!<br />Весь мозг вынес мне этот контроллер!!! <img src="http://electronix.ru/forum/style_emoticons/default/smile3046.gif" style="vertical-align:middle" emoid=":smile3046:" border="0" alt="smile3046.gif" /> <br />У меня следующая проблема. Мастером является FPGA.<br />Делаю девайс USB to SATA HDD. Драйвер хоста стандартный для Mass Storage Device.<br />Cypress преобразует SCSI команды в команды SATA и отправляет их в FPGA.<br />Из FPGA необходимо принимать пакеты с данными (сектора) по 512 байт и по завершению чтения всех секторов<br />принимать 20 байт ответа, но на хост ответ уходить не должен.<br />Никак не могу сделать корректный прием данных из FPGA и передать их драйверу на хост. Хоть убейся!!!<br />Если EP8 настроена на AUTOIN, то на хост приползают все пакеты из FPGA.<br />Реакции на INPKTEND = 0x88 - нет.<br />В общем так не канает.<br /><br />Тогда настраиваю на прием пакетов из FPGA по EP8 в режиме MANUAL.<br /><!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;WRITEDELAY&#40;&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;EP8CFG = 0xE2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// ep8 is valid BULK IN 512 double buffered<br />&nbsp;&nbsp;&nbsp;&nbsp;WRITEDELAY&#40;&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;EP8FIFOCFG = 0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// set EP8&#58;&nbsp;&nbsp;0x05=MANUAL, 0x09=AUTOIN<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;WRITEDELAY&#40;&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;EP8AUTOINLENH = 0x02; // Auto-commit 512-byte packets<br />&nbsp;&nbsp;&nbsp;&nbsp;WRITEDELAY&#40;&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;EP8AUTOINLENL = 0x00;<!--c2--></div><!--ec2--><br /><br />Прием реализовал так:<br /><br /><!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;// для отладки читаем один сектор не зависимо от команды SCSI<br />&nbsp;&nbsp;&nbsp;&nbsp;sectorcount = 1;<br />&nbsp;&nbsp;&nbsp;&nbsp;while &#40;sectorcount--&#41;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;// ждем, когда EP8 будет FULL<br />&nbsp;&nbsp;&nbsp;&nbsp;while&#40; !&#40; EP68FIFOFLGS & 0x10 &#41; &#41;;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;// firmware commits EP8 packet<br />&nbsp;&nbsp;&nbsp;&nbsp;INPKTEND = 0x08;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while&#40; !&#40; EP68FIFOFLGS & 0x10 &#41; &#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;// skip пакет, т.к. это 20 байт ответа<br />&nbsp;&nbsp;&nbsp;&nbsp;INPKTEND = 0x88;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<!--c2--></div><!--ec2--><br />Работает не корректно. Да вообще творится черт знает что!!!<br />- сектор засасывается на хост несколькими частями<br />- когда приходит новая SCSI команда, то продолжаю передаваться куски предыдущего сектора<br />- а также передаются 20 байт, которым я сделал SKIP!<br /><br />Могу выложить логи USB сниффера.<br /><br />Я так подозреваю, что ожидание заполнения FIFO while( !( EP68FIFOFLGS & 0x10 ) ); не так работает.<br />По докам, этот флаг валидный, когда FPGA установила FIFOADR = "11".<br />А у меня выходит, когда FPGA отправила сектор в EP8, происходит переключение снова на EP4, т.е. чтение с хоста.<br /><br />Как сделать правильно?  <br />]]></description>
		<pubDate>Sat, 04 Sep 2010 19:28:40 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80076</guid>
	</item>
	<item>
		<title>Определить если связь</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80056</link>
		<description>У меня такой вопрос. Вот к примеру модему (GE864, хотя я думаю для моей проблемы не важно) звонит другой номер, начинается разговор. Какой AT-командой можно определить есть ли в данный момент подключение или нет? Я понимаю что можно NO CARRIER ждать, но такая проблема что периодически нужно игнорироватьвходной поток, поэтому мне нужна AT-команда которая ответить если соединение или его нет. Я помню что такая команда была но найти никак не могую Подскажите её пожалуйста.</description>
		<pubDate>Fri, 03 Sep 2010 20:41:41 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80056</guid>
	</item>
	<item>
		<title>ISA временные сигналы</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80045</link>
		<description>Здрям. Не подскажет ли кто, где можно нарыть нормальное описание шины ISA, с временными диаграммами, желательно на русском?</description>
		<pubDate>Fri, 03 Sep 2010 14:45:33 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80045</guid>
	</item>
	<item>
		<title>проблемы с W5100, помогите</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80044</link>
		<description>на плате стоит W5100 присоединененный к плис xc3s2000 с микроблейзем, для связи с контроллером используется ядро xpc_epc. На физическом уровне связь с контроллером есть, т.е. линкуется; в регистры пишу  то что нужно: s/w reset, ip адрес, мас-адрес, адрес шлюза, читаю адреса -все стоит то что записал. но контроллер все равно не пингуется с PC.</description>
		<pubDate>Fri, 03 Sep 2010 13:40:18 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80044</guid>
	</item>
	<item>
		<title>ZigBee от Telegesis (ETRX2...) Кто-нибудь использовал?</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80009</link>
		<description><![CDATA[Прочитал доки вдоль и поперек, пробовал и так и сяк, как защитить сеть от постороннего подключения? Менял ключи, все равно: "Подключайся, и твори что хочешь с S-регистрами любого модема в сети...".<br />Как быть?]]></description>
		<pubDate>Thu, 02 Sep 2010 12:46:48 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80009</guid>
	</item>
	<item>
		<title>sim900 VEXT</title>
		<link>http://electronix.ru/forum/index.php?showtopic=80002</link>
		<description>Нигде не могу найти информацию, можно ли использовать VEXT вместо STATUS. То есть, можно ли считать, что у SIM900 VEXT всегда появляется не раньше, чем STATUS?</description>
		<pubDate>Thu, 02 Sep 2010 11:23:08 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=80002</guid>
	</item>
	<item>
		<title>Доступ из винды к USB mass storage</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79982</link>
		<description><![CDATA[Доброго времени суток!<br /><br />Есть устройство USB mass storage (bulk-only), к которому прикручены некоторые доп.функции, в т.ч. и криптозащита. Для управления этими функциями (и установки шифра) надо иметь с винды доступ к этому устройству. Передаваемой (и принимаемой) информации немного (не более 50 байт). Есть большое желание использовать стандартные драйвера под win и каким-то образом прикрутить эти доп.функции (либо достучаться к другим endpoint, либо передавать по control).<br /><br />Вопросы:<br />1. Возможно ли такое сделать?<br />2. Где найти описание драйверов под винду и их возможностей? WinDDK?<br />3. Проект libusb-win32 подойдет для этой задачи? Кто-нибудь с ним вообще работал?<br /><br />P.S. Прошу в случае глупого вопроса не сильно пинать, ибо я не программер под винду, а схемотехник и работаю с USB впервые.]]></description>
		<pubDate>Wed, 01 Sep 2010 19:14:34 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79982</guid>
	</item>
	<item>
		<title>Quectel GPS L10</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79962</link>
		<description><![CDATA[Народ, а L10 кто пользовал уже? Грабли есть?<br /><br />Ато M10 кости обмыли уже, а про этот - тишина...]]></description>
		<pubDate>Wed, 01 Sep 2010 12:09:19 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79962</guid>
	</item>
	<item>
		<title>CP220x</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79936</link>
		<description>Есть ли подводные камни в использовании и вообще, работает ли?</description>
		<pubDate>Wed, 01 Sep 2010 00:13:08 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79936</guid>
	</item>
	<item>
		<title>Open AT I2C</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79921</link>
		<description><![CDATA[Работаю на модуле Q2687. Пытаюсь передать по I2C несколько байт, вот исходник:<br /><!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->#include &#34;adl_global.h&#34;<br />#include &#34;generated.h&#34;<br /><br />#include &#34;main.h&#34;<br />#include &#34;adl_traces.h&#34;<br /><br />s32 I2C_handle;<br /><br />#define WRITE_BUFF_SIZE 4<br />u8 WBUFF&#91;WRITE_BUFF_SIZE&#93;={0x20,0x6C,0x3F,0x5D};<br /><br />adl_busI2CSettings_t I2Cconf = {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xAA,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADL_BUS_I2C_CLK_STD,&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADL_BUS_I2C_ADDR_7_BITS,&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADL_BUS_I2C_MASTER_MODE<br />};<br /><br />adl_busAccess_t I2Caccess = {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //general call<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00&nbsp;&nbsp;&nbsp;&nbsp;<br />};<br /><br />void main_task &#40;void&#41; {<br />&nbsp;&nbsp;&nbsp;&nbsp;//subscribe to I2C bus service<br />&nbsp;&nbsp;&nbsp;&nbsp;I2C_handle=adl_busSubscribe&#40;ADL_BUS_ID_I2C, 1, &I2Cconf&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRACE&#40;&#40;2, &#34;Writing to the bus&#34;&#41;&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;s32 resp = adl_busWrite&#40;I2C_handle, &I2Caccess, WRITE_BUFF_SIZE, WBUFF&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRACE&#40;&#40;2, &#34;%d&#34;,resp&#41;&#41;;<br />}<!--c2--></div><!--ec2--><br /><br />В результате, хэндлер норм создается, на шину ничего не отправляется, а ответ от функции adl_busWrite приходит -2, то есть ошибочный параметр. Все вроде по примеру, а работать не хочет.]]></description>
		<pubDate>Tue, 31 Aug 2010 16:40:10 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79921</guid>
	</item>
	<item>
		<title>Проблема подключения модуля uUSB-MB5 к КПК.</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79918</link>
		<description><![CDATA[Здравствуйте.<br />Возникла проблема подключения модуля uUSB-MB5 (фирма производитель 4d Systems, построенного на микросхеме СР2102) к КПК.<br />В рекомендациях на использование данного модуля в Win CE, требуется установленный при производстве  код PID равный EA60 заменить на код PID равный EA61.<br />Для выполнения данного действия рекомендована программа CP210xSetIds.<br />Программа CP210xSetIds  установлена. Она позволяет даже выбрать микросхему на обработку и выполнить редактирование всех требуемых полей. Но при нажатии кнопки ПРОГРАММИРОВАНИЕ МС, информация в модуль не заносится. Код PID  остается старый.<br />Вопрос. Кто сталкивался с подобной проблемой? Как удалось ее преодолеть?<br />На компьютере установлена Win XP.<br /><br /><br />Спасибо.]]></description>
		<pubDate>Tue, 31 Aug 2010 15:52:45 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79918</guid>
	</item>
	<item>
		<title>Вопрос про CY7C68013 EZ-USB FX2</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79917</link>
		<description><![CDATA[Добрый день. Систуация такая. Имеется готовое устройство от буржуйских разработчиков, построенное на базе CY7C68013. К нему прилагается программа под винду, которую мне нужно полностью заменить своей самопальной программой. При этом прошивку устройства требуется оставить нетронутой. Использует она драйвер ezusb.sys. Имеется также бумажка с описанием USB команд и формата пакетов для устройства.  Никогда с данным чипом дела не имел. Сейчас скачал CY3681 EZ-USB FX2 Development Kit, запустил EZ-USB Control Panel. Устройство успешно определилось. Смотрю на все это, и возникают у меня вопросы, и не могу я удержаться и не задать их вам.<br /><br /> 1. Как мне скопировать всю информацию из чипа (программу, EEPROM и.т.д.), и что вообще нужно копировать, чтобы в процессе изучения не испортить объект изучения?<br /><br /> 2. Я правильно понимаю, что EZ-USB Control Panel позволяет мне вручную потестировать интерфейс взаимодействия с устройством, напрямую посылая байты в оконечные точки и принимая оттуда данные?<br /><br /> 3. uVision2 - это программа для написания прошивки? Нужно ли мне вообще в ней что-то делать, если я прошивку менять не хочу?<br /><br /> 4. Я скачал и установил Suite USB 3.4 for Visual Studio. В самой студии ничего не изменилось. Как мне ее найти? Умеет ли она работать с драйвером ezusb.sys? Если нет, то можно ли мне использовать новый драйвер cyusb.sys, если прошивка написана под старый?<br /><br /> 5. Как узнать, в каком режиме девайс работает - full speed или high speed?<br /><br /> 6. Сейчас сижу под вистой. Могут ли возникнуть проблемы из-за несовместимости с ней старого драйвера?<br /><br /> 7. (пространный) Может ли в устройстве быть защита, которая не позволит ему работать не с родной программой? (догадываюсь, что может). Может ли быть защита, которая не позволит ему работать с инструментарием от cypress? Может ли быть защита, которая что-нибудь сломает, если "узнает", что я пытаюсь написать свою софтину?<br /><br /> 8. Какой алгоритм дальнейшей работы посоветуете? Какие программы использовать? Какие вопросы у меня еще не возникли, но могут возникнуть в ближайшее время? На какие подводные камни я могу напороться?<br /><br /> <br /> На некоторые из этих вопросов на форуме в том или ином виде уже есть ответы, но меня они не совсем устроили. Большое спасибо всем, кто откликнется!]]></description>
		<pubDate>Tue, 31 Aug 2010 15:41:44 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79917</guid>
	</item>
	<item>
		<title>Проблема с FTDI2232H</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79908</link>
		<description><![CDATA[Добрый день. Есть FTDI2232H, на которой организован мост USB&lt;-&gt;I2C и ATmega644 c I2C. Нужно передавать данные с меги на PC, через мост. Во время передачи FTDI2232H-ведущий приемник,а ATmega644 ведомый передатчик. <br /><br />Собственно сама проблема:<br />Когда мега передала байт и входит в прерывание для подготовки следующего байта она удерживает линию SCL в "0"(согласно спецификации I2C), при этом FTDI2232H должно ждать пока линия SCL не станет в "1". Но на практике FTDI2232H пытается давать CLOCK, когда линия SCL в нуле (на прикрепленной картинке это хорошо видно). Поведение FTDI2232H не соответствует спецификации I2C. <br />Кто с этим сталкивался, как решить эту проблему?<br /><br /><br /><br />]]></description>
		<pubDate>Tue, 31 Aug 2010 11:23:00 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79908</guid>
	</item>
	<item>
		<title>Выбор беспроводной закрытой сети на предприятии</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79895</link>
		<description><![CDATA[Посоветуйте. Необходимо покрыть комплекс промышленных зданий беспроводной автономной закрытой сетью, состоящую из сервера и нескольких (1-20) удаленных источников данных. Скорость передачи данных более 10 мбит (последовательный опрос каналов). Так же хотелось бы чтоб небыло жесткой привязки к протоколам обмена и наличие доступных малогабаритных (типа SMD) модулей приема/передачи, выполненных в индустриальном температурном диапазоне. В сторону какого стандарта смотреть? (IEE802.11 ??) Никогда не работал с такими вещами, потому задаю такие глупые вопросы.  <img src="http://electronix.ru/forum/style_emoticons/default/sad.gif" style="vertical-align:middle" emoid=":(" border="0" alt="sad.gif" />]]></description>
		<pubDate>Mon, 30 Aug 2010 22:21:24 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79895</guid>
	</item>
	<item>
		<title><![CDATA[AT&T сертифицировала SIM900]]></title>
		<link>http://electronix.ru/forum/index.php?showtopic=79886</link>
		<description><![CDATA[Последним долгожданным сертификатом для Simcom стал сертификат от AT&T открывший модулям дорогу на американский рынок.<br /><br />Кстати не так много модулей получили данный сертификат.<br /><br />Привожу ссылку на документ - www.att.com/media/en_US/docs/edo/ATT_Approved_Modules.xls<br /><br />Кстати табличку можно использовать и как пособие по подбору модуля под себя.<br /><br />]]></description>
		<pubDate>Mon, 30 Aug 2010 15:55:29 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79886</guid>
	</item>
	<item>
		<title>Auto Negotiation в LXT971 (Cortina)</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79871</link>
		<description>При включенном режиме Auto Negotiation соединение устанавливается только если режим включается при подключенном кабеле. При отключении и повторном включении кабеля процедура Auto Negotiation не отрабатывает и линк не поднимается. Кто работал с этой микросхемой, подскажите, нужно чтобы все работало периодически рестартить AutoNeg? Или и так должно, а я что-то делаю не так?</description>
		<pubDate>Mon, 30 Aug 2010 09:30:23 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79871</guid>
	</item>
	<item>
		<title>SIM900D 05 прошивка</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79838</link>
		<description><![CDATA[Предупреждаю, не наткнитесь на те же грабли, братья:<br /><br />Раскопал баг в 05 версии софта SIM900D:<br />GPRS отправка пакета. скорость 115200.<br /><br />Если после AT+CIPSEND=&lt;len&gt;&#092;r&#092;n<br />не поставить delay 10мс,<br />он проглатывает несколько байт данных, идущих ему на посылку, Сабака!<br />Притом он CTS не выставляет типа что не надо слать пока.<br /><br />И вообще, крайнее раздражение вызывает удивительная "совместимость" новых версий всех GSM модулей. Не тока симком, но у вэйвком.<br />Зачем вводить в +IPD&lt;num&gt; лишнюю запятую? Специально чтобы всем программистам сидеть и прошивки дорабатывать в изделиях?<br />]]></description>
		<pubDate>Sat, 28 Aug 2010 13:41:53 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79838</guid>
	</item>
	<item>
		<title>модем Enfora GSM0308</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79813</link>
		<description>Всем привет. Никто не сталкивался с модемам Enfora GSM0308? заказчик настаивает на работе с ним, в силу того, что он может работать без внешнего проца (gps-gsm трекер)</description>
		<pubDate>Fri, 27 Aug 2010 17:23:00 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79813</guid>
	</item>
	<item>
		<title>Алгоритм общения с GSM/GPRS модулем</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79809</link>
		<description><![CDATA[Доброго времени суток, уважаемые!<br /><br />Сажусь писать программу под PIC18 для общения с SIM300DZ в составе модема GNS-300RS. В общих чертах всё понятно: отсылается строка, принимается и разбирается ответ. С отсылкой строк более-менее просто, например <!--coloro:#800080--><span style="color:#800080"><!--/coloro--><b><!--fonto:Courier New--><span style='font-family: "Courier New"'><!--/fonto-->putrsUSART ((const far rom char *)"AT+CSMINS?&#092;r&#092;n");<!--fontc--></span><!--/fontc--></b><!--colorc--></span><!--/colorc--> А вот с разбором строк и временем ожидания ответа от модема (в особенности при работе с GPRS) пока туго... хочется сделать нечто автоматизированное, чтобы был массив или структура с запросом, временем ожидания ответа, типовыми ответами и идентификаторами действий, связанных с теми или иными типами ответов. Мне это видится приблизительно так:<br /><br /><!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->struct GSM_Struct<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;char Send&#91;XX&#93;;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned int Timeout;<br />&nbsp;&nbsp;&nbsp;&nbsp;char Receive&#91;YY&#93;;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned char State&#91;Z&#93;;<br />} GSM&#91;NUMBER_OF_OPERATIONS&#93;;<!--c2--></div><!--ec2--><br /><br />Верно ли я подхожу к решению этой задачи? Может ли кто-нибудь поделиться мыслями на этот счёт? Кто как делает разбор приходящих строк? В особенности при работе с GPRS. <br /><br />Ещё хотелось бы узнать, какие начальные настройки модема должны производиться при его первом запуске.<br /><br />Добавлю ещё, что устройство, которое будет работать с модемом, призвано делать много чего ещё помимо общения с интернетом, причём это "много чего ещё" является более приоритетным. Логика работы такова, что даже при зависаниях связи/железа SIM300 (в перспективе SIM900) должны выполняться основные задачи.<br /><br />Думаю, Ваши ответы очень помогут многим начинающим освоиться с темой. Спасибо всем! С уважением, Максим.]]></description>
		<pubDate>Fri, 27 Aug 2010 16:37:11 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79809</guid>
	</item>
	<item>
		<title>sim300dz. Проблема с приемом данных на мк</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79792</link>
		<description><![CDATA[С первой задачей, а именно взаимодействие sim300dz и RS232(комп), я отлично справился. Посылаю данные через терминал, модуль адекватно реагирует, отвечает и выполняет команды.<br />А вот с взаимодействием sim300dz и mega16 возникла проблема. Команды с контроллера успешно "доходят до жсм модуля" и выполняются (проверял, к примеру командой выключения AT+CPOWD=1 - модуль вырубается). Но на контроллер ответы приходят искаженные  <img src="http://electronix.ru/forum/style_emoticons/default/crying.gif" style="vertical-align:middle" emoid=":crying:" border="0" alt="crying.gif" /> .<br />Ответы с sim300dz вывожу на LCD на базе hd44780. Вместо "OK" выводится "cPU", а на команду "AT+CSMINS?" приходит ответ "PCMM", ну и т.д.<br />Причем это не наводки и не случайный мусор - ответы каждый раз одинаковые.<br />Совсем в ступоре, почему на комп приходят нормальные ответы, а на контроллер кракозябры. По первому впечатлению ошибка в программной части, но я ничего не смог исправить. <br /><br />Очень надеюсь на вашу помощь.<br /><br />Напряжение на max3232 - 2.8V, кондеры 0.1 мкф, подключение по даташиту.<br />Относительно mega16: <br />   1) пробовал скорости обмена 9600, 115200 бод - ответы одинаковые и нечитаемые.<br />   2) пробовал кварцы 4MHz и 7.3728Mhz - ответ на "AT" в первом случае был "b", во втором "cPU"<br />Фьюзы(avr studio): CKOPT установлен, SUT_CKSEL = "Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms"<br /><br />Далее привожу часть проги:<br /><div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'><br />#define USART_BAUDRATE 9600<br />#define BAUD_PRESCALE ((F_CPU/(USART_BAUDRATE * 16UL)) - 1)<br /><br />int main (void)<br />{<br />	cli();<br /><br />	lcd_init(LCD_DISP_ON);<br />	lcd_puts("!LCD Test");<br />	_delay_ms(1000);<br />	lcd_clrscr();<br /><br />   UCSRB |= (1 &lt;&lt; RXEN) | (1 &lt;&lt; TXEN);   // Turn on the transmission and reception circuitry<br />   UCSRC |= (1 &lt;&lt; URSEL) | (1 &lt;&lt; UCSZ0) | (1 &lt;&lt; UCSZ1); // Use 8-bit character sizes<br /><br />   UBRRL = BAUD_PRESCALE; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register<br />   UBRRH = (BAUD_PRESCALE &gt;&gt; 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register<br /><br />   UCSRB = ((1&lt;&lt;TXEN)|(1&lt;&lt;RXEN) | (1&lt;&lt;RXCIE)); // Enable receiver and transmitter and receive complete interrupt<br />   sei(); // Enable the Global Interrupt Enable flag so that interrupts can be processed<br /><br />	USART_Transmit("AT&#092;r&#092;n");<br /><br />	lcd_puts("!z"); //debug message<br />	_delay_ms(1000);<br /><br />	USART_Transmit("AT+CSMINS?&#092;r&#092;n");<br />	lcd_puts("!z"); //debug message<br /><br />    for (;;) {}<br />}<br /><br />ISR(USART_RXC_vect)<br />{<br />   char ReceivedByte;<br />   ReceivedByte = UDR; // Fetch the recieved byte value into the variable "ByteReceived"<br /><br />   lcd_putc(ReceivedByte);<br /><br />   /*if(ReceivedByte=='O'||ReceivedByte=='o')<br />		lcd_puts("(o)");<br />   if(ReceivedByte=='K'||ReceivedByte=='k')<br />		lcd_puts("(k)"); - и это писал, т.к. даже в кодировке LCD засомневался*/ <br />} <br /></div>]]></description>
		<pubDate>Fri, 27 Aug 2010 11:09:15 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79792</guid>
	</item>
	<item>
		<title>USB AudioInput  + USB HID в одномфлаконе</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79743</link>
		<description><![CDATA[Всем привет.<br /><br />Перерыл ветку и прочитал кучу сообщений, но никак не могу описать USB AudioInput  + USB HID. После втыкания устройства в USB винда определяет "Составное устройство" и вот тут драйвер уже не устанавливается. А поразнь - всё отлично.<br />Ткните что не так плииз.<br />Вот дескриптор в формате LUFA:<br /><!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->USB_Descriptor_Device_t PROGMEM DeviceDescriptor =<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Device_t&#41;, .Type = DTYPE_Device},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;.USBSpecification&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = VERSION_BCD&#40;01.10&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;.Class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0xEF,<br />&nbsp;&nbsp;&nbsp;&nbsp;.SubClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x02,<br />&nbsp;&nbsp;&nbsp;&nbsp;.Protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;.Endpoint0Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= FIXED_CONTROL_ENDPOINT_SIZE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;.VendorID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x03EB,<br />&nbsp;&nbsp;&nbsp;&nbsp;.ProductID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x204D,<br />&nbsp;&nbsp;&nbsp;&nbsp;.ReleaseNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x0000,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;.ManufacturerStrIndex&nbsp;&nbsp; = 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;.ProductStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x02,<br />&nbsp;&nbsp;&nbsp;&nbsp;.SerialNumStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= USE_INTERNAL_SERIAL,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS<br />};<br /><br />USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;.Config = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Configuration_Header_t&#41;, .Type = DTYPE_Configuration},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalConfigurationSize = sizeof&#40;USB_Descriptor_Configuration_t&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalInterfaces&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 4,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ConfigurationNumber&nbsp;&nbsp;&nbsp;&nbsp;= 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ConfigurationStrIndex&nbsp;&nbsp;= NO_DESCRIPTOR,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ConfigAttributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &#40;USB_CONFIG_ATTR_BUSPOWERED | USB_CONFIG_ATTR_SELFPOWERED&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.MaxPowerConsumption&nbsp;&nbsp;&nbsp;&nbsp;= USB_CONFIG_POWER_MA&#40;100&#41;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />//HID<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;.HID1_GenericInterface = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Interface_t&#41;, .Type = DTYPE_Interface},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AlternateSetting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalEndpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x03,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SubClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = HID_NON_BOOT_PROTOCOL,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x03<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.HID1_GenericHID = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_HID_Descriptor_t&#41;, .Type = DTYPE_HID},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HIDSpec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= VERSION_BCD&#40;01.11&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.CountryCode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x00,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalReportDescriptors = 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HIDReportType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= DTYPE_Report,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HIDReportLength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= sizeof&#40;GenericReport&#41;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.HID1_ReportINEndpoint = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Endpoint_t&#41;, .Type = DTYPE_Endpoint},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.EndpointAddress&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &#40;ENDPOINT_DESCRIPTOR_DIR_IN | GENERIC_IN_EPNUM&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Attributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &#40;EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.EndpointSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = HID_EPSIZE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.PollingIntervalMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x0A<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />//Keyboard<br />&nbsp;&nbsp;&nbsp;&nbsp;.HID2_KeyboardInterface = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Interface_t&#41;, .Type = DTYPE_Interface},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AlternateSetting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalEndpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x03,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SubClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = HID_BOOT_KEYBOARD_PROTOCOL,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x04<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.HID2_KeyboardHID = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_HID_Descriptor_t&#41;, .Type = DTYPE_HID},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HIDSpec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= VERSION_BCD&#40;01.11&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.CountryCode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x00,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalReportDescriptors = 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HIDReportType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= DTYPE_Report,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HIDReportLength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= sizeof&#40;KeyboardReport&#41;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;.HID2_ReportINEndpoint = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Endpoint_t&#41;, .Type = DTYPE_Endpoint},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.EndpointAddress&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &#40;ENDPOINT_DESCRIPTOR_DIR_IN | KEYBOARD_IN_EPNUM&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Attributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &#40;EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.EndpointSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = HID_EPSIZE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.PollingIntervalMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x0A<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />//Microphone<br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_ControlInterface_IAD =<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Interface_Association_t&#41;, .Type = DTYPE_InterfaceAssociation},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.FirstInterfaceIndex&nbsp;&nbsp;&nbsp;&nbsp;= 2,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalInterfaces&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 2,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SubClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.IADStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x06<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_ControlInterface = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Interface_t&#41;, .Type = DTYPE_Interface},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 2,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AlternateSetting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalEndpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SubClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x06<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_ControlInterface_SPC = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Audio_Interface_AC_t&#41;, .Type = DTYPE_AudioInterface},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Subtype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= DSUBTYPE_Header,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ACSpecification&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= VERSION_BCD&#40;01.00&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalLength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &#40;sizeof&#40;USB_Audio_Interface_AC_t&#41; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof&#40;USB_Audio_InputTerminal_t&#41; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof&#40;USB_Audio_OutputTerminal_t&#41;&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InCollection&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceNumbers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {1},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_InputTerminal = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Audio_InputTerminal_t&#41;, .Type = DTYPE_AudioInterface},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Subtype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= DSUBTYPE_InputTerminal,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TerminalID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TerminalType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = TERMINAL_IN_MIC,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AssociatedOutputTerminal = 0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalChannels&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ChannelConfig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ChannelStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= NO_DESCRIPTOR,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TerminalStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = NO_DESCRIPTOR<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_OutputTerminal = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Audio_OutputTerminal_t&#41;, .Type = DTYPE_AudioInterface},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Subtype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= DSUBTYPE_OutputTerminal,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TerminalID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x02,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TerminalType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = TERMINAL_STREAMING,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AssociatedInputTerminal&nbsp;&nbsp;= 0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SourceID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x01,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TerminalStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = NO_DESCRIPTOR<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_StreamInterface_Alt0 = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Interface_t&#41;, .Type = DTYPE_Interface},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 3,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AlternateSetting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalEndpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SubClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x02,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= NO_DESCRIPTOR<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_StreamInterface_Alt1 = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Descriptor_Interface_t&#41;, .Type = DTYPE_Interface},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 3,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AlternateSetting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TotalEndpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SubClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x02,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.InterfaceStrIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= NO_DESCRIPTOR<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_StreamInterface_SPC = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Audio_Interface_AS_t&#41;, .Type = DTYPE_AudioInterface},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Subtype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= DSUBTYPE_General,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TerminalLink&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x02,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.FrameDelay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AudioFormat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x0001<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_AudioFormat = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Audio_Format_t&#41;, .Type = DTYPE_AudioInterface},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Subtype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= DSUBTYPE_Format,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.FormatType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Channels&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x01,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SubFrameSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x02,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BitResolution&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 16,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SampleFrequencyType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= AUDIO_TOTAL_SAMPLE_RATES,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SampleFrequencies&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= {AUDIO_SAMPLE_FREQ&#40;AUDIO_SAMPLE_FREQUENCY&#41;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_StreamEndpoint = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Endpoint = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= {.Size = sizeof&#40;USB_Audio_StreamEndpoint_Std_t&#41;, .Type = DTYPE_Endpoint},<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.EndpointAddress&nbsp;&nbsp;&nbsp;&nbsp; = &#40;ENDPOINT_DESCRIPTOR_DIR_IN | AUDIO_STREAM_EPNUM&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Attributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &#40;EP_TYPE_ISOCHRONOUS | ENDPOINT_ATTR_SYNC | ENDPOINT_USAGE_DATA&#41;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.EndpointSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= AUDIO_STREAM_EPSIZE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.PollingIntervalMS&nbsp;&nbsp; = 1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Refresh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SyncEndpointNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;.Audio_StreamEndpoint_SPC = <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {.Size = sizeof&#40;USB_Audio_StreamEndpoint_Spc_t&#41;, .Type = DTYPE_AudioEndpoint},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Subtype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= DSUBTYPE_General,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Attributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.LockDelayUnits&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x00,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.LockDelay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0x0000<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<!--c2--></div><!--ec2-->]]></description>
		<pubDate>Wed, 25 Aug 2010 23:01:30 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79743</guid>
	</item>
	<item>
		<title>Бесконтактные считыватели</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79739</link>
		<description>Всем доброе время суток.В интернете не нашел информации по бесконтактным считывателям (может не там искал).Если у кого есть что почитать буду благодарен.</description>
		<pubDate>Wed, 25 Aug 2010 22:15:05 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79739</guid>
	</item>
	<item>
		<title><![CDATA[Sim900--&gt;ATD&gt;SM1:]]></title>
		<link>http://electronix.ru/forum/index.php?showtopic=79737</link>
		<description><![CDATA[Всем доброе время суток.В продаже пока нет модулей 900 .В описании прочитал что ноги у них совпадают с 300 ,а АТ команды несколько отличаются. Если можно в двух словах насколько сильно. В частности команда ATD&gt;SM1: работает или нет.]]></description>
		<pubDate>Wed, 25 Aug 2010 19:43:03 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79737</guid>
	</item>
	<item>
		<title>EB-500   -   AGPS - как это работает?</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79724</link>
		<description><![CDATA[Как работает в теории ясно... Вопрос как запустить данный сервис на EB-500 где найти описание работы, протоколы обмена с модулем, сервером и т.д.<br /><br />Аналогичный вопрос по DGPS...?<br /><br />P.S. Документация ну уж очень скупая...  <img src="http://electronix.ru/forum/style_emoticons/default/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />]]></description>
		<pubDate>Wed, 25 Aug 2010 15:00:50 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79724</guid>
	</item>
	<item>
		<title>Сканирование пространства шины PCI</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79674</link>
		<description><![CDATA[Пожалуйста подскажите как правельно просканировать шину PCI и получить информацию, адреса установленных устройств, собрал маломальский код из книги, пользуюсь драйвером WinIO, постоянно получаю нулевые результаты, подскажите что не так, что нужно зделать ???<br /><!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->// Сканирование шины PCI <br />// определяем значения смещений для пространства шины PCI <br />#define VENDOR_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00 <br />#define DEVICE_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x02 <br />#define C_OD_E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x04 <br />#define STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x06 <br />#define REVISION_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x08 <br />#define INTERFACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x09 <br />#define SUBCLASS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0A <br />#define CLASSCODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0B <br />#define CACHE_LINE_SIZE&nbsp;&nbsp;&nbsp;&nbsp;0x0C <br />#define LATENCY_TIMER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0D <br />#define HEADER_TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0E <br />#define BIST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0F <br />#define BASE_ADDRESS_0&nbsp;&nbsp;&nbsp;&nbsp; 0x10 <br />#define BASE_ADDRESS_1&nbsp;&nbsp;&nbsp;&nbsp; 0x14 <br />#define BASE_ADDRESS_2&nbsp;&nbsp;&nbsp;&nbsp; 0x18 <br />#define BASE_ADDRESS_3&nbsp;&nbsp;&nbsp;&nbsp; 0x1C <br />#define BASE_ADDRESS_4&nbsp;&nbsp;&nbsp;&nbsp; 0x20 <br />#define BASE_ADDRESS_5&nbsp;&nbsp;&nbsp;&nbsp; 0x24 <br />#define CARDBUS_POINTER&nbsp;&nbsp;&nbsp;&nbsp;0x28 <br />#define SUBVEN_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x2C <br />#define SUBSYSTEM_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x2E <br />#define ROM_BASE_ADDRESS&nbsp;&nbsp;&nbsp;&nbsp;0x30 <br />#define INTERRUPT_LINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x3C <br />#define INTERRUPT_PIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x3D <br />#define MIN_GNT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x3E <br />#define MAX_LAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x3F <br />//--------------------------------------------------------------------------- <br /><br />//--------------------------------------------------------------------------- <br />int GetDeviceSlot&#40;int iDevice, int iFunction&#41; <br />{ <br />&nbsp;&nbsp; return &#40;&#40;&#40;&#40;iDevice&#41; & 0x1f&#41; &#60;&#60; 3&#41; | &#40;&#40;iFunction&#41; & 0x07&#41;&#41;; <br />} <br />//--------------------------------------------------------------------------- <br />DWORD GetDevice&#40;int iBusPCI, int iSlot, int iAddress&#41; <br />{ <br />&nbsp;&nbsp; return &#40;0x80000000L | &#40;&#40;iBusPCI & 0xff&#41; &#60;&#60; 16&#41; | &#40;iSlot &#60;&#60; 8&#41; | &#40;iAddress & ~3&#41;&#41;; <br />} <br />//--------------------------------------------------------------------------- <br />//--------------------------------------------------------------------------- <br />// единственный аргумент функции определяет номер шины &#40; от 0 до 255 &#41; <br />void ScanPCI&#40;int iBusPCI&#41; <br />{ <br /><br />&nbsp;&nbsp; DWORD dwResult = 0; <br />&nbsp;&nbsp; BYTE buffer&#91;256&#93;; <br />&nbsp;&nbsp; // создаем двойной цикл для перебора всех устройств <br />&nbsp;&nbsp; for&#40;int iDevice = 0; iDevice &#60; 32; iDevice++&#41; <br />&nbsp;&nbsp; { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&#40;int iFunction = 0; iFunction &#60; 8; iFunction++&#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset&#40;&buffer, 0, 256&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// вычисляем номер очередного слота <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int iSlot = GetDeviceSlot&#40;iDevice, iFunction&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// проверяем поле Vendor ID для определения наличия устройства <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD dwVendorID = 0; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// получаем конфигурацию устройства <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwResult = GetDevice&#40;iBusPCI, iSlot, VENDOR_ID&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// пишем в адресный порт параметры устройства <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetPortVal&#40;0xCF8, dwResult, 4&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwResult = 0; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// читаем из порта данных идентификатор производителя <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetPortVal&#40;0xCFC, &dwResult, 4&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// если полученное&nbsp;&nbsp;значение равно 0 или 0xFFFFFFFF,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// выходим из вложенного цикла и продолжаем поиск <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&#40;dwVendorID == 0x00000000 || dwVendorID == 0xFFFFFFFF&#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATA = 1; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// если устройство присутствует, читаем его параметры <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// из конфигурационного пространства шины PCI <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&#40;int j = 1; j &#60; 256; j++&#41; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// получаем конфигурацию устройства <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwResult = GetDevice&#40;iBusPCI, iSlot, j&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// пишем в адресный порт параметры устройства <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetPortVal&#40;0xCF8, dwResult, 4&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// получаем из порта очередной байт <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetPortVal&#40;0xCFC + &#40; j&0x03 &#41;, &dwResult, 1&#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// сохраняем полученный байт в буфер <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer&#91;j&#93; = dwResult; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// здесь мы можем извлечь нужные данные из буфера и сохранить <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// их для последующего использования <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// например, получим номер прерывания для устройства <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// переменная uINT определена где-то ранее <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//uINT = buffer&#91;INTERRUPT_LINE&#93;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// поле Header Type <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//uHeader = buffer&#91;HEADER_TYPE&#93;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// поле Revision ID <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//uRevID = buffer&#91;REVISION_ID&#93;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// поле Device ID <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwDeviceID = &#40; &#40;WORD&#41; &#40; &#40; &#40;BYTE&#41; &#40;buffer&#91;DEVICE_ID&#93;&#41;&#41;&nbsp;&nbsp;| &#40; &#40; &#40;WORD&#41; &#40; &#40;BYTE&#41; &#40;buffer&#91;DEVICE_ID&#93; + 1&#41; &#41; &#41; &#60;&#60; 8&#41; &#41; &#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// поле Cod_e <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwC_od_e = &#40; &#40;WORD&#41; &#40; &#40; &#40;BYTE&#41; &#40;buffer&#91;C_OD_E&#93;&#41; &#41;&nbsp;&nbsp;| &#40; &#40; &#40;WORD&#41; &#40; &#40;BYTE&#41; &#40;buffer&#91;C_OD_E&#93; + 1&#41; &#41; &#41; &#60;&#60; 8&#41; &#41; &#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// поле Subsystem Vendor ID <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwSubVendorID = &#40; &#40;WORD&#41; &#40; &#40; &#40;BYTE&#41; &#40;buffer&#91;SUBVEN_ID&#93;&#41; &#41;&nbsp;&nbsp;| &#40; &#40; &#40;WORD&#41; &#40; &#40;BYTE&#41; &#40;buffer&#91;SUBVEN_ID&#93; + 1&#41; &#41; &#41; &#60;&#60; 8&#41; &#41; &#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// базовый адрес 0 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WORD low = 0, high = 0; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// получаем младшее слово адреса <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;low = &#40; &#40;WORD&#41; &#40; &#40; &#40;BYTE&#41; &#40;buffer&#91;BASE_ADDRESS_0&#93;&#41; &#41; | &#40; &#40; &#40;WORD&#41; &#40; &#40;BYTE&#41; &#40;buffer&#91;BASE_ADDRESS_0&#93; + 1&#41; &#41; &#41; &#60;&#60; 8&#41; &#41; &#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// получаем старшее слово адреса <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;high = &#40; &#40;WORD&#41; &#40; &#40; &#40;BYTE&#41; &#40;buffer&#91;BASE_ADDRESS_0&#93; + 2&#41; &#41; | &#40; &#40; &#40;WORD&#41; &#40; &#40;BYTE&#41; &#40;buffer&#91;BASE_ADDRESS_0&#93; + 3&#41; &#41; &#41; &#60;&#60; 8&#41; &#41; &#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// вычисляем полный адрес <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwBaseAddress_0 = &#40; &#40;LONG&#41; &#40; &#40; &#40;WORD&#41; &#40;low&#41; &#41; |&nbsp;&nbsp;&#40; &#40; &#40;DWORD&#41; &#40; &#40;WORD&#41; &#40;high&#41; &#41; &#41; &#60;&#60; 16&#41; &#41; &#41;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp; } <br />}<!--c2--></div><!--ec2-->]]></description>
		<pubDate>Mon, 23 Aug 2010 21:24:41 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79674</guid>
	</item>
	<item>
		<title>микросхемы ethernet switch</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79641</link>
		<description><![CDATA[Здравствуйте!<br />Моя задача состоит в разработке платы с Ethernet. При этом в проце уже есть один встроенный Ethernet(МАС), а для решения моих задач необходимо два порта с быстрой Swith Fabric между собой.<br />Исходя из проблемы взгляд упал на ИМС которые по буржуйски называются примерно так: ethernet switch with non-pci cpu interface. Представляют такие микросхемы из себя следующее: несколько портов Ethernet (МАС и PHY), 8/16/32 разрядный интерфейс к процу и аппаратный блок комутации пакетов между портами(Swith Fabric,как правило на базе fifo).<br />Нашёл пару микросхем LAN9312/LAN9311 и KS8842/KS8862 - двухпортовые свитчи на 10/100.<br />Вопрсы:<br />1) Кто уже работал с представленными чипами, напишите пожалуйста отзывы.<br />2) Посоветуйте подобные микросхемы, желательно со скоростью 10/100/1000, можно на четыре порта.]]></description>
		<pubDate>Sun, 22 Aug 2010 17:09:41 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79641</guid>
	</item>
	<item>
		<title>Системники Panasonic, LG и т.д.</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79635</link>
		<description>Вопрос к знатокам - на сколько легально использование сторонних системных телефонов, например, Panasonic, LG и т.д. с миниАТС собственной разработки? Ведь разрешение на использование пропиетарных внутренних протоколов от того же Панасоника вряд ли получить.</description>
		<pubDate>Sun, 22 Aug 2010 12:45:21 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79635</guid>
	</item>
	<item>
		<title>Поиск стандарта ANSI T.601</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79627</link>
		<description><![CDATA[Никак не могу найти 'за бесплатно' документацию по данному стандарту.<br />Может у кого-то 'завалялась'?<br /><br />Полное название:  ANSI T.601-1992, Telecommunications—Integrated Services Digital Network (ISDN)—Basic Access Interface for Use on Metal Loops for Applications on the Network Side of the NT (Layer 1) Specification<br /><br />1992 или 1999 год]]></description>
		<pubDate>Sat, 21 Aug 2010 21:35:19 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79627</guid>
	</item>
	<item>
		<title>Разбираюсь с Quectel M10 - уже есть траблы ;(</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79623</link>
		<description><![CDATA[Всем добрый день.<br /><br />М10 частенько теряет сеть<br />M10 отлично стартует и регистрируеться - затем теряет сеть - через 10 минут, или через 6 часов - абсолютно произвольно.<br /><br />Значит по схеме.<br />1) ПИТАНИЕ: на LD1084ADJ - Напряжение питания 3,99В (стаблизатор на радиаторе)<br />2) После стабилизатора электролиты: 1000 мкф, возле модуля 2200мкф LOW ESR<br />3) В питании керамика шунтирует каждый электролит (0,1 мкф)<br />4) также стоит тантал перед модулем 22 мкф <br />5) Всё устройство питаеться от 12В кислотного аккума (напряжение 13,2 В) <br /><br /><br />Модуль управляеться MEGA32A - питаеться от того же стабилизатора LD1084ADJ<br /><br />5) СОПРЯЖЕНИЕ M10 с МК: <br />соединены линии: RX, TX, PWR<br />По линии TX от микропроцессора стабилитрон и резистор. (подбирал стабилитроны от 2,8 В до варианта без стабилитрона и резистора)<br /><br />6) ИНТЕРФЕЙС SIM КАРТЫ - Всё как по даташиту: 22 Ома, SIM+_DAT притянут 10 кОМ к SIM_VCC, между SIM_VCC и GND - керамика на 0,1 мкф<br /><br />7) Антена - кусочек 7 см провода. Уровень сигнала очень хороший.<br /><br />8) После пайки - плата мылась спиртом. О том что нужно уделять внимание промывки SIM держателя отлично знаю.<br /><br />9) Оператор пробовал и КС и МТС <br /><br />10) МОДУЛЬ M10-W0096-M0014<br />M10R05A01M32-SST<br /><br /><br />Модуль стартует - успешно отвечает и регистируеться.<br />Затем может потерять сеть просто когда угодно, как в режиме ожидания так и при звонке.<br />Самое интересное - что у меня 4 модуля - все себя ведут одинаково. Что я ещё не так делаю.<br /><br />КУДА КОПАТЬ ? Я уже неделю с ними е..сь. Просто в отчаянии.<br /><br /><br />Ччто ещё можно попробовать ?<br />Спасибо всем за советы заранее.<br />]]></description>
		<pubDate>Sat, 21 Aug 2010 16:55:04 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79623</guid>
	</item>
	<item>
		<title>Параллельная работа двух драйверов</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79608</link>
		<description>Параллельно к UART подключены два драйвера, штатный RS-485 и тестовый RS-232. Понятно, что они по  RX друг другу мешают. Разделил их резисторами. А может есть лучше способ?</description>
		<pubDate>Fri, 20 Aug 2010 21:25:16 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79608</guid>
	</item>
	<item>
		<title>Какой самый малогабаритный модуль GPRS+GPS доступен сейчас ?</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79607</link>
		<description><![CDATA[Какой самый малогабаритный модуль GPRS+GPS доступен сейчас ?<br />Или может готовые сверхминиатюрные трекеры есть в продаже ?<br /><br />Критерии:<br />1) малые габариты и вес;<br />2) низкое энергопотребление.]]></description>
		<pubDate>Fri, 20 Aug 2010 21:12:40 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79607</guid>
	</item>
	<item>
		<title>Q2687+OpenAT = 0.5 mA</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79584</link>
		<description><![CDATA[Подбираю решение для нового проекта. Потребление не должно превышать 0.5 мА. В документации на q2687, открытой в общем доступе не нашел ничего конкретного, написано лишь, что 2 мА в режиме энергосбережения (с пометочкой worst case). Еще на оффсайте есть аппноут с названием "AirPrime Very Low Power Consumption". Но его так просто не достать. <br />С OpenAT дела не имел. Стоит ли связываться? И возможно ли таким образом решить поставленную задачу? Подскажите, господа OpenATшники <img src="http://electronix.ru/forum/style_emoticons/default/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />]]></description>
		<pubDate>Fri, 20 Aug 2010 11:28:24 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79584</guid>
	</item>
	<item>
		<title>Сертификация SIM900 в Украине.</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79581</link>
		<description><![CDATA[Нами завершена сертификация в Украине модулей серии SIM900x. Модуль внесен в реестр сертификатов - проверить можно здесь:<br />Зайти на сайт <a href="http://electronix.ru/redirect.php?http://www.uniirt.com.ua/cgi-bin/prodlist.py" target="_blank">http://www.uniirt.com.ua/cgi-bin/prodlist.py</a> <br />Ввести в поле Заявитель (Applicant): ГАММА<br />Сайт выдаст номер сертификата; дату окончания сертификата; список продукции, на которую выдан сертификат.]]></description>
		<pubDate>Fri, 20 Aug 2010 10:41:00 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79581</guid>
	</item>
	<item>
		<title>Изменение прошивки мк по GPRS-каналу...?</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79544</link>
		<description><![CDATA[Возникла необходимость предвидеть в устройстве возможность дистанционного обновления ПО микроконтроллера, желательно по GPRS-каналу. Ожидаемый объем прошивки 64-128 кб.<br /><br />Так как напрямую "в лоб" (прямо в память мк) это сделать скорее всего не получится, пришла идея использовать промежуточный буфер памяти в виде флеш памяти AT45 (она все равно находится на борту, 16 Мбит так что выделить 100 кб не проблема вроде). Идея в принципе проста - центральный сервер по команде будет отправлять по частям HEX файл с обновленной прошивкой, части будут проверятся по протоколу и на CRC, после чего будут записываться в буфер AT45, и формировать в ее памяти зеркало прошивки мк. После записи всего массива HEXа, сервер подаст команду на включение бутлоадера - и через минуту вторую устройство с новым ПО.<br /><br />Конечно нужно еще продумать протокол, возможно добавить кодирование и т.д. - но в теории идея выглядит очень работоспособной...? осталось попробовать на практике  <img src="http://electronix.ru/forum/style_emoticons/default/biggrin.gif" style="vertical-align:middle" emoid=":biggrin:" border="0" alt="biggrin.gif" /> <br /><br />Хотелось бы услышать мнение форумчан по этому вопросу? Кто какой способ изменения ПО устройства использует?]]></description>
		<pubDate>Thu, 19 Aug 2010 13:51:00 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79544</guid>
	</item>
	<item>
		<title>WI-FI в корабельных помещениях</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79542</link>
		<description><![CDATA[Сабж. кто нибудь озадачивался промышленным вайфаем в помещених корабля или кунге транспортного средства?<br />Интересуют готовые решения (технические) на базе серийных изделий.<br />Фирма MOXA например предлагает решение для нефтяных платформ. <br /><a href="http://electronix.ru/redirect.php?http://www.jampel.it/UserFiles/Industrial_Wireless_Application_Guidebook.pdf" target="_blank">http://www.jampel.it/UserFiles/Industrial_...n_Guidebook.pdf</a>]]></description>
		<pubDate>Thu, 19 Aug 2010 13:32:53 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79542</guid>
	</item>
	<item>
		<title>Высокоскоростной однопроводный интерфейс</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79539</link>
		<description><![CDATA[Здравствуйте, уважаемые форумчане!<br />Пришла в голову идея разработать высокоскоростной однопроводный интерфейс, передающий и часы, и данные от мастера к слэйву по одной витой паре RS-485 со со скоростью до 20 МБит/сек (12,5 МБит/сек в номинале). Сразу оговорюсь: у слэйва нет тактового генератора!<br />Возможно, что-либо подобное уже есть или кто-либо такой интерфей уже разрабатывал, тогда прошу поделиться знаниями или опытом.<br />У меня уже есть  пара вариантов, как это сделать, но они пока вызывают сомнения в плане надёжности.<br />И ещё детали: мастер - SpartanII с тактовым генератором 50 МГц, слэйв - XC9572 без тактового генератора, RS-485 - MAX3062.<br />   Буду премного благодарен, если поможете решить эту хитрую задачку!]]></description>
		<pubDate>Thu, 19 Aug 2010 12:02:38 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79539</guid>
	</item>
	<item>
		<title>Bluetooth модуль MB-C05-A2DP</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79504</link>
		<description><![CDATA[Пытаюсь запустить <a href="http://electronix.ru/redirect.php?http://www.modulestek.com/DOC/MB-C05_SPEC.pdf" target="_blank">сабжевый модуль</a>, вот только не хочет он чего то работать, при включении потребляет около 86 мА(потребление слегка колеблется с некоторой периодичностью, значит вроде что то внутри живет?) по входу питания VCC3.3V, других признаков жизни не подает, на кнопки не реагирует, на выходах LED0 и LED1 по 0.<br />Также в ДШ сказано:<br /><!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->When not powered from a battery, VCC3.3 and VDD_BAT can be combined to a single 3.3 V supply <br />voltage...<!--QuoteEnd--></div><!--QuoteEEnd--><br />Хорошо, подсоединил VDD_BAT к 3,3В. - потребление упало до 12 мА, и до снятия питания не менялось при любых манипуляциях с VDD_BAT, и все еще никаких признаков жизни...<br />Да, и еще, есть две версии даташита на этот модуль, в одной активный уровень сброса - 1, в другой  - 0... какой из версий верить? Да и со схемой их включения тоже не совсем все ясно.<br />Поделитесь опытом кто может...]]></description>
		<pubDate>Wed, 18 Aug 2010 18:02:33 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79504</guid>
	</item>
	<item>
		<title>Ищется протокол для обмена PC-ПЛК по TCP</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79498</link>
		<description><![CDATA[Добрый день!<br /><br />не про интерфейсы, а про выбор/разработку протокола хочу спросить.<br />Есть ПЛК (PhoenixContact) и компьютер для визуализации с WinXP. Между ними организовано TCP-соединение для передачи текущего состояния, управляющих команд, считывания результатов тех. процесса.<br />Сейчас стоит выбор протокола для передачи данных (Application Level). Поиск в интернете не дал вразумительных примеров.<br /><br />Протокол может быть как формата запрос-ответ, так и асинхронный. Это не принципиально.<br />Простейший вариант: в одном пакете запрос на чтение или запись параметра, и соответствующий ответ от ПЛК<br />возникает вопрос с передачей больших данных, но его можно решить указывая длинну "логического пакета"<br /><br /><br />А всё-таки изобретать велосипед не охота. Может кто знает подходящие простые "стандартные" реализации?<br />Написать протокол на стороне компьютера не представляет никаких трудностей, а вот наворачивать парсеры в ST для IEC61131 удовольствие очень сомнительное.<br /><br />Спасибо!<br />]]></description>
		<pubDate>Wed, 18 Aug 2010 15:49:22 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79498</guid>
	</item>
	<item>
		<title>FOTA in SIM900</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79493</link>
		<description><![CDATA[Уважаемые разработчики, какие есть предложения или пожелания по функции FOTA (firmware over the air) в GSM/GPRS модулях SIM900?<br /><br /><a href='http://electronix.ru/forum/index.php?act=attach&type=post&id=46873'>http://electronix.ru/forum/index.php?act=attach&type=post&id=46873</a><br /><a href='http://electronix.ru/forum/index.php?act=attach&type=post&id=46874'>http://electronix.ru/forum/index.php?act=attach&type=post&id=46874</a><br /><a href='http://electronix.ru/forum/index.php?act=attach&type=post&id=46875'>http://electronix.ru/forum/index.php?act=attach&type=post&id=46875</a><br />]]></description>
		<pubDate>Wed, 18 Aug 2010 14:12:11 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79493</guid>
	</item>
	<item>
		<title>Не запускается RTL8201N (QFN64)</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79453</link>
		<description><![CDATA[Запаял на новую плату RTL8201N, начал запускать ядро MAC-контроллера и обнаружил, что тактовые сигналы TXC/RXC с RTL8101N не приходят. Параметры подключения таковы: LDPS=0, ISOLATE=0, CONFIG0=1, CONFIG1-4=0, CONFIG5(RPTR)=0, CONFIG6(MII)=0, CONFIG7(AEN)=1, CONFIG8(FIBER)=1, CONFIG9(SPEED)=1.<br />К RTL8102N подключен AFBR-5803Z, схема подключения выполнена согласно datasheet на AFBR.<br /><br />Симптомы. При подключении оптического кабеля светодиод Link начинает светиться. На сигнал сброса RTL8201N реагирует и гасит Link на все время сброса. На кварцевом резонаторе есть чистый сигнал 25 МГц. Но самое интересное заключается в том, что при отключении питания на линиях RXC/TXC кратковременно появляются импульсы с частотой 25 МГц.<br /><br />В чем может быть причина, что стоит проверить?]]></description>
		<pubDate>Tue, 17 Aug 2010 17:24:25 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79453</guid>
	</item>
	<item>
		<title>Как получить NDA на Marwell?</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79438</link>
		<description>Есть задача собрать на плате пяти-портовый (пока неуправляемый) switch. Остановился на marwell 88E6060, смотрел в сторону micrel ks8995ma но у него 1.4Gbps.  Просьба к знающим людям посоветуйте пожалуйста куда писать куда звонить что говорить...</description>
		<pubDate>Tue, 17 Aug 2010 12:12:52 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79438</guid>
	</item>
	<item>
		<title><![CDATA[SIM900 & SMS в 16-битной кодировке]]></title>
		<link>http://electronix.ru/forum/index.php?showtopic=79426</link>
		<description><![CDATA[Обновил прошивку до 06, но картина не изменилась - вне зависимости от установки AT+CMGF  тело сообщений в 16-битной кодировке как шло hex-дампом, так и идет. SIM300 точно превращал такие сообщения в нормальный ASCII-текст (проверил перестановкой модулей и карточек на макете). Впрочем, декодер PDU я уже написал, так что мне по-фигу <img src="http://electronix.ru/forum/style_emoticons/default/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" /> Но все равно - как-то это неправильно...]]></description>
		<pubDate>Tue, 17 Aug 2010 00:52:42 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79426</guid>
	</item>
	<item>
		<title>Вход LINEIN SIM900, объясните!</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79414</link>
		<description>В описании только сказано общими фразами, что этот вход(ы) может применяться для микширования или мультиплексирования с внешними звуками. Ни электрических параметров, ни требований... Я правильно понимаю, что если на этот вход идет мелодия, то я должен услышать ее при разговоре, во время ожидания ответа и т.д.? Для чего он вообще нужен и как его можно использовать? Например, на СИМ300 на один вход MIC шла гарнитура, а на второй - микрофон прослушки с встроенным усилителем... На СИМ900 так уже нельзя сделать с помощью LINEIN?</description>
		<pubDate>Mon, 16 Aug 2010 16:34:28 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79414</guid>
	</item>
	<item>
		<title>SIM900, потребление RTC</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79358</link>
		<description>А кто-нибудь мерял потребление RTC ? Что-то у меня странное выходит, при подпитке от ионистора быстро встают часы. Померял потребление от трехвольтовой литиевой таблетки - 188 uA против обещанных 2. Не жирно ли ?</description>
		<pubDate>Sat, 14 Aug 2010 10:47:59 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79358</guid>
	</item>
	<item>
		<title>Организация интерфейса(ов) цифровая фотокамера микроконтроллер</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79343</link>
		<description><![CDATA[Появилась задача организовать подключение обычной цифровой Web-камеры, которую можно купить в любом компьютерном магазине к микроконтроллеру (модель не важна). Задача передать фото (jpg-файл) через GSM-сеть. К тому же необходимо сделать максимально дешевый вариант, при этом расстояние линии, от камеры до GSM-модуля должно варьироваться от 5-60 метров. Такие большие расстояние может поддерживать протокол ethernet, но так как типовая камера имеет USB выход необходим какой-то преобразователь USB&lt;-&gt;Ethernet (пассивный), соответственно на удаленной стороне Ethernet&lt;-&gt;UART. С трудом представляется реализация такой схемы на практике, хотя не знаю. Может кто-то имел опыт организации такого канала, либо существуют другие протоколы реализации данной схемы???. А может, чтобы не городить огород, есть готовые, дешевые решения???]]></description>
		<pubDate>Fri, 13 Aug 2010 16:39:14 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79343</guid>
	</item>
	<item>
		<title>SIM300DZ</title>
		<link>http://electronix.ru/forum/index.php?showtopic=79309</link>
		<description><![CDATA[Устройства изготовили в сибири, протестировали и отладили. Все работает ок. Отправили в столицу нашей Родины. Устройство перестало реагировать на SMS-команды. Если отправить SMS из сибири на прибор в столице, реакция есть. Если отправить SMS из столицы на прибор в сибири, реация тоже есть. Если отправить из столицы SMS на прибор в столицу реакции нет(((<br />Уже голову сломал. <img src="http://electronix.ru/forum/style_emoticons/default/wacko.gif" style="vertical-align:middle" emoid=":wacko:" border="0" alt="wacko.gif" />  Есть предположения по поводу кодировки. Явным образом она не задана при инициализации SIM300, тоесть стоит по умолчанию "GSM". <br />Быть может кто-то с такой проблемой сталкивался? Или кто из Москвичей знает особенности работы местных ОПСОСов?<br />Кстати карточка стоит мегафоновская в Москве.]]></description>
		<pubDate>Thu, 12 Aug 2010 17:24:59 +0400</pubDate>
		<guid>http://electronix.ru/forum/index.php?showtopic=79309</guid>
	</item>
</channel>
</rss>