|
|
 |
Ответов
|
Dec 17 2016, 16:47
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(Сергей Борщ @ Dec 16 2016, 08:48)  Присоединяюсь к вопросу. Я сразу начал и с прерываниями и с ПДП и под ОС. Все работет. Что я сделал неправильно? Вы, в итоге, наверняка сделали все правильно. Речь о том, что именно у F1xx I2C очень кривой. Об этом было много тем здесь, еще до появления других Fxxx, просто многие подзабыли. Достаточно напомнить, что при работе с I2C по прерываниям необходимо заботится о том, чтобы это прерывание не было прервано (самый высокий приоритет для I2C, либо вообще запреты прерываний на определенных этапах обработки I2C). Более того, на малых скоростях тактирования ядра (например, с целью энергосбережения) наблюдались комбинации флагов прерывания, которые никак не упоминались в документации, и для которых не было даже определений в STL. Это вводило в ступор обработчик. Поскольку большинство заводит камни сразу на максимуме, на такой косяк натыкались не многие, похоже. Мне понадобилась пара недель, с последующими доработками при работе с различной I2C периферией, чтобы запустить F103 стабильно. Когда появились F0xx, где I2C переработан, мне хватило и пары часов, чтобы запустить I2C так, что работает до сих пор.
Сообщение отредактировал KnightIgor - Dec 17 2016, 16:50
|
|
|
|
|
Dec 20 2016, 06:52
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 10-09-16
Пользователь №: 93 282

|
Цитата(KnightIgor @ Dec 17 2016, 16:47)  Вы, в итоге, наверняка сделали все правильно. Речь о том, что именно у F1xx I2C очень кривой. Об этом было много тем здесь, еще до появления других Fxxx, просто многие подзабыли. Достаточно напомнить, что при работе с I2C по прерываниям необходимо заботится о том, чтобы это прерывание не было прервано (самый высокий приоритет для I2C, либо вообще запреты прерываний на определенных этапах обработки I2C). Более того, на малых скоростях тактирования ядра (например, с целью энергосбережения) наблюдались комбинации флагов прерывания, которые никак не упоминались в документации, и для которых не было даже определений в STL. Это вводило в ступор обработчик. Поскольку большинство заводит камни сразу на максимуме, на такой косяк натыкались не многие, похоже. Мне понадобилась пара недель, с последующими доработками при работе с различной I2C периферией, чтобы запустить F103 стабильно. Когда появились F0xx, где I2C переработан, мне хватило и пары часов, чтобы запустить I2C так, что работает до сих пор. А можно кусок кода или пример по обработке (что б не пройти по тем же граблям). ОГРОМНОЕ СПАСИБО
|
|
|
|
Сообщений в этой теме
dimon_rub Вопрос по I2C Dec 15 2016, 12:21 haker_fox QUOTE (dimon_rub @ Dec 15 2016, 20:21) Зд... Dec 15 2016, 13:01 Obam По бубну Dec 15 2016, 13:11 pitt Цитата(dimon_rub @ Dec 15 2016, 07:21) Зд... Dec 15 2016, 13:25 dimon_rub Спасибо. Хотелось услышать людей непосредственно р... Dec 15 2016, 14:04 KnightIgor Цитата(dimon_rub @ Dec 15 2016, 16:04) Сп... Dec 15 2016, 20:11  dimon_rub Цитата(KnightIgor @ Dec 15 2016, 20:11) М... Dec 16 2016, 07:36   Pridnya Цитата(KnightIgor @ Dec 15 2016, 23:11) М... Dec 16 2016, 09:35    Сергей Борщ QUOTE (Pridnya @ Dec 16 2016, 11:35) А во... Dec 16 2016, 11:15     Kabdim Цитата(Сергей Борщ @ Dec 16 2016, 14:15) ... Dec 16 2016, 12:05      Сергей Борщ QUOTE (Kabdim @ Dec 16 2016, 14:05) Если ... Dec 16 2016, 12:11    zltigo Цитата(Pridnya @ Dec 16 2016, 11:35) Но в... Dec 16 2016, 11:18     Pridnya Цитата(Сергей Борщ @ Dec 16 2016, 14:15) ... Dec 16 2016, 12:05    jcxz Цитата(Pridnya @ Dec 16 2016, 12:35) Но в... Dec 17 2016, 11:42     zltigo Цитата(jcxz @ Dec 17 2016, 13:42) Бывают ... Dec 17 2016, 11:49   alexf Бывают ситуации когда CPU нечего делать пока идет ... Dec 17 2016, 20:48    zltigo Цитата(alexf @ Dec 17 2016, 22:48) Бывают... Dec 18 2016, 08:09    KnightIgor Цитата(dimon_rub @ Dec 20 2016, 08:52) А ... Dec 20 2016, 20:52     dimon_rub Цитата(KnightIgor @ Dec 20 2016, 20:52) Я... Dec 21 2016, 08:26 Aleksandr Baranov Я бы еще вспомнил процедуру "I2C bus recovery... Dec 20 2016, 22:22 alexf Если я раз в секунду читаю пару датчиков за 1 мсек... Dec 21 2016, 00:37 KnightIgor Цитата(Aleksandr Baranov @ Dec 21 2016, 00... Dec 22 2016, 12:14  jcxz Просто "безудержное дёргание" и не должн... Dec 22 2016, 12:53   KnightIgor Цитата(jcxz @ Dec 22 2016, 14:53) Просто ... Dec 22 2016, 12:59    jcxz Цитата(KnightIgor @ Dec 22 2016, 15:59) Э... Dec 22 2016, 13:05  zltigo Цитата(KnightIgor @ Dec 22 2016, 14:14) О... Dec 22 2016, 14:51 Aleksandr Baranov В "AN10216-01 I2C Manual" не сказано: ... Dec 22 2016, 15:37 KnightIgor Цитата(Aleksandr Baranov @ Dec 22 2016, 17... Dec 22 2016, 16:32  zltigo Цитата(KnightIgor @ Dec 22 2016, 18:32) Е... Dec 22 2016, 17:22   jcxz Цитата(zltigo @ Dec 22 2016, 20:22) Такое... Dec 22 2016, 22:44    zltigo Цитата(jcxz @ Dec 23 2016, 00:44) Да, дол... Dec 23 2016, 06:35     jcxz Цитата(zltigo @ Dec 23 2016, 09:35) Я пис... Dec 23 2016, 16:20      zltigo Цитата(jcxz @ Dec 23 2016, 18:20) Это у В... Dec 24 2016, 07:09 AVR Мои 5: когда я работал с I2C на AVR то на коротком... Dec 23 2016, 07:07
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|