bingo
Свой-
Постов
144 -
Зарегистрирован
-
Посещение
Весь контент bingo
-
Спасибо всем ответившим! Может быть у кого-нибудь есть опыт питания точных измерительных цепей от +5В USB-порта компьютера? Поделитесь пожалуйста соображениями по этому поводу :rolleyes: Очевидное решение, напрашивающееся в этом случае - гальваническая развязка. Но может быть можно решить проще? Так же интересует вопрос выбора источника опорного напряжения АЦП. Кто какие решения использует? Поделитесь соображениями пожалуйста! Заранее благодарю за ответы.
-
Добрый день уважаемые коллеги! Стоит задача применения встроенных ADC STM32. Два параллельных канала. Планируется измерение напряжений <50mV и частоты 0-100Гц. Вх.сопротивление >1MОм (осциллографический вход). Посему, встал вопрос о элементной базе и схемотехнике входных измерительных цепей и опорного напряжения для ADC. Из желаемых особенностей: диф.вход, защита от перегрузки, линейность и особенно уровень шумов. Рассматриваются реализации как однополярных вх.сигналов, так и двухполярных Также интересует опыт питания этих измерительных цепей от USB-порта компьютера. Насколько возможно минимизировать уровень помех в этом случае? Может быть кто-нибудь знает готовые openSource реализации (или части), на которые можно обратить внимание, чтобы "не изобретать велосипед"? Заранее благодарю за любые конструктивные советы! :rolleyes:
-
Между желание поставить маленькую, желательно недорогую коробочку и все решить сразу, и реальной ситуацией очень большая разница! :crying:
-
Уважаемый ТС, может пойти простым проверенным способом? Наверное все видели, что над заборами охраняемых объектов еще сверху добавляют колючую проволоку Особенно эффективна проволока в виде спирали с большим диаметром. Перелезть такое сооружение очень не просто! Может быть и здесь подойдет такое проверенное решение? Дешево, Развертывается достаточно быстро. На птиц не реагирует :-) Проволока оцинкованная и покрыта др. малокоррозионным покрытием. Как раз для реки подойдет Для достоверности - внутри провести натянутую сигнальную проволоку. Любая попытка сорвать эту охрану или перерезать провода - даст сработку сигналки. Которая может быть в виде GSM-сигнализации или др. Вопрос с GSM-глушилкой тоже решаем - нужен перодический обмен/подтверждение. А все эти датчики звука и тп. - это для идеальных условий! То есть не для Вас! Да и цена разработки/изготовления/поддержки весьма велика.
-
802.11 Wi-Fi стек
bingo ответил bingo тема в Wireless/Optic
Например, такой адаптер: http://www.ebay.com/itm/Mini-150Mbps-150M-...=item2a36517eb2 Как можно понять - нужно описание того, что выше транспортного уровня (в данном случае - USB). Вопрос простой: есть ли у Вас подробная спецификация на 802.11x семейство протоколов? Конечно же, в первую очередь интересует не физический Layer, а то что выше него! Вплоть до Application Layer Если же есть еще и доступная реализация - совсем было бы отлично! :rolleyes: P.S. Для меня вообще не ясен вопрос о публичной доступности этих спецификаций! Проясните пожалуйста! А чтобы совсем понятна задача была, вот пример: http://lucsmall.com/2012/09/21/ralink-rt53...e-raspberry-pi/ P.S. Хотелось бы конкретики, а не критики! -
802.11 Wi-Fi стек
bingo ответил bingo тема в Wireless/Optic
А вот это не убедительный довод. Большинство производителей сетевого оборудования и софта не следуют буквально 7-уровневой модели OSI Не редко один слой включает в себя несколько протоколов, а другие отсутсвуют явно. В любом случае существуют команды, сигнальные каналы и т.п. Но меня не эта теоретическая дискуссия интересует! Если у кого-нибудь есть подробные спецификации 802.11, то поделитесь пожалуйста С подробностями я разберусь :-) А если есть соответствующий софт, то было бы совсем отлично! -
802.11 Wi-Fi стек
bingo опубликовал тема в Wireless/Optic
Добрый день! Подскажите пожалуйста, имеется ли доступная реализация WiFi стека для embedded применения (например для STM32)? А также очень интересна документация по этому семейству протоколов! Мои поиски не увенчались успехом. Может быть что-то дельное подскажет? P.S. Реализацию Linux WiFi стека лучше не упоминать :-) -
Здравствуйте Вопрос к тем, кто плотно знакомился/модифицировал библиотеку "The USB On-The-Go Host and Device Library" для STM32. Режим FS Host. Класс устройств иной чем MSC и HID. Не могу разобрать кто должен сегментировать длинные Bulk-передачи. Я или же это делает библиотека? (Впрочем, это относится и к другим типам длинных (превышающих размер конечной точки) Transfers) С одной стороны в документации ясно написано: "The USB Host library: Supports multi packet transfer features enabling the transmission of large amounts of data; without having to split it into maximum packet size transfers. В то же время в коде библиотеки я подтверждение этому не нахожу Для MSC это похоже делается в специфичных для этого класса модулях. Проще говоря - при вызове функции USBH_BulkSendData() параметр lengh может превышать размер конечной точки? Будет ли библиотека сама сегментировать Bulk transfer на несколько транзакций? Похожий вопрос возникает при вызове ф-ции USBH_BulkReceiveData(). Только здесь еще более не понятно, т.к.процесс десегминтации пакетов зависит от класса устройства.
-
Разместить массив во Flash STM32
bingo ответил bingo тема в ARM, 32bit
Хмм.... Вы правы! Как ни странно, но массив оказался снова в RAM!!! Хотя это, на мой взгляд, противоречит документации . Так какое решение Вы видите? Использовать принудительное указание места размещения, типа "... @ 0x80...005=.." ? Это не очень удобно. Использование const , как у Вас? Но про это явно написано в документации (я ее цитировал ранее). В понедельник буду снова пытать программу/плату. -
Разместить массив во Flash STM32
bingo ответил bingo тема в ARM, 32bit
Я же перед Вашим постом написал, что все уже OK Просто, вместо правильного синтаксиса: uint8_t HCI_Reset[] @ "FLASH" = {3,2,1}; Я бодался с неочевидной ошибкой (из документации совешенно не видно, пример я привел выше): uint8_t HCI_Reset[] = {3,2,1} @ "FLASH" ; :rolleyes: Конечно же позже я ее включю :rolleyes: Дайте только все отладить. -
Разместить массив во Flash STM32
bingo ответил bingo тема в ARM, 32bit
Верно, но это (@ 0x1005) вариант использования когда нужно разместить по конкретному location А есть еще потребность, чтобы было просто во FLASH (неважно где). Для этого используется нотация .... @ "FLASH"; Она как раз и не работает с инициализированным при объявлении массивом В проекте я отключил оптимизацию (none). ========================================================================== Всем спасибо! Вот пример правильной записи :-) uint8_t HCI_Reset[] @ "FLASH" = {3,2,1}; -
Разместить массив во Flash STM32
bingo ответил bingo тема в ARM, 32bit
К сожелению и это не правильно. :crying: Вот цитата из документации ("EWARM Development Guide" с.288): "If you declare a volatile object const, it will be write-protected but it will still be stored in RAM memory as the C standard specifies. To store the object in read-only memory instead, but still make it possible to access it as a const volatile object, define the variable like this: const volatile int x @ "FLASH"; " Да, так работает. Но мне нужен инициализированный массив (типа Cmd [] = {3,2,1} ). А это уже не компилируется Кстати, и без volatile - тоже массив будет в RAM! А точнее, в RAM и еще код для его создания в ROM (т.к.начальный код для создания структуры массива в RAM все равно работает из FLASH). Т.е. не рационально и избыточно. Возможность разместить неизменяемые большие массивы в ROM-FLASH (которого существенно больше чем RAM) очень полезна. -
Разместить массив во Flash STM32
bingo ответил bingo тема в ARM, 32bit
Неее! Модификатор static не для этого! static переменная все равно будет расположена в RAM, но только инициализироваться до main() и др. Пробовал модификаторы @ и pragma, но пока не получается :-( Неужели никто не знает как разместить массив в ROM (FLASH)? -
Разместить массив во Flash STM32
bingo опубликовал тема в ARM, 32bit
Здравствуйте Есть большой набор не изменяемых массивов байт (целевые команды). Размещать из в RAM- не рационально. Подскажите пожалуйста как объявить в IAR ARM С инициализированный массив , так чтобы он был расположен во FLASH, а не в RAM. Естественно, массив только для чтения. Ранее для IAR AVR я делал так: __flash char* num1 = "58749455350"; Для IAR ARM v6.21 это не проходит. Но и такие объявления не получаются: uint8_t Cmd [] = {3,2,1} @ "FLASH"; -
Подскажите пожалуйста, сколько раз можно перепрограммировать flash память? Например, для Atmel AVR эта цифра указана явно - ~10 000 раз Для STM32 я такого параметра не встречал Наверное это также важно и для эмуляции EEPROM на встроенной flash-памяти
-
Для того, чтобы разобраться взял "C-SPY® Debugging Guide" В нем, в разделе "The IAR C-SPY Simulator - FEATURES" стр.38 четко написано: "...In addition to the general features in C-SPY, the simulator also provides: ... Peripheral simulation (using the C-SPY macro system in conjunction with immediate breakpoints). .." Не смогли бы Вы мне уточнить, где же написано про отсутствие поддержки периферии в Simulator? Буду Вам благодарен! :-)
-
Спасибо! Хотя это несколько не ожиданно! Это резко затрудняет отладочный процесс. Особенно при отсутствии рабочей платы C-Spy читал , но повидимому не достаточно внимательно. Не ожидал такого подхода со стороны IAR! :-(
-
Делаю первые отладки на IAR EWARM v6.21 для STM32F105BG Вопрос по отладке с помощью Simulator Не получается запустить счетчик (TIM2 и др.пробовал). На "живом" CPU ч/з SWD - все работает , счетчик считает отлично. Т.е. TIM2_CNT при каждой остановке показывет насчитананное. Перехожу на отладку симулятором IAR. Счетчик стоит как замороженный. Пробовал примеры из библиотеки, а также просто вызовами ф-ций станд.периф. библиотеки. Не хочет считать! Теперь упростил до минимума- все равно не считает! Вот упрощенный до предела кодик: int main(void){ RCC->APB1ENR |= (uint32_t)0x00000001; TIM2->CR1 |= (uint32_t)0x00000001; while (1) { } } TIM2_CNT не хочет изменяться, стоит на 0. Подскажите пжста в чем загвоздка? :(