Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » STM32 » Вопросы » stm32f030 boot loader, rtc и прочее...


stm32f030 boot loader, rtc и прочее...

Сообщений 31 страница 42 из 42

31

я уже второй день путаю полярность, питаюсь от программатора, но все нормально ничего не сгорело) видимо защита на юсб в ноуте.

32

RA написал(а):

сжег пин. аминь.

я один раз на ножку F103 подал в районе 7-10Вольт. вовремя заметил. МК подавал признаки жизни и даже работал, пока не дошло до какого-то функционала... не помню , то ли АЦП , то ли таймер, то ли RTC и дальше ни в какую... долго искал баги в коде, но так и не смог их найти. после чего понял ,что все же МК наполовину труп. поменял - все заработало сразу.

Отредактировано Atomic-dm (2019-01-22 21:39:25)

33

:rolleyes:  я подключил на таймер3 енкодер, общим к плюсу  :D  и настроил на выход один из каналов и покрутил енкодер. когда понял что не тот таймер юзаю было поздно. тот канал что был входом жив, а тот что выходом прижало к земле. намертво.
разбираю и2с сейчас. блин он вообще может по-байту отправлять? без формирования адреса подчиненного, как на пике? за основу взял код eddyem https://github.com/eddyem/stm32samples/ … 21d_nucleo

34

RA написал(а):

разбираю и2с сейчас. блин он вообще может по-байту отправлять? без формирования адреса подчиненного, как на пике?

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

35

Как вы жгете все,осторожно надо быть. Редко очень когда коротил или сжигал контроллер. Просто если делать себе косяки по сжиганию ножки,то баги вместе с ножкой это геморрой еще тот для себя :)
По и2с там есть если не ошибаюсь общий вызов всех,но это тоже первый байт адрес идет. Не знать и2с стыдно :)

36

CERGEI написал(а):

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

:D ... Если идет первый байт адрес идет, то как вызывать всех? Каждый имеет свой адрес. Или мастер назначает адреса, но если есть одинаковые адреса то это будет коллизия на шине. Не?
Я и2с использовал только для тика, пик юзал. Было как то еще и микруху памяти использовал, но надо было быстро, слепил софтовый и2с по даташиту на микруху. прописал все что нужно отдал и забыл, на ней адрес задавался пинами микрухи, и был пин защиты от изменения настроек и программный флаг для снятия защиты, т.е. переводим пин защиты в нуль(точно не помню может и наоборот) и снимаем флаг защиты уже через и2с и вуаля она твоя.

Отредактировано RA (2019-01-23 14:55:38)

37

RA написал(а):

...то как вызывать всех?

Никак.

RA написал(а):

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

Каждый должен иметь свой уникальный адрес. Иначе будет коллизия.
Адреса назначают сами слейвы. И эти адреса мастер должен знать. Иначе только сканировать шину на предмет присутствия адреса. Там не долго. Всего 127 адресов перебрать :)

На многих железках производители предусматривают пару пинов, которыми можно изменить младшине несколько бит адреса. Но старшие всегда фиксовые. Есть шибко умные железки, которым адреса перепрошить можно, при определенных условиях.

Из-за таких вот особенностей есть отдельный класс устройств, которые такие коллизии разруливают, кто микшированием, кто переключением. Разные есть.

Добавлю.
По стандарту, после события "старт", на шине, все слушают адрес получателя дальнейших команд. Если адрес не твой (ну если ты в качестве слейва), то все, что ты имеешь права делать на шине - ждать события "стоп".

Отредактировано MasterAlexei (2019-01-23 14:57:07)

38

вот и смотрю инициализацию тика, там задержки есть. т.е. инициализацию делить надо, тупо передать указатель на строку с кодами не получится. делить надо.

39

RA написал(а):

... Если идет первый байт адрес идет, то как вызывать всех? Каждый имеет свой адрес. Или мастер назначает адреса, но если есть одинаковые адреса то это будет коллизия на шине. Не?


