Перейти к содержанию
    

Сергей Борщ

Модератор
  • Постов

    10 908
  • Зарегистрирован

  • Посещение

  • Победитель дней

    31

Сообщения, опубликованные Сергей Борщ


  1. 6 минут назад, jcxz сказал:

    Вроде в мануале ничего нет про "выход". А только "input".

    У меня документация на 403 под рукой - не думаю, что 407 тут чем-то принципиально отличается от 403 или STM32:

    image.thumb.png.f307f1c8c91042d66e1682cc7cb17da3.png

     

    У STM32 этот момент расписан более подробно:

    image.png.11b511ebe993fd08a332816d2320a5d3.png

  2. 1 минуту назад, DAndy_boy сказал:

    Пользовался рекомендациями производителя:

    Да, я тоже их увидел. Не нравятся мне они. 

    Хорошо, отладчик внутрисхемный есть? Можете подключиться после зависания и посмотреть, где крутится программа?

  3. 46 минут назад, attaboy сказал:

    открываются через один, остальные - Error 404, Not Found

    Их сломали на днях капитально. Вроде восстанавливают по мере сил, многое уже восстановили (не слежу - может и все восстановили уже). Попробуйте еще раз.

  4. 1 час назад, DAndy_boy сказал:

    На ресете кондер 0,1МкФ и подтяжка 10К

    Кто вас учит такое делать? Зачем там конденсатор?

    Во-первых, нога сброса работает на выход во время сброса, и внутреннему ключу может поплохеть от разрядки такого конденсатора без ограничения тока. 

    Во-вторых, все необходимые схемы для корректного сброса по включению питания есть внутри.

    В-третьих, при кратковременном пропадании питания этот конденсатор тупо будет удерживать NRST неактивным, сброса не произойдет и программа может залететь куда угодно.

    В-четвертых,  при выключении у вас основное питание спадает быстрее, чем этот конденсатор разряжается на просевшее питание через ваши 10 кОм и нарушается требование Vih(NRST), max = Vdd + 0.5 В, то есть вход сброса опять же может подгореть. 

    Если уж религия не позволяет вам отказаться от этого конденсатора - шунтируйте подтягивающий резистор обратносмещенным диодом (лучше Шоттки), через который конденсатор будет разряжаться на проседающее питание.

     

    Добвалено: Полистал документацию, эта схема приведена в документации. Вы не виноваты. Вопрос меняется: Кто ИХ учит такое делать? Аргументы остаются те же.

  5. 3 часа назад, jcxz сказал:

    Или....... неужто Куб уже и до SiLabs-а добрался??!  :shok:

    Даю уроки вангования. Оплата пивом :crazy::

    3 часа назад, k155la3 сказал:

    Тут вроде норм., ф-ия из SDK-API Silabs. Работает с буферизацией и "синхронно".

     

  6. 22 минуты назад, jcxz сказал:

    Укажите номер строки, начиная с которой эта функция якобы находится в том, что вы прислали.

    Вы что, издеваетесь? Это же функция из КУБа! Ее каждый должен узнавать в лицо и работает она всегда правильно. Ее по определению невозможно заставить работать неправильно. А если не верите - вы жертва пропаганды! :crazy::biggrin: 

  7. 3 часа назад, CADiLO сказал:

    5 потоков по USB

    Это ни о чем не говорит, вы же не уточняете, что это за потоки. Какие-то потоки могут работать через конечную точку 0, одну на все устройство, а каким-то может надо по 4 или больше. Один CDC-ACM требует 3 конечных точки. И, наверное, простому устройству не нужны все потоки для задачи "послать письмо", "скачать страничку с данными".

  8. 25 минут назад, CADiLO сказал:

    "Есть модуль - выбрать контроллер - обеспечить 4 потока данных."

    Это же сколько конечных точек как минимум должен иметь USB контроллера? Наверное не только лишь все микроконтроллеры столько имеют, мало какие имеют столько.

  9. 9 минут назад, k155la3 сказал:

    Начните "с реализации".

    А вы сами каждый свой велосипед с нуля изобретаете, или все же смотрите, что у других подобного получалось? Разве Linker спрашивал, как делать? Он интересовался - нет ли там граблей (у тех, кто уже ходил).

  10. Простите, что встреваю - при заходе от нас на aliexpress.ru, доставку в какую страну бы ни выбирал - после обновления страницы все равно предлагается отправлять в Москву. При заходе на .com и выборе русского языка - перенаправляешься на .ru и снова настойчиво предлагается отправлять в Москву. Проверял на разных компах через разных провайдеров. Так что китайцы - те еще шутники.

  11. В общем, разобрался. Из-за ошибки иногда вместо Sleep отправлял ядро в Stop2, при этом останавливался таймер, который должен был разбудить и все это выглядело как зависание. А вся котовасия с IACCVIOL происходила уже когда я пытался остановить спящее ядро отладчиком, даже несмотря на установленный DBGMCU->CR.DBG_STOP - что-то у них там все-таки недоработано.

  12. Еще интереснее - System Flash, OTP area, Option bytes, регистры GPIO, SYSCFG,  DMA, CRC, ADC, (LP)TIM,  I2C, RTC, IWDG, WWDG, USART, LPUART, SPI1, SPI2 тоже не читаются в этом странном состоянии (из всех читается одно и то же число). А регистры PWR, RCC, EXTI, SUBGHZSPI, NVIC,  DBGMCU, SCB, STK - читаются.

  13. 17 часов назад, k155la3 сказал:

    Сделать из редкого сбоя устойчивый отказ

    Я могу устойчиво вызвать сбой кнопкой.

     

    Все чудесатее и чудесатее. Если в SCB->SHCSR включить все возможные исключения (MEMFAULTENA, BUSFAULTENA, USGFAULTENA), то взводится MEMFAULTACTA и в PWR->SR2 наблюдаю 0 в FLASHRDY. 

    image.png.f33a6617aace2943dee1c83b1fdc59e3.png

    Но я не использую LPRun и не могу в документации найти ничего про software controlled Flash power down.

    Добавлено: когда наблюдаю 0 в FLASHRDY из ОЗУ тоже читается чушь - из SRAM1 читаются нули, из SRAM2 - 0xFFFFFFFD. После сброса из этих же областей ОЗУ читаются нормальные данные предыдущей сессии.

     

  14. Хм. Понаблюдал пристальнее - когда попадаю в это состояние, и из флеша и из ОЗУ читается какой-то мусор - одно и тоже 32-битное число из всех ячеек каждой области (Flash, SRAM1, SRAM2). После сброса из ОЗУ читается нормальное содержимое предыдущего сеанса, из флеш - записанный образ прошивки. Видимо что-то отключением питания этих узлов намудрил.

  15. STM32WLE5, FPU, MPU не используются, программа работает под scmRTOS. Программа в целом работает - LoRaWAN крутится, радиочасть работает, AES аппаратный, I2C, RTC, DMA. Во время ожидания окончания обмена по I2C + DMA, обработки AES + DMA, передачи в радиочасть через SPI + DMA ядро свободное время проводит в SLEEP, в остальных паузах, когда периферия не нужна - в режиме STOP2 ожидает RTC alarm или EXTI от радио либо кнопки. Тактирование ядра и I2C от MSI, радио от HSE, RTC - от LSE. На всех неиспользуемых векторах прерываний и исключений висят заглушки в виде пустого цикла. В том числе на NMI, исключении HardFault и прочих Fault. 
    Есть кнопка, по нажатию на которую срабатывает прерывание EXTI, ядро выводится из STOP2/SLEEP и выполняет необходимые действия. Однако в редких случаях после нажатия на кнопку (ядро при этом было в STOP2) все виснет. Если отладчиком (openocd) остановить ядро, то отладчик пишет "current mode: Handler HardFault", в LR записано 0xFFFFFFF1, а в PC - 0xFFFFFFFC, то есть он не зациклен в обработчике HardFault, а пытался исполнять что-то из несуществующих адресов. При этом SCB->ICSR.VECTACTIVE = 3, в SCB->CFSR только IACCVIOL = 1, SCB->HFSR.FORCED = 1, SCB->SHCSR = 0.
    Подумал, что может флеш не успевает проснуться и из таблицы векторов вычитывается неправильный адрес обработчика - перенес в ОЗУ таблицу векторов и все обработчики fault. Ничего не поменялось. 
    Судя по IACCVIOL исключение MemManage возникло при попытке выполнить инструкцию из не предназначенной для инструкций области адресного пространства, но, поскольку SCB->SHCSR.MEMFAULTENA = 0 происходит эскалация до HardFault. Если сделать SCB->SHCSR.MEMFAULTENA = 1, то после остановки вся память SRAM1 оказывается забита нулями, а SRAM2 в конце которой находится вершина стека - значением 0xFFFFFFFD, несмотря на то, что эти памяти соприкасаются. Стековый кадр, сохраненный на входе в исключение - тоже одни нули. 

    У меня закончились идеи, как искать причину этого поведения.
    Собственно вопрос: как так может быть, что ядро находится в HardFault, но при этом не выполняет обработчик HardFault?
     

  16. 3 часа назад, des00 сказал:

    ИМХО, с заказчиком сейчас лучше договориться на использование квадриги и параметров источника/приемника. Затем берем матлаб

    В моем случае заказчик - гоблины, т.е. частные охранные конторы. Они слов таких не знают, им просто надо "и чтоб работало". За информацию спасибо и вам и @iliusmaster, запишу на корочку (тем потеряла актуальность в связи с падением доходов населения).

  17. 25 минут назад, iliusmaster сказал:

    У вас какой тип канала передачи? АБГШ, Релеевский...?

    Извините, что встреваю. Вот нравится мне этот вопрос во всех умных книгах. Читал их какое-то количество, но так и не понял, как этот тип определять. У меня одна антенна в произвольной точке города на крыше, а вторая - в произвольной точке города в квартире на разумном расстоянии от первой. А еще нужно, чтобы та же система работала и в сельской местности. А еще хочется, чтобы вторую антенну в автомобиле использовать можно было. И больше информации из заказчика не вытрясти (да и эта дана на мятой салфетке из кабака с подписью "И штоб работало"). Это какой тип канала получается?

  18. 4 часа назад, vit496 сказал:

    Тогда я вставил эти функции в реальный проект с размером флеш 350к. Причем, никакой код, кроме этих функций не выполняется (до него не доходит), то есть, никак не должен влиять на результат. И вот что вышло

    Ну подумайте сами - какая ядру разница, что там записано - 0xFFFFFFF или 0x1234567, если до исполнения этого кода дело все равно не доходит? У флеши ведь нет состояния "ничего не записано", что-то в каждой ячейке все равно хранится, либо ноль, либо единица.

  19. 3 минуты назад, MementoMori сказал:

    А как скорость меняется - задействованием одной или двух обмоток? Либо сменой режима коммутации с последовательного на параллельный?

    Просто напряжение с клеммы N подается либо на красный провод, как на вашей картинке нарисовано, либо на пунктирный.

    5 минут назад, MementoMori сказал:

    Вопрос - две обмотки последовательно и две параллельно - в каком случае мощь будет выше?

    На валу или потребляемая? Тоже задавался таким вопросом.  Пришел к выводу, что на валу мощность будет одинаковая, потребляемая меньше при последовательном соединении. Если вы имеете ввиду соединение обмоток статора и ротора - то там будет разная реакция на нагрузку.

  20. 26 минут назад, MementoMori сказал:

    То есть ощущение, будто бы Черный - отвод от середины, а Зеленый и Коричневый - крайние.

    Да, обычно так и сделано.

    26 минут назад, MementoMori сказал:

    Если бы не несовпадение суммы сопротивлений.

    Погрешность мультиметра на таких малых величинах не допускаете? На моем просто пошевелив разъем щупа при измерении таких сопротивлений можно оооочень разные показания увидеть.

    26 минут назад, MementoMori сказал:

    На картинке, что я привел, непонятно, откуда этот средний провод (пунктирный) идет

    Это дополнительный отвод от обмотки в двухскоростных моторах.

  21. Ну так покажите ваш дескриптор. Опишите подробнее, что значит "не выходит"? Что вы ожидали получить и что получили вместо этого. На этом форуме могут помочь решить проблему, но решать вашу задачу за вас вряд ли кому-то захочется, тем более добывая исходные данные телепатически.

×
×
  • Создать...