Перейти к содержанию
    

совместная работа i2c и spi для pic18

могут быть какие-нибудь грабли для i2c ? PIC - мастер, остальные ведомые.

Выводы совмещенные, на SPI висит MMC карточка, на i2c часы и индикатор.

то что spi мешать не будут понятно, у него есть вывод выбора, а вот при интенсивном обмене по spi, I2C ведомые не будут глючить (для них нет вывода разрешения)?

Или стоит поставить ключи и на время обмена по spi, отключать ведомые устройства? Кто-нибудь делал такое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если у выбранного Вами пика один модуль MSSP, то лучше взять готовую библиотечку софтворного I2C, поставляемого Microchip'ом, и осуществить обмен по двум другим свободным ногам, а SPI использовать аппаратный. Скорость обмена правда, будет меньше, чем у аппаратного, но для часов скорость и не нужна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

лучше взять готовую библиотечку софтворного I2C, поставляемого Microchip'ом

 

Софтовый не вопрос, там чего писать то (в свое время для ПЛИС писал, там сложнее было), хочется использовать именно аппаратный, потому как не исключены другие довески.

К тому же для индикаторва скорость все таки желательна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну тогда брать PIC с двумя модулями MSSP.

 

Кстати, чуть не забыл. В SPI режиме не требуется подтягивающих резисторов, например, на DOUT и SCLK. Пик аппаратно переключает их между +5 и GND. А вот в режиме I2C подключение к шине выполняется по схеме монтажное И, и чтобы реализовать её требуются подтягивающие резисторы на питание, и ножка, во избежание электрических конфликтов, переключается между высокоимпедансым состоянием (+5 через резистор) и GND. Поэтому городить огород на схеме электрической принципиальной я бы не стал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну тогда брать PIC с двумя модулями MSSP.

 

Это решение я и сам знаю, не подходит

 

Кстати, чуть не забыл. В SPI режиме не требуется подтягивающих резисторов, например, на DOUT и SCLK. Пик аппаратно переключает их между +5 и GND. А вот в режиме I2C подключение к шине выполняется по схеме монтажное И, и чтобы реализовать её требуются подтягивающие резисторы на питание, и ножка, во избежание электрических конфликтов, переключается между высокоимпедансым состоянием (+5 через резистор) и GND. Поэтому городить огород на схеме электрической принципиальной я бы не стал.

 

Спасибо, это я знаю, и именно с аппаратной частью (если слейв без спроса не дернет шину) проблем нет.

Если отделить i2c слейвы от ПИКа двунаправленным ключем, с pull-up по обе стороны ключей, то это решит проблему несанкционированных действий со стороны слейва, которые в принципе возможны только при случайном появлении в потоке данных SPi адреса устройства I2C. С учетом гораздо большей скорости обмена по SPI это маловероятно, но возможно. В общем получается аналог вывода ChipSelect для SPI устройств.

 

Поэтому и спрашивалю, может кто реально делал и решил эту проблему проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость DL36
Это решение я и сам знаю, не подходит

Спасибо, это я знаю, и именно с аппаратной частью (если слейв без спроса не дернет шину) проблем нет.

Если отделить i2c слейвы от ПИКа двунаправленным ключем, с pull-up по обе стороны ключей, то это решит проблему несанкционированных действий со стороны слейва, которые в принципе возможны только при случайном появлении в потоке данных SPi адреса устройства I2C. С учетом гораздо большей скорости обмена по SPI это маловероятно, но возможно. В общем получается аналог вывода ChipSelect для SPI устройств.

 

Поэтому и спрашиваю, может кто реально делал и решил эту проблему проще.

Так идея возникла, для обсуждения:

 

Поставить два мосфета встречно с p каналом, на шине, и I2C отключать таким образом. В первом приближении должно быть работоспособно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думаю вы зря все так усложняете. У нас схемы где SPI и I2C на одном MSSP сидят уже несколько лет используются. Никаких проблем не возникает.

Вот здесь подобное обсуждалось microchip.ru, правда тоже к результату не пришли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У нас схемы где SPI и I2C на одном MSSP сидят уже несколько лет используются. Никаких проблем не возникает.

 

Спасибо большое, именно это (практический опыт) я и хотел услышать :)

 

Если не секрет, что именно висит одновременно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое, именно это (практический опыт) я и хотел услышать :)

 

Если не секрет, что именно висит одновременно?

 

Как то вешали часы и ммскарту. Точно сейчас не помню - но часы как то подключивали, когда с ММС картой работали. PCF8363.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...на i2c часы и индикатор.

....I2C ведомые не будут глючить (для них нет вывода разрешения)?

Или стоит поставить ключи и на время обмена по spi, отключать ведомые устройства?

i2c - просто интерфейс (http://www.gaw.ru/html.cgi/txt/interface/iic/start.htm) и даже при максимальной скорости обмена (400 кбит/с) он устовчив к помехам, т.к. слишком медленный.

Но если это вам кажется недостаточным можите просто выводы контроллера висящие на i2c перевести в логическую 1.

Но это откровенная перестраховка, если у вас в схеме помехи по времени имеют порядок микросекунда, то надо переделовать схему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое, именно это (практический опыт) я и хотел услышать :)

 

Если не секрет, что именно висит одновременно?

 

На вскидку.

SPI: память.

I2C: память, RTC и расширитель интерфейса (порты в/в)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...