ART_ME

STM32 для чайника

1 899 сообщений в этой теме

GOR23    41

@MihaNN52 Ещё так может проявляться аппартаный косяк с I2C на F103 серии. Про него неоднократно писали. Но проявляется это не часто, у меня к примеру на 200 приборах, работающих почти беспрерывно, вылезло за пол года всего раз 5. И то после перезагрузок. Так что если у вас такое часто, то скорей всего причина в другом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MihaNN52    2
В 17.06.2018 в 12:57, GOR23 сказал:

@MihaNN52 С какой функции hal_ busy возврашается?

 

У меня он тоже не часто появлялся. Но тут похоже микросхема часов дает сбой. Перезапуск чтения не помогает. Линия SDA  висит а нуле. Перезагрузка так же не помогает, но с этим вроде как разобрался. А как продолжить чтение нет. Понятно что в идеале все должно работать без сбоев. Но наверное не правильно чтоб устройство вставало без реализованных попыток работать дальше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559

@MihaNN52 , если шина виснет, а устройство должно работать дальше, то в чём проблема ? - пусть дальше работает, но без часов.
Если оно может "сказать" внешнему миру об ошибке - то пусть говорит.

PS: Как Вы сделаете, таким поведение и будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MihaNN52    2
5 часов назад, Alex сказал:

@MihaNN52 , если шина виснет, а устройство должно работать дальше, то в чём проблема ? - пусть дальше работает, но без часов.
Если оно может "сказать" внешнему миру об ошибке - то пусть говорит.

PS: Как Вы сделаете, таким поведение и будет.

Не без часов, а без шины i2c которая лежит плашмя и на которой несколько устройств.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GOR23    41

А пробовали выловить этот зависон и отключить часы от шины, что бы убедиться в том что часы шину держат?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559
Цитата

Не без часов, а без шины i2c

Да какая разница без чего работать ? Ну не без часов, а без шины.
Вопрос то в чём ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MihaNN52    2
1 час назад, GOR23 сказал:

А пробовали выловить этот зависон и отключить часы от шины, что бы убедиться в том что часы шину держат?

Да пришлось отключить часы и использовать внутренний RTC контроллера. Сейчас проблема не появляется.

1 час назад, Alex сказал:

Да какая разница без чего работать ? Ну не без часов, а без шины.
Вопрос то в чём ?

Вопрос как вернуть шину в работу без перезагрузки МК.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GOR23    41

Почитай, может поможет. Но это только если баг с эрраты проявляется. Но если шину держат действительно часы, то как бы выход один - нафиг часы. А глюк в процессе работы вылазит или сразу после включения?

Изменено пользователем GOR23

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559

Сколько у меня устройств было с часами по I2C (в том числе - промышленные, работающие в суровых условиях помех и питании), ни одно не висло из-за них.
Сказки какие то...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 431

китайские 1307 виснут только так

нормальные, купленные не по 15 рублей за штуку, не висли еще ни разу

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559

А, ну если речь идёт о китайской фигне, то какие могут тут быть советы ТС'у... Пусть ставит нормальные...
Форум бессилен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 431

калокуб виноват

у нас на любой случай либо Путин либо калокуб. В данном случае хайли лайкли второе )

Изменено пользователем mail_robot

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Darth_Vader    64
4 часа назад, mail_robot сказал:

китайские 1307 виснут только так

Давным-давно надо забыть про 3107, ведь существует 3231!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MihaNN52    2
1 час назад, Darth_Vader сказал:

Давным-давно надо забыть про 3107, ведь существует 3231!

Часы 3231 конечно. Ни кто в реальные проекты всякое говно не покупает.

5 часов назад, mail_robot сказал:

китайские 1307 виснут только так

нормальные, купленные не по 15 рублей за штуку, не висли еще ни разу

Неисправность по часам появлялась и ранее во время разработки устройства, а это было почти 8 месяцев. И микросхемы часов стояли минимум три разных.

 

