Size: a a a

Maxwell's Demons

2021 February 12

L🗿

Leonid 🗿 in Maxwell's Demons
Может кто сталкивался и сможет подсказать. Делал запись во flash из прерывания от adc на stm32g4, после пары неудачных попыток выполнить pageErase контроллер после ресета сразу переходит в NMI, даже при другой прошивке и не возможно сделать очистку памяти через stlink utility  или jlink  только перезаписать на другую
Option bytes проверял, RW protection включал-отключал, не помогло
В чем может быть причина и можно ли как то реанимировать камушек ?
источник

RS

Roman Storozhenko in Maxwell's Demons
Leonid 🗿
Может кто сталкивался и сможет подсказать. Делал запись во flash из прерывания от adc на stm32g4, после пары неудачных попыток выполнить pageErase контроллер после ресета сразу переходит в NMI, даже при другой прошивке и не возможно сделать очистку памяти через stlink utility  или jlink  только перезаписать на другую
Option bytes проверял, RW protection включал-отключал, не помогло
В чем может быть причина и можно ли как то реанимировать камушек ?
Не делай так. Сохраняй контекст в прерывании. В потоке сохраняй что нужно.
источник

L

Leonid in Maxwell's Demons
Grigorii Kuzmin
тебе пишут люди, что сами дебажили аврки, а ты такой тут всех пытаешься переубедить, что нам показалось?)
Не было на 8 меге внутрисхемной отладки никогда, в этом кстати у stm8 и преимущество перед авр.
источник

DA

Denis Arshanitsa in Maxwell's Demons
Пикадовские схемы возможно в альтиуме открыть?
источник

e

evg@kzn in Maxwell's Demons
Возможно
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Вопрос по bldc и сервоприводам на них.
Вот делаю свой. В каждую из сторон крутится идеально. А вот переход через ноль (смена направления на ходу) работает криво очень. Может сталкивался кто? Как правильно менять направление? Я сначала ШИМ почти до 0 свожу, а потом меняю машину состояний. Но в этот момент у меня сильно подскакивает ток. Думаю, это связанные вещи.
источник

В

Василий in Maxwell's Demons
VadimAnimeEmbedder
Вопрос по bldc и сервоприводам на них.
Вот делаю свой. В каждую из сторон крутится идеально. А вот переход через ноль (смена направления на ходу) работает криво очень. Может сталкивался кто? Как правильно менять направление? Я сначала ШИМ почти до 0 свожу, а потом меняю машину состояний. Но в этот момент у меня сильно подскакивает ток. Думаю, это связанные вещи.
Ты без остановки что ли обратно его расскручиваешь ?
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Подскакивает из-за того думаю, что я по сути я меняю + с - местами.
Я свожу шим почти до 0.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Там копейки остаются.
источник

В

Василий in Maxwell's Demons
VadimAnimeEmbedder
Подскакивает из-за того думаю, что я по сути я меняю + с - местами.
Я свожу шим почти до 0.
Что есть + и - и шим ?
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Уточню. У меня управление по датчикам холла. + - это шим, - - это замыкание на землю фазы.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Стандартная машина состояний из 6 состояний.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Была мысль все обмотки на 0 садить перед сменой направления на время... Не пробовал еще.
источник

L🗿

Leonid 🗿 in Maxwell's Demons
VadimAnimeEmbedder
Вопрос по bldc и сервоприводам на них.
Вот делаю свой. В каждую из сторон крутится идеально. А вот переход через ноль (смена направления на ходу) работает криво очень. Может сталкивался кто? Как правильно менять направление? Я сначала ШИМ почти до 0 свожу, а потом меняю машину состояний. Но в этот момент у меня сильно подскакивает ток. Думаю, это связанные вещи.
Запуск должен осуществляться по следующей схеме: начальное позиционирование / или определение начального положения -> разгон в режиме open loop до скорости при которой начинает стабильно работать модуль дающий команду на переключение обмоток -> переход в closed loop режим когда триггер на переключение обмоток поступает от соответствующего модуля. И так нужно делать каждый раз после остановки. Это если вы используете 6 шаговую коммутацию обмоток, что не имеет ничего общего с сервоприводом
источник

L🗿

Leonid 🗿 in Maxwell's Demons
VadimAnimeEmbedder
Была мысль все обмотки на 0 садить перед сменой направления на время... Не пробовал еще.
Если у вас Холлы то это должно помочь
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Leonid 🗿
Запуск должен осуществляться по следующей схеме: начальное позиционирование / или определение начального положения -> разгон в режиме open loop до скорости при которой начинает стабильно работать модуль дающий команду на переключение обмоток -> переход в closed loop режим когда триггер на переключение обмоток поступает от соответствующего модуля. И так нужно делать каждый раз после остановки. Это если вы используете 6 шаговую коммутацию обмоток, что не имеет ничего общего с сервоприводом
Несколько раз прочитал и ничего не понял. Что имеется ввиду под запуском?
У меня сейчас максимально простая схема управления.
Есть контур контроля положения. По сути я беру положение с внешнего магнитного энкодера, который находится на выходном валу сервопривода. И его отнимаю от желаемого положения. Расчет в при этом в радианах. Пример. 2 рад (желаемое) минус 4.4 радианы (текущее). После этого с ПИД регулятора приходит число от -1 до 1 (float). На основании него я уже выбираю последовательность переключения обмоток (по знаку), а так же мощность ШИМ-а от 0 до 1.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
И эта схеме некорректно работает при переходе через 0.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
Так же была мысль добавить еще один ПИД-руглятор для создания контура тока. Чтобы на вход приходил с первого ПИД регулятора желаемый ток, и я от него отнимал текущий.
источник

V

VadimAnimeEmbedder in Maxwell's Demons
VadimAnimeEmbedder
И эта схеме некорректно работает при переходе через 0.
Но при этом работает на вид гладко без нагрузки. Как только появляется нагрузка, хотя бы 1 кг на плече в 20 см, то уже видна проблема управления на точках где ПИД-регулятор скачет через 0.
источник

L🗿

Leonid 🗿 in Maxwell's Demons
VadimAnimeEmbedder
Несколько раз прочитал и ничего не понял. Что имеется ввиду под запуском?
У меня сейчас максимально простая схема управления.
Есть контур контроля положения. По сути я беру положение с внешнего магнитного энкодера, который находится на выходном валу сервопривода. И его отнимаю от желаемого положения. Расчет в при этом в радианах. Пример. 2 рад (желаемое) минус 4.4 радианы (текущее). После этого с ПИД регулятора приходит число от -1 до 1 (float). На основании него я уже выбираю последовательность переключения обмоток (по знаку), а так же мощность ШИМ-а от 0 до 1.
При 6шаговом управлении у вас дискретность шага получается (2 * pi) / 6 радиан. Т.е. регулятор насыщается пока ошибка не станет больше данного числа и только тогда происходит переключение. Так делать не правильно, для начала попробуйте питать обмотки синусом но по хорошему тут только FOC поможет, тем более если есть энкодер
источник