- STM32: Как узнать, какому порту принадлежит пин, вызвавший внешнее прерывание? Проблема в том, что у STM32 на одну линию прерывания посажены одноименные пины всех портов. Например, прерывание EXTI0 могут вызвать нулевые пины портов Ксения(264 знак., 07.06.2019 02:39 - 02:43, ARM, картинка, полностью)
- А почему бы не использовать к-нить внешний расширитель портов - к примеру MCP23017 MCP23s17. На одном I2C или SPI - 16 прерываний по изменению состояния - NickB(08.06.2019 11:37)
- Я наивно полагал, что на одно EXTI0 только одна ножка может быть заведена. Прямого запрета на несколько ножек на одно EXTI0в в документации не видел. Проверяли, реально работает от нескольких ног? - Sl(07.06.2019 10:11)
- Там мультиплексор стоит. Ксения просто в доке не разобралась ещё, поэтому задаёт странные вопросы: evgeniy1294(1548 знак., 07.06.2019 10:44)
- Когда мультиплексор только какой-то один пин активирует, тут и названной проблемы нет, т.к. очевидно, что прерывание придет от того пина, на который настроен мультиплексор. Проблема же возникает тогда, когда РАЗРЕШЕНО пинам нескольких портов Ксения(369 знак., 07.06.2019 14:49)
- У stm32 невозможно назначить два пина на один exti. Смотрите в регистры SYSCFG. - LightElf(07.06.2019 15:07)
- Сигнал ноги попадает на EXTI через мультиплексор. Работать будет только одно, только с одной ноги. Именно с той, на которую настроен мультиплексор. Миллион остальных ног будут кидать исключение в пустоту Evgeniy1294(79 знак., 07.06.2019 14:53 - 15:06)
- Означает ли вами сказанное, что больше 16-ти внешний прерываний (от изменения уровня на ножке) я иметь не могу? Или все-таки можно получить больше, как-то исхитрившись посадить на одну линию IRQ больше одного пина? - Ксения(07.06.2019 21:40)
- Тут возникает вопрос: зачем? - evgeniy1294(07.06.2019 23:30)
- Моя мечта - 208-ногий МК, дрыгающий всеми 200 ногами :) - Ксения(07.06.2019 23:44)
- МОжет пойти другим путём? Задействовать DMA и сканировать порты с шагом в 1мкс складывая в буфер в ОЗУ? А в мейне анализировать и отправлять по USB. - =AlexD=(10.06.2019 07:29)
- ПЛИС? - AlexG(08.06.2019 08:44)
- Зачем? - Evgeniy1294(07.06.2019 23:56)
- У меня МК не на вычислительной работе, а на фискальной :) - служит чем-то вроде очень многоканального логического анализатора. Отсюда и хочется много ног и таймеров с внешним запуском. На STM32 таймеров вроде бы много, но все равно не хватает, да Ксения(709 знак., 08.06.2019 03:11)
- Думаю вам плисины даже понравятся, вы же любите ковыряться в битиках, verilog не сложнее Си, а где-то и проще если привыкнуть. - =AlexD=(11.06.2019 08:44)
- Вам действительно нужна FPGA, контроллеры такое никогда ументь не будут ввиду особенностей контроллеров прерываний. Смотрите в сторону Spartan-7/Artix-7, но они, конечно, дороже плат на stm-ках. evgeniy1294(33 знак., 08.06.2019 10:53)
- А по USB что-то осмысленное FPGA передавать могут? А те FPGA, что имеют ARM на борту, шибко дороги. - Ксения(08.06.2019 15:11)
- вам оптимум - недорогой спартан-6 в качестве всех этих вот синхронных счётчиков/таймеров, и рядом недорогой малоногий ARM с USB. плисину с армом связываете через SPI, к примеру. - Mahagam(10.06.2019 00:44)
- У Спартанов-6, на которых китайцы платы делают, у самих мало ног. Т.е. имею в виду - контактов на плате, куда хоть что-то можно подключить. По этому параметру МК их заметно обгоняют. Скажем, пресловутый STM32F407 в 176-пиновом корпусе выглядит Ксения(159 знак., 10.06.2019 01:33 - 01:39, картинка)
- SPARTAN 3s500e gore222(343 знак., 11.06.2019 08:21,
)
- Ксения, а можете обозначить нечто, близкое к идеальному решению вашей задачи? - Dingo(10.06.2019 16:41)
- В случае, когда вместе с качественным ростом одновременно растет цена+трудозатраты, можно говорить лишь о компромиссе, но не об идеале. Огород до сих пор вскапывают лопатой, хотя лопата - далеко не идеальный инструмент. Мне же желателен компромисс Ксения(2539 знак., 10.06.2019 20:13 - 20:29)
- Бред какой-то. Вы собрались на МК ловить 200 прерываний с разрешением в 1 мкс ? Ну... удачи... - =AlexD=(11.06.2019 08:04)
- что-то мне подсказывает, что на FPGA можно было бы сколхозить так: Mahagam(802 знак., 11.06.2019 01:50)
- Вашу идею поняла и высоко оценила :). Однако STM32 мне все равно надо осваивать надо, а темы про FPGA в другом разделе форума. Поэтому пока поставлю задачу попроще, но с той же проблемой - присоединение к STM32 энкодеров. Здесь требуется по два Ксения(241 знак., 11.06.2019 02:27)
- При этом вы не обозначили, ни сколько входов вам требуется отслеживать, ни сколько энкодеров. Хотя бы в минимальной версии. Dingo(387 знак., 11.06.2019 05:21 - 08:36)
- Ксения, забейте на игрушечный STM32, возьмите реалтаймовый C2000 и хватит вам и таймеров, и квадратурных энкодеров, и даже CLB если разведете TI на документацию к нему - lloyd(11.06.2019 08:14)
- Поискать готовые платы с квадратурными енкодерами и последовательными интерфейсами. - =AlexD=(11.06.2019 08:10)
- пппфе, на той же платке за 20$ можно выделив 90 пинов сделать 30 энкодеров с тремя входами (с индексной меткой), или 45 энкодеров без неё. при этом без сбоев оно может работать с практически любой входной частотой. думаю, что лимитом скорости тут Mahagam(106 знак., 11.06.2019 02:57)
- На FPGA это делается довольно просто, хорошим примером здесь являются логические анализаторы. У меня дешевый ds logic с sample rate 400 МГц, что в 400 раз выше требуемого. - evgeniy1294(11.06.2019 00:16)
- лучше вообще знать для чего это всё. классическая The XY Problem - Mahagam(10.06.2019 17:08)
- китайцы продают распаянный спартан XC6SLX9-TQG144, у которого 102 I/O ноги. но вот за вычетом тактового входа, нескольких ног SPI, остальные (думаю, что около 90) ноги могу быть сделаны как входы точных таймеров/счётчиков. STM так сможет? Mahagam(257 знак., 10.06.2019 12:23)
- Если большой поток данных, то посмотрите на Cy7C68013 и его наследников: x51 ядро для настройки USB2.0 HighSpeed "на рефлексах". - Dingo(08.06.2019 18:47)
- Могут. Но не все. Это лучше в соответствующий раздел и призвать Mahagam - Dingo(08.06.2019 18:32)
- Вроде как могут, но думаю, что что-нибудь типа FTDI снаружи было бы более беспроблемным вариантом - AlexG(08.06.2019 17:28, ссылка)
- кортексы в плане ногодрыга, сильно уступают древним тинькам ) это старый халивар, они несколько под другое заточены )) - Aleksey_75(07.06.2019 23:47)
- только 16 честных EXTI!!! Можно сделать "финт ушами" использовать прерывания от не используемых интерфейсов уарта к примеру ) - Aleksey_75(07.06.2019 21:44)
- Не узнала мультиплексор на картинке, подумала, что это схема типа OR. Ксения(395 знак., 07.06.2019 15:13 - 15:18)
- :) +1 - 0men(07.06.2019 13:04)
- Там мультиплексор, в любой момент времени прерывание может быть только от ножки одного порта. Т.е. либо PA.0, либо PB.0,либо PC.0 - LightElf(07.06.2019 09:22)
- Вам это не нужно - Evgeniy1294(07.06.2019 07:18)
- огласите задачу, возможно для ее решения нужно идти другим путем. Mefod(205 знак., 07.06.2019 07:04)
- чтение портов, ессно. не благодарите. Ваш КО. - VLLV(07.06.2019 02:43)
- Входное сопротивление АЦП STM32 - то, что малое, понятно. Насколько стабильно? - VLLV(11.06.2019 07:18, ARM, полностью)
- Возникла необходимость для STM32 прошивку по SWD с гальваноразвязкой сделать, имеется батарея последовательно соединенных аккумов, корпус может быть заземлен, рассматриваем вариант, что в каждом каналом свой проц рулит контролем заряда. Просветите Visitor(203 знак., 06.06.2019 20:23, ARM, полностью)
- В последнее время вижу бурное обсуждение stm. А почему nxp не обсуждается? по моему очень достойно. приложил бы хорошую презентацию, да недостоен по цвету... Mefod(146 знак., 06.06.2019 07:22, ARM, полностью)
- Думаю, что у ST более правильная политика по продвижению на наш рынок. - Visitor(06.06.2019 18:43)
- Древнючий LPC2138, затеял общаться с FPGA по шине Microwire, оказалось, железо в процессоре кривое и не умеет читать. Обиделся, с тех пор никаких NXP - сначала Atmel, затем - STM32 - Сидоргек(06.06.2019 12:07)
- Мыши плакали, кололись, но продолжали жрать кактус(с). Что/кто мешает зарегистрироваться? - MBedder(06.06.2019 11:37)
- После покупки Freescale сроки на поставку Кинетисов стали больше, чем полгода. Цены выше. Болезнь санкционности. - VLLV(06.06.2019 09:22)
- После дохнувших часов на LPC2148 я с ними не дружу. - plainuser(06.06.2019 09:00)
- Я оба производителя использую. Но ST - моя последняя любовь :) Люблю их за платки дешевые с алиэкспресса, программатор-отладчик, либы на все случаи. Да и вообще за все :) ST на мой взгляд подарил простым смертным много возможностей за недорого и Vesago(240 знак., 06.06.2019 08:56 - 08:59)
- Просто ST решила захватить мир, выпустив за короткое время кучу новых семейств. - evgeniy1294(06.06.2019 08:44)
- Ссылку можно в тело письма "под кат", а файл на любое облако. В общем, изучай посты других розовых. ST очень удачно вклинились, раздав кучу демоплат и обеспечив доставабельность их МК в розницу; ещё - работая с дистрибьюторами. Dingo(243 знак., 06.06.2019 08:39)
- [STM32G4] Сводный системный. - Evgeny_CD(03.06.2019 20:26, ARM, полностью)
- [STM32H7 Dual-Core] STM32H745/755 and STM32H747/757 -> тихой сапой вышли и залегли на склад. Дрим-чипы в квадрате. И даже errata умеренной стремности. Evgeny_CD(683 знак., 05.06.2019 19:43 - 20:16, ARM, ссылка, полностью)
- Стали греться китайские ST-LINK V2. Сначала один, затем другой. Внутри контроллер с маркировкой STM32F101CBT6 Как же так - этот контроллер по документации не имеет USB Где засада? - NickB(05.06.2019 11:58, ARM)
- Интересная однако тенденция. Раньше обсуждали тонкости работы с регистрами периферии у STM32, теперь обсуждаем тонкости использования горячих клавиш в среде CubeMX. "Для смены альтернативной функции вывода необходимо использовать клавишу Ctrl. Для il-2(136 знак., 30.05.2019 18:13, ARM, полностью)
- Друзья, кто силен в IAR ARM. У меня версия 6.70. Нужно разместить некие константы по определенному адресу во флеши. Тема старая, но у меня не работает хоть тресни. Я в файле линкера вписал: Vesago(298 знак., 03.06.2019 22:13, ARM, полностью)
- Бьются данные на карте памяти FATFS STM32L496. maizezoidberg(1186 знак., 31.05.2019 10:40, ARM, полностью)
- Требуется USB + отдельный VBAT. В STM32F0 нет. Что брать? - VLLV(30.05.2019 19:49, ARM, полностью)
- (решено) Как отключить JTAG средствами CubeMX? (нужен доступ к заблокированным им PB3-PB5) Ксения(125 знак., 28.05.2019 19:58 - 29.05.2019 00:29, ARM, картинка, полностью)
- То что в книжке пишут относится к семействам F100 и F101, F102, F103. У вас же, вероятно F407. У них иначе: режим JTAG/SWD для ног это просто режим альтернативной функции с номером 0, он включается автоматом после ресета. ЫЫукпу(576 знак., 28.05.2019 21:39 - 21:44)
- Да у меня 407-ой. Однако SPI - это Alternate function, отменить которую я не могу. Т.е. PB3-PB5 нужны мне именно как SCK, MOSI, MISO. Ксения(409 знак., 28.05.2019 23:40, картинка)
- Не включать jtag можно тут evgeniy1294(28.05.2019 23:58 - 29.05.2019 00:04)
- В кубе можно застолбить ноги evgeniy1294(29.05.2019 00:00)
- Как это у вас получилось? - Ксения(29.05.2019 00:14)
- Тыкаете на ногу мышкой и выбираете нужную функцию. - evgeniy1294(29.05.2019 00:16)
- Ура! Получилось! Спасибо вам. Но это недоработка в CubeMX, что в предложенном для SPI выборе он эти пины не предлагает, а вынуждает пользоваться неочевидным методом. - Ксения(29.05.2019 00:24 - 00:27)
- Куб по F1 открывает пдф-ку с описанием где чего можно нажать. Про контрол+левая кнопка, оказывается, уже было сказано. Удалил лишнее. - ЫЫукпу(29.05.2019 10:20 - 10:31)
- Тут нет не доработки куба, нужно читать мануал. Более верный ход такой: включаете SPI1, он выдает по дефолту пины PA5, PA6, PA7. Вас не устраивает, наводитесь на пин PA5, зажимаете ctrl и левая кнопка мыши: видим подсветку других пинов, наводимся Mefod(51 знак., 29.05.2019 09:45)
- ?? Почему же "неочевидным"? Даже я (такой... неумелый) в самом начале сразу это увидел (тыканье в ножку для перекидывания функции). И у меня SPI3 по умолчанию Куб кидал не на РВ3-5. - Лагунов(29.05.2019 08:32)
- Да не за что - evgeniy1294(29.05.2019 00:26)
- что значит "отключить"? Надо просто НЕ включать. У меня прорва проектов прошла от CubeMX. Никто ничего там не включал. Никто не блокировал. Эти пины я везде активно использую. Вот Лагунов(28.05.2019 20:21 - 20:26)
- Как изнутри различить микроконтроллеры: STM32F407VE, STM32F407ZE, STM32F407IE? Ксения(665 знак., 01.05.2019 03:51, ARM, полностью)
- Свою конкретную проблему (различить похожие платы между собой) я решила, однако это был "нечестный" способ, который в общем случае не годится. А потому считаю тему по-прежнему актуальной - вдруг кто-то предложит общее решение этой проблемы. Ксения(543 знак., 24.05.2019 22:54)
- По UARTу засылать код платы для записи на внешнюю флеш, но вообще я так понимаю - платы разные, можно просто проверять, какая внешняя периферия есть в наличии - =AlexD=(24.05.2019 16:18 - 16:27)
- Думаю, никак, если снаружи ничего не висит с подтяжками. Кристалл то один и тот же, разварка в корпус разная. Так что можно наверное исхитриться и на очень большом интервале выяснить что существует некая емкость на соответствующем выводе из-за Ralex(108 знак., 24.05.2019 11:10)
- Вы правы, в данном случае проблема распознавания неразрешима, т.к. внутри м/с находится одно и то же "ядро". Поэтому изнутри этот МК чувствует свои фантомные ноги, которые наружу не выведены и может ими прядать. :) Ксения(1335 знак., 24.05.2019 22:40 - 22:43, ссылка)
- Вам для этой цели дали OTP, зачем тратить ноги? - evgeniy1294(24.05.2019 12:19)
- Видимо вы имеете в виду внутрисхемное программирование. Ralex(1028 знак., 24.05.2019 14:18)
- В прогрессивном мире для этого есть Device Tree - lloyd(24.05.2019 15:33, ссылка)
- Перемычки для этого не нужны, ни для приведенных вами задач, ни для задач Ксении. Не, если половина ног не использованы, то почему бы и нет, но зачем, если можно прошить в камень не один бинарь, а два? И сразу не нужны ни таблицы, ни джамперы, да evgeniy1294(1029 знак., 24.05.2019 15:26)
- Вах! Ксения аватарку вернула. - Codavr(24.05.2019 08:47)
- Уточнение: а зачем это надо? Вопрос имеет практическое значение, или исключительно в познавательных целях? Dingo(275 знак., 07.05.2019 12:05)
- У 407 вроде не было package ID, в более поздних появился только. В F7 вроде есть. По ссылке есть макрос. - LightElf(01.05.2019 18:36, ссылка)
- А нахрена? Совершенно надуманная задача. При прошивке платы человек выбирает нужную версию FW и незачем париться с попытками изнутри что-то обнаружить. бомж(221 знак., 01.05.2019 15:57 - 16:00)
- А если порта такого нет, то что я увижу, Lo или Hi? - Ксения(01.05.2019 16:34)
- Докладываю. STM32F407VE, QFP-100, там не выведены порты F,G,H,I. GPIOH->IDR читается как 3, при этом PH0, PH1 можно дёргать - реагируют. Все остальные читаются как 0, на дёргание не реагируют. Вру, PH0, PH1 как раз выведены. - SciFi(01.05.2019 16:52)
- hardfault уведите ))) - Aleksey_75(01.05.2019 16:37)
- В запуске прописать загрузку в означенные порты какую-нибудь фигню типа 0xAA, прочитать, если не совпало, то и нет порта. Как-то так, если не повиснет :) - Барбос(01.05.2019 15:11)
- Очень легко отличить камни с разными корпусами(через dev ID, с ограничениями) и объёмами памяти (dev ID или check pointer). Evgeniy1294(219 знак., 01.05.2019 08:59)
- в stm32fxxx_hal_libraries есть библиотека идентификации DVV(258 знак., 01.05.2019 06:58)
- Там с большой вероятность один и тот-же кристалл, поэтому вариант с потолкать порт с большой вероятностью не пройдет. - AlexG(01.05.2019 06:57)
- Хочу ST-LINk (STM32 ST-LINK CLI) прошить два бинарника в пределах одной страницы. Но он стирает страницу, когда заливает второй файл. michas(196 знак., 26.05.2019 14:49, ARM, полностью)
- Какое время может потребоваться для перевода проекта (управление приводом с ОС по положению) с MSC-51 на STM32F4? Если по 4 часа в день, реально за 3 недели "портировать" до рабочего состояния? Написан на С. De_User(304 знак., 24.05.2019 03:36 - 05:50, ARM, полностью)
- переводил несколько своих проектов с атмега128 на стм32ф405, ушло 1-2 недели. Проекты большие - 0men(24.05.2019 16:21)
- Если вычядро на си написано, то периферию перевести будет сравнительно несложно, т.к. у АВР она сама по себе несложная. Траблы могут быть из-за обильного ногодрыга с точной растактовкой. - michas(24.05.2019 14:58)
- Скажу из своего практического опыта - приходилось портировать написанное для AVR (ЖКИ, кнопки, ИК-канал связи с самопальной генерацией импульсов) в аналогичную схему для STM32. Ничего страшного нет, даже несмотря на то, что ключник писал на Си :-) - il-2(24.05.2019 14:29)
- Не очень корректный вопрос, т.к. квалификация исполнителя не определена, в том числе знание ARM, периферия которого с непривычки может вогнать в ступор. - VLLV(24.05.2019 12:00)
- От проекта зависит. Насколько чётко выделена аппаратно-зависимая часть и насколько абстракции используемые в старом проекте реализуемы в новом. В 3 недели можно "HAL" не успеть сделать отладить (уарты, таймеры и т.п.) Собственно с этого и нужно fk0(1000 знак., 24.05.2019 11:48)
- Учат их учат, что нужно программы структурировать. Нет сцуко в один файл наебенить полторы тыщи строк... - Codavr(24.05.2019 08:41)
- В один файл обычно сваливаются все методы класса, или все функции одного программного модуля (хотя для библиотек лучше одна функция -- один файл), так что вполне может быть и 20 тыс. в одном файле. Наполнение файла зависит не от числа строк, а от fk0(274 знак., 24.05.2019 11:27)
- Лучше
день потерять научиться кодить по-человечески, потом за 5 минут долететь портировать на всё, что движется. А так да, можно полжизни потратить, заново изобретая старый велосипед. - SciFi(24.05.2019 08:49)
- У меня 1.5к строк - это психологический порог, после которого я дроблю файл. Но не меньше - lloyd(24.05.2019 08:48)
- При большом количестве файлов тяжело между ними туда-сюда переключаться. У меня в одном проекте главный файл 15 тыс. строк. - Ale3000(24.05.2019 09:05)
- у меня - 18 тыс. Никого не боюсь! :-) Тем более в Кейле минусами большие куски текста можно спрятать. - Лагунов(24.05.2019 09:12)
- Ты же недавно сишник изучать начал. Когда 18 тыщ наебенить успел? - Codavr(24.05.2019 09:15)
- Копипаста - дублирование кода. Функции с общим кодом придумали трусы. И вообще, сегодня народ выходит из шкафа и даже не стесняется. Пятница! - SciFi(24.05.2019 09:16)
- Я не соглашусь, но боюсь, будет как с goto. Дублирование не всегда плохо, но в руках дурака может быть смертельно. Суть в том, что если код одинаков, то не обязательно, в перспективе, это одно и то же, просто здесь и сейчас оно выглядит похоже, но fk0(806 знак., 24.05.2019 11:34)
- ну иногда всё же пару сотен строк вырезаю и делаю общую функцию. Если не лениво ее объявлять, вставлять и проч. :-) А чего мне бояться main.c размером в 600 кбайт? Теперь 3-кратно всё дублирую и копирую. - Лагунов(24.05.2019 10:24)
- Откройте для себя C++ и template<> - lloyd(24.05.2019 09:23)
- Ничего тяжёлого там нет. Выкиньте свой убогий текстовый редактор и найдите себе что-нибудь приличное. Заодно нервы сбережёте. - SciFi(24.05.2019 09:10, ссылка)
- Глянул из спортивного интереса. Есть довольно крупный проект, своего кода 66 сишных файлов, мин. 20 строк, макс. 1200 строк, сред. 200 строк. Ну и пара файлов с колбеками для WWW и SNMP, там за 2000 строк, но это не считается. - SciFi(24.05.2019 09:02)
- У меня он в районе 500, это не самоцель, но уже напрягает, а майн так вообще шоб на одну страницу помещался. Не ну я могу предположить, что какой-нить навороченный алгоритм может и 3 тыщи занять и 5, и это будет удобно иметь одним файлом. Но Codavr(36 знак., 24.05.2019 08:57 - 09:01)
- ну если 80% не привязано к железу, значит по факту тупо написать BSP. На саму писанину времени за глаза - Aleksey_75(24.05.2019 04:58)