Процедура адресации на шине I²C заключается в том, что первый байт после сигнала СТАРТ определяет, какой ведомый адресуется ведущим для проведения цикла обмена. Исключение составляет адрес «Общего вызова», который адресует все устройства на шине. Когда используется этот адрес, все устройства в теории должны послать сигнал подтверждения. Однако устройства, которые могут обрабатывать «общий вызов», на практике встречаются редко.

https://ru.wikipedia.org/wiki/I%C2%B2C# … 5_I%C2%B2C

40

CERGEI написал(а):

Процедура адресации на шине I²C заключается в том, что первый байт после сигнала СТАРТ определяет, какой ведомый адресуется ведущим для проведения цикла обмена. Исключение составляет адрес «Общего вызова», который адресует все устройства на шине. Когда используется этот адрес, все устройства в теории должны послать сигнал подтверждения. Однако устройства, которые могут обрабатывать «общий вызов», на практике встречаются редко.

https://ru.wikipedia.org/wiki/I%C2%B2C# … 5_I%C2%B2C

Сергей нахвататься верхов, уж извините, с...дить чужое - выдать за свое, и на основе всего этого втирать за что должно быть стыдно? стыдно  не не знать, стыдно не стремиться узнать. стыдно с..дить и выдать за свое, пусть даже мысли, своих доводов нет, что бы найти ? о википидия.! назовите хоть один пример кода когда вам приходилось вызывать всех на шине? да впрочем я и так знаю ответ - тишина. если химера или дусикус приведет пример я не удивлюсь, но ВЫ? о чем вы? Вы даже не вникли в суть вопроса, как всегда бегло по-вершкам прочитали и стреляете в пятку, а попадаете в нос.
суть того что я спрашивал - модуль и2с пика просто слал по шине и2с, то что шлет программист, а и2с стм32 это уже более сложная, но не менее интересная вещь, он более привязан к интерфейсу, и может ли он так же слать в шину что попросят, но вы даже этого понять не можете, может и можете, но не стремитесь.  :D

Отредактировано RA (2019-01-23 21:46:51)

41

Вам видней :)

42

RTC - есть ли сброс?
Понятно, что если Vbat нету, отключаем питание и все чисто - reset value. Но есть ли программный сброс? В 100 серии есть. а в этой не могу найти. В мануале есть пункт 21.4.9 который гласит " Сброс RTC
Теневые регистры календаря (RTC_SSR, RTC_TR и RTC_DR) и некоторые биты
Регистр состояния RTC (RTC_ISR) сбрасывается до значений по умолчанию при всех доступных сбросах системы
источники.
Наоборот, следующие регистры сбрасываются до значений по умолчанию доменом RTC
сбрасывается и не зависит от сброса системы: RTC регистрирует текущий календарь, RTC
регистр управления (RTC_CR), регистр предскалера (RTC_PRER), регистр калибровки RTC
(RTC_CALR), регистр сдвига RTC (RTC_SHIFTR), регистры меток времени RTC
(RTC_TSSSR, RTC_TSTR и RTC_TSDR), тампер и альтернативная функция RTC
регистр конфигурации (RTC_TAFCR), регистр таймера включения (RTC_WUTR), аварийный сигнал A
регистры (RTC_ALRMASSR / RTC_ALRMAR).
Кроме того, когда он синхронизируется LSE, RTC продолжает работать при перезагрузке системы, если
источник сброса отличается от источника сброса домена RTC (см. раздел часов RTC
контроллера сброса и синхронизации для получения подробной информации о списке источников тактовых сигналов RTC, не затронутых
сброс системы). Когда происходит сброс домена RTC, RTC останавливается и все RTC
регистры установлены на их значения сброса." не ...-РА не понятно. т.е. нету?
прихожу к выводу что все ручками. входим в режим инициализации и затираем то что нужно. общего бита сброса нет.

Отредактировано RA (2019-01-30 23:05:06)


Вы здесь » Микроконтроллеры » STM32 » Вопросы » stm32f030 boot loader, rtc и прочее...