![](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
-
Программисты и электроники
adnega ответил _alex__ тема в Образование в области электроники
Это не согласуется с вашим же утверждением Идею можно найти в сказке "Каша из топора" или в соседней ветке про DC/DC без дросселя и диода. По поводу закона Ома: в школе в кружке радиолюбителей ремонтировал ламповый телевизор. Решил померить напряжение после детекторного диода: китайский мультиметр зашкаливало на пределе 2000DC, хотя по осциллограммам из схемы там единицы вольт. Лучше говорить о "закон Ома для постоянного тока". -
Программисты и электроники
adnega ответил _alex__ тема в Образование в области электроники
Вы очень плохо ориентируетесь в обязанностях программиста. Кроме алгоритма в прошивке еще много чего нужно сделать, не говоря уже о некоторых нетривиальных особенностях из ES, жизненного опыта или тонких моментов компилятора, среды и рабочего окружения вообще, пачки утилит, самописных утилит, контроля версий и средств документирования. На фоне всего указанного, закодировать готовый алгоритм действительно не сложно, но обезьяна этого не сделает, т.к. только алгоритм в изделии никому не нужен и работать не будет. Обычно на 99% у меня весь функционал прошивки не имеет никакого отношения к "новым алгоритмам" - все кирпичи уже есть, нужно соединить их в нужной Заказчику последовательности и при необходимости подкрасить в выбранный в ТЗ цвет. -
ESP32 - вкусные камушки, но очень бедная документация. Мне для проекта не хватает CAN, SDIO и RMII. В чипе они заявляются, но в документации ноль. Может, у вас есть что-то, кроме выложенного на официальном сайте?
-
Программисты и электроники
adnega ответил _alex__ тема в Образование в области электроники
А я еще большее скажу: все началось с того, что меня попросили доработать прошивку под существующее чужое железо. Т.е. железом можно было вообще не заниматься. -
Программисты и электроники
adnega ответил _alex__ тема в Образование в области электроники
Все верно: к примеру, несколько лет назад (в 2012) я разработал плату, к которой можно подключать некоторое множество периферии; сделал для нее прошивку. Но время идет, функционал растет, а его в основном делаешь за счет софта. Редко модернизируется и плата - крайняя версия 3 от 2014. Итого: месяц на хард, 5+ лет на софт, и софт постоянно дополняется хотелками. Кто должен все это делать? Либо один грамотный спец, если силенок и времени на все хватит. Либо один грамотный спец нарезает задания узкоспециализированным спецам-помощникам, с периодическими разжовываниями и вкладываниями в рот, для повышения их квалификации. Я не понимаю как там Н.С. периодически рассказывает про Ома, по-моему дело не только в ученике, но и преподавателе - мои все усваивают с первого раза, а закон Ома вообще не помню, чтоб кому-то приходилось объяснять. -
И еще не понятно чем и как залито - может просто механически отрывается/теряется контакт.
-
Дык, сделайте обработчик прерываний HT и TC для этого DMA. Я делаю примерно так void DMA2_Stream7_IRQHandler(void) { if(DMA2->HISR & (1 << DMA_HISR_HTIF7)) { DMA2->HIFCR = (1 << DMA_HISR_HTIF7); dma_event = 1; } if(DMA2->HISR & (1 << DMA_HISR_TCIF7)) { DMA2->HIFCR = (1 << DMA_HISR_TCIF7); dma_event = 2; } } в idle if(dma_event == 1) { dma_event = 0; // заполняем первую половину кольца } if(dma_event == 2) { dma_event = 0; // заполняем вторую половину кольца }
-
Значит поток у вас непрерывный. Тут все просто - делаете кольцевой буфер на DMA и забываете вообще про SPI. Готовите в прерываниях DMA HT и TC новую половину данных. SPI лучше сделать 16 бит, если выдаете с частотой не сильно меньше AHB. Я делал на стареньком STM32F103 вывод на VGA-монитор - очень похожая задачка.
-
В результате помехи устройство может недосчитаться CLK и давить линию SDA своим ACK. Перед формированием условия START нужно убедиться, что SDA в 1, иначе подергать CLK.
-
О, я рекомендую почитать. Очень хорошие статьи у Курница. На странице 40 раздел "Вложенность прерываний" и далее. Еще обсуждали тут. Есть на английском тут.
-
Вы используете функции ОС в прерывании, у которого приоритет выше системного.
-
А как же это в конце обработчика? xSemaphoreGiveFromISR ( xSemaphore_spi1, &xHigherPriorityTaskWoken ); xTaskResumeFromISR (&xHandleSPI1); uart2_putcharPoll ( 'E' );//, xNoBlock ); portEND_SWITCHING_ISR ( xHigherPriorityTaskWoken ); Попробуйте приоритет сделать ниже системного. Насчет while ( USART_GetFlagStatus( USART2, USART_FLAG_TC ) == RESET ); - это не лучшее решение ждать отправки в самом высокоуровневом прерывании. Лучше сделать для uart очередь и в idle ее опустошать. Если вам для отладки, то лучше светодиод на выводе МК.
-
Контактор на плкте с МК
adnega ответил Слесарь тема в В помощь начинающему
При таком подходе устройство может поработать, а потом сломается в самый неподходящий момент. Лучше сразу делать хорошо. Кста, принципиальная схема и система сквозного проектирования ПП, тот же KiCAD, позволяют значительно экономить время в целом. -
Контактор на плкте с МК
adnega ответил Слесарь тема в В помощь начинающему
Я же вас просил обходиться без крайностей, а вы продолжаете. Жаренные семечки можно есть - давайте питаться только жаренными семечками! Блин, от этого будут проблемы - поэтому жаренные семечки это вред, давайте запретим есть жаренные семечки! Проблема не в семечках, а в их доле в рационе. Шаблон понятен. Т.е. вы отказываетесь предоставить программу для МК, которую я просил выше? Т.е. вы признаете, что заблуждались по поводу надежности МК, и возможности обработки нештатных ситуаций средствами МК? -
Контактор на плкте с МК
adnega ответил Слесарь тема в В помощь начинающему
Сбои возможны. Речь о том, что сейчас их можно обнаружить и обработать, если ты, годный инженер. -
А надо как? А зачем, если большинство будет работать не по специальности?
-
Конечно врете и передргиваете )) Вы всячески пытаетесь продемонстрировать низкий уровень подготовки на своем примере, но это не доказывает, что у всей инженерной России так. Я считаю, что как и в других вопросах тут нельзя ставить диагнозы категорично - все не так плохо, но и не так хорошо. Только тролль будет писать категоричные заявления, как бы набрасывая, а не, пытаясь привести объективные данные, даст людям сделать выводы самим.
-
Контактор на плкте с МК
adnega ответил Слесарь тема в В помощь начинающему
Дык, вы напишите, а мы по исходнику поймем ваш уровень. Можете на 1 сбивать, можете дефайн определить, можете на случайную величину портить. Переходите, пожалуйста, от слов к делу. И про обработчик HF не забудьте. -
Отключение старт-стоп своими руками
adnega ответил papakarl тема в АВТО электроника
Видимо, ТС все уже собрал на двух реле, поэтому тема исчерпала себя ;) Для меня лично самым простым решением был бы мелкий МК (та же тини13). Много лет назад делал другу управлялку для фар: подключалась в разрыв питающего провода, и был один управляющий вход, от которого лампа работала либо в полный накал, либо в 30% накала. Вас порадует, что сделал я это на 555 таймере ;) -
STM32F103C8T6, глючит при прошивке
adnega ответил Метценгерштейн тема в ARM, 32bit
Лучше найти другие пины, коих в R-корпусе много, а эти использовать на ввод, но точно не для светодиодов. -
Контактор на плкте с МК
adnega ответил Слесарь тема в В помощь начинающему
Вы не сможете в течение недели предоставить тест, в котором CPU будет сбиваться на один байт, и не попадет при этом в HF. Если сможете, то время пошло. -
Похоже на FreeRTOS. Там с приоритетами прерываний нужно быть очень аккуратным. Не все функции можно использовать в обработчике. Мне кажется, что причиной может быть строчка uart2_putcharPoll ( 'I' );//, xNoBlock ); Для DMA у вас задан самый высокий приоритет // Configure the DMA interrupt priority NVIC_InitStructure.NVIC_IRQChannel = DMAx_Streamx_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init ( &NVIC_InitStructure ); - вы не имеете право пользоваться функциями ОС внутри такого обработчика.
-
STM32F103C8T6, глючит при прошивке
adnega ответил Метценгерштейн тема в ARM, 32bit
Пять копеек не по делу: если на PC13 светодиод, то это не очень хорошо, т.к. PC13-PC15 очень слаботочные выходы, и ST запрещает к ним подвешивать мощные нагрузки. -
Я не видел ни одной централизированной системы, чтоб не смотрелось монструозно (хотя не скажу, что много видел). Лучше уж распределенную систему, но там каждый узел должен быть умным. Я заложился на шину CAN+питание+резерв. Соединил все узлы паровозиком по всех квартире. Каждый узел - выключатель на 2 группы (с полной группой), три сенсорных слайдера (или 6 сенсорных кнопок), 4 светодиода, пищалка, 2 аналоговых входа, один токовый выход для LED-подсветки. К аналоговым входам обычно подключаю геркон двери и датчик движения. В каждый узел можно залить свою мини-программу. Контроллеры могут обмениваться сообщениями друг с другом. Есть контроллеры с 6 входами и 6 выходами. На них сделал подсветку в кухне - плавное включение-выключение светодиодной ленты при открытии дверей. В коридоре более крутой контроллер. На нем сделан звонок, контроль входных дверей, контроль движения, контроль наличия фазы, GSM-сигнализация, титровалка для видеодомофона, светодиодная периметровая подсветка потолка и т.п.