6 часов назад, GOR23 сказал:

Почитай, может поможет. Но это только если баг с эрраты проявляется. Но если шину держат действительно часы, то как бы выход один - нафиг часы. А глюк в процессе работы вылазит или сразу после включения?

Читал там есть пример как перезапустить шину регистрами но у меня так и не получилось это сделать на f103. Возможно из нас кто то делал подобное?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559

@MihaNN52 , кто же тогда у Вас виноват ? Часы, по Вашим словам, нормальные. Код, по всей видимости, тоже, раз Вы о нём ни слова ...
Полтергейст ?
Ну, или как уже выше сказали - Путин. Надо было ему на конференции в прямом эфире позвонить и спросить :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GOR23    41

@MihaNN52 Если шину держат зависшые часы, то какой смысл дергать контроллер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MihaNN52    2
5 минут назад, Alex сказал:

@MihaNN52 , кто же тогда у Вас виноват ? Часы, по Вашим словам, нормальные. Код, по всей видимости, тоже, раз Вы о нём ни слова ...
Полтергейст ?
Ну, или как уже выше сказали - Путин :D

Вы можете подключить любое i2c устройство с с вашим самым правильным кодом и во время работы отключить физически SCL  и получите HAL_BUSY и попробуйте после этого вернуть шину в работу. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MihaNN52    2
15 минут назад, GOR23 сказал:

@MihaNN52 Если шину держат зависшые часы, то какой смысл дергать контроллер?

Нет они не держат. Неисправность появляется если HAL ждет ответа, а его нет. Самое простое это отключить SCL во время работы и получите тоже самое - HAL_BUSY . Если отключать SDA то будет просто HAL_TIMEOUT. После повторного подключения работа продолжается. Но если выдало HAL_BUSY и шины линии висят в 1 т.е все как положено, МК считает что шина занята.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 431

ну и ничего контроллер в этой ситуации не сделает. С его стороны все ОК. Заставить часы отпустить шину он никак не сможет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MihaNN52    2
9 минут назад, mail_robot сказал:

ну и ничего контроллер в этой ситуации не сделает. С его стороны все ОК. Заставить часы отпустить шину он никак не сможет

шина отпущена

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 431

ну значит надо взять бубен и танцевать вокруг. В него вселился злой дух

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559

@mail_robot , сейчас и Вам посоветуют молотком по пальцам постучать, за такие посты. Ведь тут все дураки и не понимают @MihaNN52 'a ... :)

У него то виснет шина, то не виснет, то HAL виновен, то не виновен, ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MihaNN52    2
11 минуту назад, Alex сказал:

@mail_robot , сейчас и Вам посоветуют молотком по пальцам постучать, за такие посты. Ведь тут все дураки и не понимают @MihaNN52 'a ... :)

У него то виснет шина, то не виснет, то HAL виновен, то не виновен, ...

Я поражен вашей манерой общения и искрометным юмором. К сожалению, к теме это отношения не имеет, но если вы будите настаивать то я начну обсуждать вас, а не шину. Не далее как пару часов назад, я дал понять что с вами конкретно обсуждать мне нечего, но вы зачем то это удалили.

Изменено пользователем MihaNN52

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559

Поражайтесь дальше. Мой пост не вам был адресован.

