|
|
 |
Ответов
|
Dec 15 2016, 14:04
|
Участник

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

|
Спасибо. Хотелось услышать людей непосредственно работающих этой штукой. Я то же попробую для начала прерывания (они как то ближе) у а потом ......
|
|
|
|
|
Dec 16 2016, 07:36
|
Участник

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

|
Цитата(KnightIgor @ Dec 15 2016, 20:11)  Мда, сочуствую: начинать с I2C F103 по прерываниям. Это полная катастрофа... А в чем интересно проблема. Поделитесь ПОЖАЛУЙСТА.
|
|
|
|
|
Dec 16 2016, 09:35
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(KnightIgor @ Dec 15 2016, 23:11)  Мда, сочуствую: начинать с I2C F103 по прерываниям. Это полная катастрофа... Цитата(Сергей Борщ @ Dec 16 2016, 09:48)  Присоединяюсь к вопросу. Я сразу начал и с прерываниями и с ПДП и под ОС. Все работет. Что я сделал неправильно? Цитата(dimon_rub @ Dec 16 2016, 10:36)  А в чем интересно проблема. Поделитесь ПОЖАЛУЙСТА. Я вообще шину I2С использовал только на MCU PIC16 от Microchip, да и то программный вариант: выделяешь два вывода и работаешь. Медленная она, но полезная, когда нечасто нужно опрашивать несколько микросхем на шине I2C или в пределах печатной платы связать все узлы, поддерживающие I2C. А вообще использую интерфейсы UART и SPI, они быстрые (несколько мегабит или несколько десятков мегабит в секунду), по ним можно передавать большие блоки данных, и здесь удобно пользоваться прерываниями на низких скоростях и DMA на больших. Но вот совсем не пойму, а какой смысл использовать на медленной шине I2C прием и передачу по прерываниям, и еще DMA для I2C использовать? Поясните в двух словах, если не сложно!
|
|
|
|
|
Dec 16 2016, 11:15
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Pridnya @ Dec 16 2016, 11:35)  А вообще использую интерфейсы UART и SPI А еще бывают внешние микросхемы, у которых I2C прибит гвоздями. К тому же и UART и SPI - интерфейс "точка-точка" и для опроса нескольких внешних микросхем придется городить огород. У меня на двух проводах I2C висят три заказных индикатора и 124 линии ввода-вывода (кнопки, светодиоды) через расширители, все это разбросано по плате размером с полтора листа A4. QUOTE (Pridnya @ Dec 16 2016, 11:35)  Но вот совсем не пойму, а какой смысл использовать на медленной шине I2C прием и передачу по прерываниям, и еще DMA для I2C использовать? Про принцип "пустил-забыл" слышали? Передача: дождался освобождения шины, запустил обмен, пошел делать другие дела. Прием: дождался освобождения шины, запустил обмен, жду сигнала от ОС о готовности данных (в это время процессор делает другие полезные дела вместо тупого опроса флагов I2C или тупого шевеления ногами "медленной шины I2C").
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
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     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 arhiv6 KnightIgor, а почему катастрофа? Dec 16 2016, 06:07 Сергей Борщ QUOTE (arhiv6 @ Dec 16 2016, 08:07) Knigh... Dec 16 2016, 06:48  KnightIgor Цитата(Сергей Борщ @ Dec 16 2016, 08:48) ... Dec 17 2016, 16:47   alexf Бывают ситуации когда CPU нечего делать пока идет ... Dec 17 2016, 20:48    zltigo Цитата(alexf @ Dec 17 2016, 22:48) Бывают... Dec 18 2016, 08:09   dimon_rub Цитата(KnightIgor @ Dec 17 2016, 16:47) В... Dec 20 2016, 06:52    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
|
|
|