|
Глюки с I2C |
|
|
|
Apr 29 2018, 14:12
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Глюк 1:
Мне тут нужно было в одном относительно старом проекте, который делался на 4-м Кейле, поменять некоторые дефолтные настройки. К I2C оно не относится, но глюк я поймал именно с I2C! Сейчас на компе только 5-й, 4-го нет. Проц - тот-же F103, к нему по I2C подключена 24LC16.
Запускаю под дебаггером (JLink-Lite подключен, причем настоящий) - ничего не работает, бне входя в деббагер (но с подключенный JLinkом) - все прекрасно работает.
Отставил старую программу, набросал в калокубе с халом только работу с I2C и епромкой - абсолютно тоже самое! Под дебаггаром все функции I2C выходят по таймауту, с еепромки читабтся нули и в нее ничего не пишется. Без входа в дебаггер - все ОК.
WTF?!
Глюк 2: это коллега тут возится с девайсом на STM32L452 и жалуется. Просил спросить: Для тактирования используется MSI + PLL. I2C настроен на 400кгц, тактируется от системного клока.
На одной плате, запускаешь под дебаггером - есть 400кгц. Включаешь ее без дебаггера - там около 40кгц. Из 5-ти плат, так ведет себя одна, 4 другие в - вообще кто в лес, кто по дрова. ТЕперь самое интересное - для проверки "на какой- частоте проц работате," вывели махание ножкой в систике - так там четко, 1мс.
Есть идеи?
|
|
|
|
|
 |