По существу - 2 страницы мычания и ни одного внятного объяснения проблемы. Все сидят и гадают, что же у Мишеньки происходит...
Зато красноречиво умеем дерзить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Сообщения

    • я вот за кодинг стм еще ни разу не платил. Откуда у человека такие проблемы? В детстве что-ли уронили?... ему уже целую страницу опытные люди говорят - чувак, грусти нет, открой глаза. А он с бараньим упорством продолжает утверждать обратное, по сути даже и не начиная что-то писать. Беседа теряет смысл
    • Выложили бы в удобном формате типа картинка
    • так примените лучшую схему управы,  где напряжение не гуляет а стоит стабильно даже на ХХ.http://ruslanlipin.narod.ru/puskovoe_fixaty.html
    • выше уже писал об этой проблеме и протестировано. да оно работает, но не стабильно особенно на малых токах. и обороты добавляются не достаточно. а на малых токах  движок дергается. не очень сильно но стабильно дугу держать не может. если бы на выходе инвертора была бы чистая постоянка то никаких проблем.  а там импульсы, движок индуктивность  они друг с другом не дружат. тем более заполнение импульса постоянно гуляет 
    • @Ulis nsl32 вроде тоже с резистивным выходом и вроде ещё есть в продаже у официальных продавцов. Его можно было бы использовать ?
    • Скажите пожалуйста, как грамотнее крепить большой (от 10 ") круглый динамик к лицевой панели? в смысле просто привинчивать его в штатные отверстия саморезами или винтами? Если магнит тяжелый, тонкая стальная штампованная кольцевая рамка согнется. Или нужны какие-то хитрые сегментные/секторные шайбы (я прикинул, круглые большие шайбы залезают и давят на подвес диффузора, а мелкие не имеют смысла).   Прокладки резиновые под посадку нужны? Из чего вырезают эти кольца? Я было прицелился вырезать из автомобильной камеры, а фига - камеру сегодня днем с огнем не найдешь.  Что разумнее сделать практически? 
    • Да . Конечно есть косяки ... .  Главный из них -- С5 огромной ёмкости . Когда вы занижаете выходное напряжение подключением мощной нагрузки ... на некий промежуток времени  вход микросхемы напрямую через мощный конденсатор оказывается под отрицательным напряжением и всей мощью ёмкости С5 ... , а к работе в таком режиме ну совершенно "не предназначен" ... и пробивает как правило внутренний транзистор в режиме прямого диода из-за того что конденсатор фактически разряжается через два диода микросхемы напрямую на общий провод ... .  А всё потому что ни микросхема ни транзистор совершенно не являются мгновенными приборами ... . И ещё и отчасти также недостаточной ёмкостью выходного конденсатора ... .  Да , сам С5 нужен для быстрой отработки выходного напряжения , но ёмкости его в 1000 пф более чем достаточно ... ! И то желательно с последовательным сопротивлением ом на 100 где-то ... .  С входным напряжением микросхемы тоже некие проблемы на грани фолла ... . Думаю не нужно сильно объяснять чем это грозит при разных нестационарных процессах ... . Вылечить угрозы ... тут лучше всего нагрузив микросхему на эмиттер n-p-n повторителя тока , база которого имеет потенциал чуть выше  рабочего напряжения микросхемы . Если выбрать рабочее напряжение порядка 2.5 Вольт (обычный минимум для микросхемы) , то где-то на базе биполярного транзистора достаточно порядка 3.5 вольт , скажем организованного на такой же 431 с конденсатором и резисторе гораздо скромнее по уровню тока ... . При этом рабочее напряжение схемы управления выходным транзистором будет уже определяться допустимым напряжением коллектора биполярного транзистора в режиме с ОбщейБазой ... . Но и это ещё не всё . Третья проблема в том что если вы хоть на момент (под)"коротнёте" выход  ... напряжение на затворе выходного транзистора окажется равным входному и более 30 Вольт ... , на который более 20 Вольт уже подавать не требуется и не рекомендуется ... .  А четвёртый подвох ещё в том  что при всём этом  в номинальном режиме на затвор нужно хотя бы +10 вольт относительно выхода , а это уже больше чем мы можем получить ввиду того что входное напряжение ниже требуемого ... . На схему управления для решения всего этого принято монтировать отдельный параллельный выпрямитель малой мощности  для получения хоть пары вольт дополнительно для раскачки ... . Но если капельку коротнуть выход ... у нас уже 40 вольт на затворе получиться ... со всеми шансами получить неописуемые впечатления от увиденного ... .  Вот примерно такой наборчик "косячков" ... .