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

Сергей Борщ

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

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

  • Посещение

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

    31

Весь контент Сергей Борщ


  1. Сказали "A" - говорите "Б". Так "нае..." или вы набросили специально, чтобы осадочек остался даже если ложечки найдутся?
  2. Вы серьезно пишете программу и не разу не открывали руководство пользователя? Потому что ответ на ваш вопрос содержится в начале буквально каждого раздела ...
  3. Про "сразу" там ничего не сказано. Сказано, установка произойдет от внешнего триггера. Не работал с этим режимом, подробностей не знаю.
  4. Тут в одной группе в телеге проскакивала книга Гомоюнов К.К. Транзисторные цепи. - СПб.: БХВ - Петербург, 2002. - 240 с. Народ был в восторге.
  5. Это же GD32, у него память отдельно, при старте перегружается в теневое ОЗУ. Дальше работата идет из ОЗУ без задержек.
  6. Если есть необходимость, чтобы никто не докопался: Eclipse + sdcc. Пробовал очень давно, переход по сообщениям об ошибках был недоделан и в компиляторе ошибки были, но их можно было обойти. Наверняка с тех пор стало лучше. Ну а если необходимости нет - среди трофеев есть вполне приличные экземпляры. Симулятор в Кейле был очень достойный еще 20 лет назад - позволял вывести УАПП симулируемой программы прямо в COM-порт машины, на которой запущен и отлаживаться с живыми данными.
  7. OTG хост обязан выдавать не менее 8 мА. Может стоит почитать стандарт на OTG и там будет какая-то информация о том, как это реализовать?
  8. Как правильно заметил rkit, обесточенный двигатель всегда находится в положении полного шага. Большинство (все не щупал) драйверов при включении питания устанавливаются в совершенно конкретное положение, соответствующее в их системе понятий шагу 0. То есть рассогласование может быть только до первого выключения/включения, далее двигатели будут вращаться синхронно.
  9. Если посмотреть на картинку блока EXTI (смотрю в документации на первый попавшийся F4xx, помню, что у остальных было так же и сомневаюсь, что у G0xx будет иначе) - то там прекрасно видно, что IMR запрещает выставление флага в IPR и вызов прерывания. А вот выход из энергосбережения идет напрямую. То есть в зависимости от IMR вы можете либо попасть в прерывание EXTI при просыпании либо программа просто пойдет работать дальше, но без записи 1 в соответствующий бит EXTI вы ни прерывания ни флага не получите. Добавлено: не поленился, открыл руководство на G0x0 - картинка сложнее, но идея та же.
  10. Подводя итог: что-то непропаяно было во второй плате, хотя прозванивал несколько раз. Сейчас на второй плате все летает как USB high-speed c настройками скорости ног ULPI и HIGH и VERY_HIGH и MEDIUM, на первой так и не работает, но это цель дальнейших исследований. Чтобы USB334x определялся как high-speed нужно в регистре DCFG выставить в 1 бит XCVRDLY. Без этого оно определяется как full-speed (причина описана в errata USB3340, решение найдено на буржуйских форумах). Для F2xx, F4xx, F7xx все то же самое, причем этот бит в заголовочном файле CMSIS не описан, хотя в руководстве пользователя F7xx, H7xx он есть. И еще: Это тоже работает в H725. Вдруг кому-то пригодится диагностировать...
  11. Я ставлю массив размером 0. Тогда предупреждений нет.
  12. Простите, что со своим самоваром встреваю, но в первой странице-двух располагаю загрузчик, позволяющий передавать заказчику зашифрованный образ обновленной прошивки и заливать его через имеющийся интерфейс (а не тот, который решили использовать ST), далее еще один маленький сектор на настройки и все остальное под рабочую программу, ей уже все равно, какого размера сектора.
  13. Я не знаком с этим контроллером, но может ему надо периодически ставить в очередь команду вроде Get_status?
  14. Ну кто бы мог подумать, что выводам ULPI надо настраивать скорость не VERY_HIGH, а HIGH... Теперь мой код тоже определяется компом как неотвечающее low-speed устройство. Ну хоть какой-то прогресс...
  15. Такс, стоило написать на форум и есть подвижка - код куба, естественно, не трогает ногу RESET физики. Дописал ее отпускание после настройки MCO2 и появилась какая-то жизнь. Код больше не виснет на сбросе, доходит до главного цикла в main(). Тот неописанный регистр ведет себя так же, как в моей программе, видимо в нем что-то поменяли. Но хоть какая-то жизнь есть - комп находит low-speed устройство, из которого ничего не может вычитать. Буду копать свой код дальше...
  16. Отладил макет на лежавшей в тумбочке Nucleo-F767 и USB3340 "на проводах". Все запустилось на самописном стеке USB, который плавно мигрировал с F407 на F207, F107, теперь вот и на встроенной физике F767 взлетел, а потом и на внешней. Пришло время делать рабочую конструкцию, посмотрел доступность F767 - прослезился в том числе и от цен. Решил поставить H725 - "модно, стильно молодежно", дешевле вдвое и USB, на первый взгляд, такой же. Получил платы, распаял, переписал тактирование - а фиг, реакции на втыкание кабеля USB никакой. Нашел в интернете упоминание файла из примеров куба, в котором используется обращение к недокументированному регистру F4xx, F7xx для доступа к регистрам физики. Проверил на F767 - да, Vendor ID из физики вычитывается. Попробовал на своей плате с H725 - фиг, в регистре взводится флаг BUSY и все, а должен потом упасть и взвестись DONE. Уже дня четыре бьюсь -- схему проверил, дорожки прозвонил, микросхему физики менял местами с рабочей, которая к Nucleo-F767 подпаяна была, вторую такую же плату собрал - она ведет себя точно так же. Наблюдаю только 60 МГц на ULPI_CK, постоянные уровни на D0-D7, низкие на ULPI_DIR, ULPI_NXT и пачки импульсов на ULPI_STP. Проверил правильность включения ключей на PC2_C, PC3_C, настройку ног. Уже не знаю, куда копать дальше. От отчаяния скачал/поставил куб, создал а нем проект с одним USB DEVICE CDC_ACM, настроил MCO2 на выдачу необходимых физике 12 МГц, прошил - этот проект валится на USB_CoreReset() - выставляет CSRST и не может дождаться его сброса. В errata про USB ни слова. Встречал упоминания, что у людей работает внешняя физика на H740, подумал купить его - так у него ноги не совпадают, на каждой стороне все нужные ноги включая питание туда-сюда на одну смещены... Собственно вопрос - кто-то запускал H725 с внешней ULPI-физикой? Может я зря трачу время и оно в принципе неработоспособно?
  17. Вставлял. Но когда оборачивал в сворачиваемую форму оно потерялось. Исправил.
  18. у меня в lwipopts.h стоит такое: Дальше ищите в исходниках "CHECKSUM_GEN" и "CHECKSUM_CHECK". И не забывайте, что может работать или одно, или другое. То есть если вы включаете программный подсчет, то аппаратный обязаны выключить и наоборот.
  19. То это "случайно, при невыясненных обстоятельствах в недокументированной области Option Bytes сбросился битик-рудимент от STM32WL55". В эррате этого (пока?) нет. Вдруг кому-то пригодится... https://community.st.com/t5/stm32-mcus/stm32wl55-and-stm32wle5-radio-timeout-issues-a-technical-faq-on/ta-p/615640 Кого не пускают - это бит SUBGHZSPISD из документации на STM32WL55 (бит 31 по адресу 0x1FFF7870)
  20. Не знаю, как насчет светодиодов, но две лампы накаливания по 50 Вт светят тусклее, чем одна на 100 Вт, потому что у них ниже температура спирали.
  21. Это я писал из головы и не успел исправить (отвлекли). struct sTxMsgCommand { u32 cmd, crc; }; using sTxMsgRequest = sTxMsgCommand;
  22. using тут не нужен. Он немного для другого: struct { u32 cmd, crc; } sTxMsgCommand; using sTxMsgRequest sTxMsgCommand;
×
×
  • Создать...