Ответов
|
Apr 29 2018, 17:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(HardEgor @ Apr 29 2018, 16:19)  Каких идей вы хотите? Например - почему работа одной и той-же прошивки, отличается под дебаггером и не под дебаггером Кейла? Цитата Если вы не можете пошагово пройти настройку тактовой частоты, то научить вас пользоваться дебаггером? А что, от этого текст программы поменяется?
|
|
|
|
|
Apr 29 2018, 18:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(aaarrr @ Apr 29 2018, 18:36)  Например, по причине отсутствия барьеров в нужных местах. Это для 1-го глюка или второго? Если второго, то в тестовой программе ничего нет кроме систика, в котором мащется ножкой. А в основной - просто чтение блока из I2C устройства. Чтение едет правильно, только частота клока I2C на порядок ниже. Как такое может быть - он же аппратно формируется. Не мжет же делитель зависеть от того, что проц под дебаггером запустили? А с первым глком еще не понятнее - устройство не первой свежести, выпущено приличное количество, и никогда небыло никких проблем. А под дебаггером - связь с еепромкой не работает. Ну это ладно, я еще посмотрю, интереснее второй глюк - коллега там уже в ступроре полном. Ну не ногодрыгом-же I2C делать! Хотя, в том режиме у него больше ничего не делается - проц периодически считывает блок по i2c, небольшая обраткока и отсылает в аурт. Так что, можно и ногодрыгом (на него я надеюсь, дебаггер никаки не повлияет!), в крайнем случае. Но непонятна причина.
|
|
|
|
|
Apr 29 2018, 19:21
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Allregia @ Apr 29 2018, 21:17)  Это для 1-го глюка или второго? Да для обоих подойдет. Цитата(Allregia @ Apr 29 2018, 21:17)  Не мжет же делитель зависеть от того, что проц под дебаггером запустили? Может, если его запись осуществляется некорректно. Цитата(Allregia @ Apr 29 2018, 21:17)  Ну не ногодрыгом-же I2C делать! Только так и делаю. У меня нет ни времени ни желания искать обходы для 100500 аппаратных глюков модулей I2C на дюжине используемых платформ. Софтовый же абсолютно надежен и предсказуем, там не приходится ждать приколов типа "мы не поддерживаем clock stretching и repeated start". Все вышесказанное, разумеется, относится к режиму master. Единственный приличный аппаратный контроллер I2C, который я встречал, использовался в мелких AVR типа ATmega48 и процессорах LPC13xx (автор один). Вот там можно было смело полагаться на железо.
|
|
|
|
|
Apr 30 2018, 05:22
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(aaarrr @ Apr 29 2018, 22:21)  Только так и делаю. У меня нет ни времени ни желания искать обходы для 100500 аппаратных глюков модулей I2C на дюжине используемых платформ. А другие интерфейсы (UART, SPI, ...) на этой дюжине тоже ногодрыгом реализуете? В чём разница между I2C и каким-то другим последовательным интерфейсом? Цитата(aaarrr @ Apr 29 2018, 22:21)  Софтовый же абсолютно надежен и предсказуем, мрак.... ногодрыг в наше время на современных МК на вдоль и поперёк изъезженном I2C???... полный мрак... Писал драйвера I2C на LPC23xx, LPC17xx, OMAP-L137, STM32F4, XMC4500, MSP430 - везде использовал встроенный I2C-контроллер, кое-где - с DMA, кое-где - на шине висела гроздь устройств. Коллеги писали на Tiva TM4C129 - тоже аппаратно. Ни разу не возникло необходимости или желания заниматься ногодрыгом.
|
|
|
|
|
Apr 30 2018, 10:47
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(jcxz @ Apr 30 2018, 08:22)  А другие интерфейсы (UART, SPI, ...) на этой дюжине тоже ногодрыгом реализуете?  Нет. Цитата(jcxz @ Apr 30 2018, 08:22)  В чём разница между I2C и каким-то другим последовательным интерфейсом? Правильный вопрос. Разница в том, что I2C в большинстве случаев используется для однократной записи незначительного количества информации. Цитата(jcxz @ Apr 30 2018, 08:22)  мрак.... ногодрыг в наше время на современных МК на вдоль и поперёк изъезженном I2C???... полный мрак...  Эмоции, вижу, просто зашкаливают
|
|
|
|
Сообщений в этой теме
Allregia Глюки с I2C Apr 29 2018, 14:12     serglg Цитата(aaarrr @ Apr 30 2018, 01:21) Да дл... Apr 30 2018, 04:23  HardEgor Цитата(Allregia @ Apr 30 2018, 00:24) А ч... Apr 30 2018, 10:33   Allregia Цитата(HardEgor @ Apr 30 2018, 11:33) Так... Apr 30 2018, 11:01    HardEgor Цитата(Allregia @ Apr 30 2018, 18:01) Кол... Apr 30 2018, 11:33 ViKo Сделал работу i2c для некоего мелкого STM32 (конкр... Apr 30 2018, 04:33 Arlleex Да ни при чем тут барьеры... Не надо никаких прогр... Apr 30 2018, 07:40 Allregia Цитата(Arlleex @ Apr 30 2018, 08:40) Каса... Apr 30 2018, 07:44  jcxz Цитата(Allregia @ Apr 30 2018, 10:44) К т... Apr 30 2018, 08:04 KnightIgor Цитата(Allregia @ Apr 29 2018, 15:12) Мне... Apr 30 2018, 15:08 serglg Цитата(KnightIgor @ Apr 30 2018, 21:08) С... May 1 2018, 04:52  Allregia Цитата(serglg @ May 1 2018, 05:52) Когда ... May 1 2018, 10:22   k155la3 Цитата(Allregia @ May 1 2018, 13:22) . . ... May 1 2018, 10:52   HardEgor Цитата(Allregia @ May 1 2018, 17:22) Т.е.... May 1 2018, 16:18 ViKo Допустимый диапазон частот на входе PLL описан в д... May 1 2018, 10:37 Allregia Цитата(ViKo @ May 1 2018, 11:37) Допустим... May 1 2018, 11:05  jcxz Цитата(Allregia @ May 1 2018, 14:05) И за... May 1 2018, 11:15   Allregia Цитата(jcxz @ May 1 2018, 12:15) "Об... May 1 2018, 11:26    k155la3 Цитата(Allregia @ May 1 2018, 14:26) . . ... May 1 2018, 11:29     Allregia Цитата(k155la3 @ May 1 2018, 12:29) Захва... May 1 2018, 11:33    jcxz Цитата(Allregia @ May 1 2018, 14:26) ... May 1 2018, 12:22     Allregia Цитата(jcxz @ May 1 2018, 13:22) Если Вам... May 1 2018, 12:52      jcxz Цитата(Allregia @ May 1 2018, 15:52) Вас ... May 1 2018, 17:10       Allregia Цитата(jcxz @ May 1 2018, 18:10) ЦитатаВа... May 1 2018, 17:17  k155la3 Цитата(Allregia @ May 1 2018, 14:05) . . ... May 1 2018, 11:20 Arlleex Во многих микроконтроллерах указывается именно пер... May 1 2018, 13:36 aaarrr Цитата(Arlleex @ May 1 2018, 16:36) GPIO_... May 1 2018, 14:00  Arlleex Цитата(aaarrr @ May 1 2018, 17:00) Зачем?... May 1 2018, 14:16   AVI-crak Кхм...
хотел скорости, а получил звон на линии...... May 1 2018, 14:37 Allregia Цитатаотсюда общая частота, замеряемая осциллограф... May 1 2018, 14:49
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|