![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
adnega
-
Постов
3 603 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Сообщения, опубликованные adnega
-
-
А ведь в некоторых USART есть поддержка RS-485, правда сам не пользовался.
-
DMA отправил байты в сдвиговый регистр передатчика (а там еще один буферный регистр есть) - вот и отчитался, что всю свою работу он сделал.
Далее нужно следить уже за флагом TC USART.
-
Судя по всему, имеет место грамотный подбор ролика для демонстрации :) Почти статичная картинка, минимум движения, так что проблемы воспроизведения не очень сильно заметны.
На реальном ролике картинка рвется при сильном движении (15fps без вертикальной синхронизации). Но каждый кадр распаковывается по-честному.
-
Ферритовая бусина(bead)- это малая индуктивность с большими потерями, поэтому энергия помехи в значительной степени превращается в тепло, не путайте человека.
Если уж быть совсем точным, то я писал что L и C не влияют. Насчет бусин отмолчусь, ибо в цепях защиты НЧ сигналов их не видел. Удобный механизм создать L на ножке транзистора/диода - да, уменьшить излучения на сотнях мегагерц - да, но как преобразователь внешней помехи в тепло... не убедительно. Греться должны резисторы. Но даже при Вашей абсолютной правоте, что делать со смещением земли? Бусина от этого не спасает.
Я бы в случае, если простая схема не будет работать посоветовал еще 2 варианта:
1. Вероятно нагрузками будет рулить тот же контроллер. Можно синхронизировать управление нарузкой и момент выборки АЦП (когда переходный процесс устаканится).
2. Запитать датчик повышенным напряжением. Сигнал с датчика подавать на МК через дополнительный резистивный делитель и схемы защиты (конденсоторы, стабилитроны и т.п.)
Вообще, вопрос защиты от помех лучше обсуждать, когда известен характер и уровень помехи. Все остальное шаманство: решение может хорошо защищать от одних помех, а другие помехи могут сделать его нерабочим (вплоть до всего устройства). Некоторые помехи могут вообще препятствовать нормальной работе схемы, тут бусинами не обойдешься, и нужен матан, те же усреднения:)
-
К сожалению, пока не понимаю, какие она может создать проблемы на "земле" контроллера, кроме изменения уровня входного сигнала...
Разговор не про землю контроллера. Допустим возникла некая помеха так, что на левом контакте L появилось -X Вольт относительно GND. С резистивного делителя на вход АЦП попадает уровень, который ниже GND. Разве нет? Это раз.
Контур "GND"-"нижний L"-"провода к датчику"-"датчик"-"провода от датчика"-"верхний L"-"С на GND" образуют LC-контур со своими резонансной частотой и добротностью. Сегодня в качестве датчика у Вас резистор и добротность никакая, завтра там может оказаться что-то низкоомное (на резонансной частоте) и все дело начнет "звенеть" (L и C сейчас делают хорошо, паразитные параметры маленькие, поэтому добротность можно получить высокую).
Я бы убрал L с земли. L на питании заменил на низкоомный резистор. Конструктивно организовал трассы к датчику с минимальной площадью контуров.
В следующей иттерации боролся с тем, что появится (если появится).
Кста, L и C ничего не делают с энергией помехи. Да, форма меняется, скорость изменения напряжения уменьшается, но саму помеху нужно либо "сливать", либо обращать в тепло, либо "душить" в месте возникновения.
-
Если помеха будет с постоянной , то бусинка на GND - нехорошо, т.к. сместится уровень входного сигнала.
"Неоднозначная" земля что для постоянной, что для однократной помехи плохо не столько в метрологическом плане, сколько в плане выживания.
Например, на вход может попасть уровень значительно ниже земли, а для некоторых это грозит защелкиванием в КЗ по питанию (особенно STM32).
Обычно с помехами борются в месте их возникновения, а схему защищают от губительного воздействия и проектируют с учетом возможных путей тока.
Есть классическая статья на эту тему (Алексей Кузнецов. "Помехоустойчивые устройства").
-
А можно пояснить необходимость L на линии GND? Ведь помеха будет менять уровень земли, и это, вроде, зло.
-
В STM32F407 и новее нет проблем с рамипингом. Правда, и распределение ног по прежнему неудачное. Вся полнота функционала реализуется только в больших корпусах.
-
Если используется FSMC, то для программиста обращение к памяти полностью прозрачное. Т.е. как к обычной встроенной SRAM.
Если будете подключать NAND, то нужен софтовый драйвер, т.к. цикл обращения к данным сложный.
-
Демо-проект в STM32F429I-DISCOVERY (http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF259090) крутит видео 320х240х15fps c USB-флешки.
Правда, сжатие там, вроде, MJPEG, и очень жесткая привязка к размерам и fps.
-
Что-то я совсем запуталась в этих таймерах, частоте тактирования... В примерах вижу таймеры с номерами 15 и 16, лезу в MicroXplorer - там для 103 серии выше 14 номера нет...
В общем точное ТЗ такое:
Нужно получить на одной ноге 36Мгц, на другой тоже 36 Мгц, той же полярности, но с задержкой (я вычитала про deadtime, и поняла, что мне это нужно)
Какой таймер, в каком режиме нужно запустить? Имеется ли таймер с такими возможностями в 100 ногой линейке F103.
И еще - во всех примерах таймера почему-то тактируются от 24 МГц. Как же мне получить 36 МГц?
Подскажите пожалуйста.
Зачем ориентироваться на примеры? Таймеры вполне хорошо описаны в RM. С диаграммами.
Прочитать и все станет ясно.
Deadtime отсчитывается в единицах тактовой частоты, т.е. при 36МГц deadtime теряет смысл.
-
А вот запросто может быть, что он просто получился кривым и глюкавым, что о нём поспешили забыть и заменить его на те же F031 или на F051 ..
Проц, как проц.
Просто, сейчас его называют по-другому.
Новость уже обсуждали тут (http://www.compel.ru/2014/05/29/pereimenovanie-mikrokontrollerov-stm32f0-i-stm32f3/).
Обычно кривость наблюдается у программиста, "особенности" чипа описаны в специальном документе.
Сомнительно, что такой явный и повторяемый баг туда не попал.
-
И что ученые мужи посоветуют в этой ситуации?
а что вы имеете ввиду под "ногодрыг"?
1. Заменить процессор на по-новее с FSMC (типа 407).
2. Если скорость обмена высокая не нужна и обмен не частый, то эмулировать интерфейс памяти - "ногодрыг". Т.е. программно переключать GPIO в соответствии с диаграммой.
-
+1 за FSMC
-
Я возможно не прав (поправьте меня), но вроде принято взводить RCC_APB2ENR_SYSCFGEN перед настройкой альтернативных функций.
PS: STM32F050 имеет статус NRND. Вы часом не новое разрабатываете?
-
Теоретически мы можем перейти на STM32 и посотрудничать с вами.
Да, будет Ethernet. Как раз поэтому LPC11C24 не подходит.
Напишите или позвоните мне, давайте все обсудим. Могу выслать документацию на CANopen контроллер серво мотора.
Спасибо за предложение, но сейчас загружен полностью и надолго.
С CANopen и управлением двигателями я не занимался, и Вам лучше найти Исполнителя с опытом и наработками - а такие на форуме есть.
-
Слышал, что в LPC11C24 есть и CANopen и даже CAN-Phy. Одно время делал на них ставку, но сейчас уже плотно сижу на STM32.
Кроме CANopen и двигателя есть еще что-нить? Ethernet, USB и т.п.?
Кста, с десяток этих самых LPC11C24 пылится под рукой.
-
На основе примера от STM написал свою программу. Но есть одна тонкость - надо чтоб один из циклов не прерывался (выполнялся за определённое время). А реально случайным образом длительность "дёргается"- подозреваю , что происходит прерывание в программе-исходнике. Вопросы такие: можно ли определить, какое прерывание происходит ( может, есть регистр, в котором сохраняется информация, или в отладчике кейл-микровижен)?Как запретить ВСЕ прерывания на время цикла ?
Узнать прерывание можно из регистра IPSR.
Считать регистр можно "msr r0,IPSR".
Младшие 9 бит указывают текущее состояние процессора:
ISR_NUMBER:This is the number of the current exception:
0: Thread mode
1: Reserved
2: NMI
3: Hard fault
4: Memory management fault
5: Bus fault
6: Usage fault
7: Reserved
....
10: Reserved
11: SVCall
12: Reserved for Debug
13: Reserved
14: PendSV
15: SysTick
16: IRQ0(1)
....
....
83: IRQ67(1)
see Exception types on page 34 for more information.
Запретить можно либо ВСЕ прерывания (с конфигурируемым приоритетом) через PRIMASK, либо с уровнем не ниже чем в BASEPRI.
Буквально вчера сделал, чтоб отладочные сообщения выводились в xterm разными цветами в зависимости от источника.
-
Куцее описание...
Я читал тут http://microsin.net/programming/PC/wav-format.html
Какая задача-то? Воспроизвести любой .wav файл? С любым сжатием?
Или вычитывание метаданных?
Если Вам не нужен звуковой редактор, или аналогичная по функционалу программа, то имеет смысл как-то ограничить требования к файлам.
-
PWM_mode_1, PWM_mode_2 и, возможно, даже toggle.
-
мой вопрос игнорируют(((
А это был вопрос? Все подумали, что ответ...
Есть на чем (железо) попробовать?
-
Нужно таймером померять частоту( временные интервалы ) на " лапке " кто знает как это сделать подскажите
В зависимости от диапазона измеряемой частоты решения могут быть различными.
Опишите задачу по-подробнее (частота от и до, точность, быстродействие), так и решение быстрее найдется.
-
А можно и так, если задействовать логику переноса:
a0 - A \ a1 - B + = A \ a2 - C / \ a3 ------- B + = A \ a4 ------- C / \ a5 -------------- B + = A \ a6 -------------- C / \ a7 --------------------- B + = A \ a8 --------------------- C / \ a9 --------------------------- B + = A \ a10 -------------------------- C / + = результат a11 ---------------------------------- B /
-
Нужно с помщью сумматоров получить кол-во бит в 12-разрядном слове
Ответ 12?
Или нужно количество единичных/нулевых бит? И только на сумматорах?
Тогда берем 6 одноразрядных-сумматоров и складываем два соседних бита - получаем 6 двухразрядных чисел.
Затем попарно складываем эти числа при помощи 3-х двухразрядных-сумматоров - получем 3 трехразрядных числа.
Складывем первое и второе число - получем четырехразрядный резыльтат, который складывем с оставшимся третим трехразрядным числом -
на выходе четырехразрядняй результат. Из сумматоров большей разрядности можно сделать уменьшеную разрядность занулением старших бит на входе.
a0 - \ + = \ a1 - / \ + = \ a2 - \ / \ + = / \ a3 - / \ + = + = результат a4 - \ / / + = \ / / a5 - / \ / / + = / / a6 - \ / / + = / / a7 - / / a8 - \ / + = \ / a9 - / \ / + = / a10 - \ / + = / a11 - /
Про SPI STM32F405
в ARM
Опубликовано · Пожаловаться
Советую повнимательнее почитать документацию.
В начальный момент, когда нет передаваемых данных выставлен TXE.
Записываем в DR данные, TXE сбрасывается и через такт устанавливается, т.к. данные из буферного регистра копируются в передатчик и буферный регистр снова свободен. При этом RXNE установится только после приема первого байта причем в момент защелкивания последнего бита. Для побайтовой передачи считаю этот момент существенным. При непрерывной передаче RXNE появляется на один такт раньше, чем TXE. Картинки есть в UM.