Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
kyv
1

I2C начинает работать только после перепрошивки

18.01.2015, 04:05. Показов 5345. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имею MSP430F5529 Launchpad. Хочу считывать данные с датчиков по I2C и столкнулся с проблемой - I2C работает нормально только после перепрошивки. То есть, загружаю я прошивку с помощью программатора-отладчика Ez-FET, установленного на плате, - всё работает нормально. Можно жать кнопочку RESIT, можно запускать отладку - всё будет работать нормально. Но если ввести МК в режим BSL (зажать кнопки BSL и RESIT, затем отпустить сначала RESIT и только потом BSL), а потом перезагрузить или отключить питание платы, а потом подключить снова, то I2C не работает. И не будет работать, сколько не перезагружай плату. Но стоит залить ТУ ЖЕ САМУЮ прошивку и всё начинает работать. При этом таймеры, UART и GPIO работают как надо всегда (другие модули не использую пока что). Если не заливать заново прошивку, а подключиться для отладки это проблему не решает. Надо именно перезалить прошивку. То есть какая-то инициализация осуществляется программатором при заливке прошивки, а я в своей программе её не делаю. Для того чтобы внешние датчики всегда были в одинаковом состоянии запитал их от GPIO микроконтроллера, благо они жрут единицы миллиампер. Так что на них никак не влияет перепрошивка - они начинают работать с нуля каждый сброс МК (МК при старте сначала выдаёт 0 на питание датчиков, ждёт кучу времени, чтобы точно разрядились все конденсаторы и лишь потом запитывает датчики).

Если плату отключить от питания и быстро подключить снова, то она может и заработать. Также она работает, если отключали только питание, а внешний переходник на UART остался подключен и мог питать МК с помощью паразитного питания через подтяжки линий (но при этом МК не исполнял программу, для этого питания не хватало, но, возможно, мог сохранить состояние ОЗУ или какой-то периферии), а затем подали питание вновь.

Вот код моей библиотеки для работы с I2C: http://pastebin.com/M1WtDKQb. Я не нашёл отличий в инициализации от примеров TI.

«Не работает» - значит любые попытки чтения по I2C возвращают не то, что нужно. Обычно это нули. Но после режима BSL это значение 0xC7.

В чём может быть дело? Какое состояние МК может инициализировать программатор при прошивки и оно сохраняется при перезагрузках, но не сохраняется при пропадании питания.

Смотрел с помощью mspdebug содержимое памяти по тем адресам, где находятся регистры, которые отвечают за I2C - различия между ситуациями, когда работает и когда нет, нету, всё настроено идентично. Больше не знаю, что посмотреть.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2015, 04:05
Ответы с готовыми решениями:

Видеокарта начинает работать только после перезагрузки
Система: БП - FSP ATX-400PNR мать - Gigabyte GA-41MT-D3 rev.1.3 проц - Intel Pentium Dual Core...

ContextMenuStrip начинает работать только после второго раза
Сделал меню правой кнопки мыши для Datagridview. Но не могу понять, запустил приложение, кликаю 1...

Ubuntu начинает нормально работать только после ухода в сон
В общем-то, я поставил Ubuntu 18.04 рядом с windows 10. По какой-то причине когда я запускаю...

Wifi начинает работать только после перехода в спящий режим на ноутбуке
Ноутбук toshiba satelite l850d windows7x64 . При включении ноутбука или перезагрузки не работает...

0
18.01.2015, 04:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2015, 04:05
Помогаю со студенческими работами здесь

Ноутбук HP Pavilion DV6, клавиатура начинает работать только после отключения тачпада
Добрый день. Ноутбук HP Pavilion DV6, при включении нажимаю к примеру esc - меню или f10 - биос,...

Примерно через минуту, двигается только курсор. После нескольких перезагрузок начинает работать нормально
После чистой установки, примерно через минуту работы, только курсор мыши двигается. Со...

После перепрошивки ipad air ios 12.5.5 перестал работать apple id
Мне потребовалось восстановить айпад, изначально я его восстановаил с помощью checkra1n и программы...

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

Видеокарта начинает работать только в новом разъеме
Здравствуйте. Давным давно отсоединял видео карту что бы почистить, вставил обратно, запустил...

Привод windows 7 64 начинает работать только при перезагрузке с диском
Здравствуйте, заметил такую ситуацию, решил воспользоваться приводом за долгое время) И увидел, что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru