
Въпроси за устройство за i2c мониторинг
Здравейте,
трябва да направя устройство за I2C мониторинг, но започнах да се съмнявам дали ще заработи въобще.Приложил съм и схемата накрая.
Идеята ми е такава:
Използвам PIC16f876A с MSSP модул. Конфигурирам MSSP като "Slave mode (7-bit address) with Start and Stop bit interrupts enabled" когато приемам, когато предавам си е Master.
Конфигурирам INT0 да се генерира при преход от ниско към високо ниво.
Трябва да мога да чета съобщенията изпращани до всички адреси което правя така - след като получа прекъсване при наличие на Start bit чета I2C шината през RB2 при всеки преход 0->1 на RB0 и преди да се извърши сравняване на приетия адрес от I2C с този записан в SSPADD на PIC16f876A аз записвам в SSPADD резултатите от RB2 - на всяко ново съобщение променям записания в моята схема адрес и после оставям работата на хардуера за данните.
А ето и псевдо код за да е по ясно (надявам се:))
Ето ги и моите тревоги
1.Значи не можах да намеря никакъв документ за режима "Slave mode (7-bit address) with Start and Stop bit interrupts enabled" и мога само да съдя индиректно за него от Master mode та ако може някой да помогне.
2.Дали като чета SCL и SDA шините през други портове (RB0 и RB2) не им променям нивата, тоест дали ще чета коректни данни и дали ще влияя на I2C шината. А и дали няма да товаря много RB0 и RB2. В I2C спецификацията нУлата е дефинирана между -0.5V и 1.5V а единицата между 3V до 5+V което отговаря на TTL за 0 и 1 но не съм сигурен.
3.Ако работи няма да мога да постигна някаква забележителна скорост (надявах се на 400kb/s но уви) а на мен ми трябва да е по стандарт и се надявам ако някой е работил повечко с PIC и I2C да даде съвет за оптимизация.
4.Дали ще изникнат някакви проблеми при постоянното превключване между Master/Slave.
5.Не можах да симулирам I2c устройство в Proteus7.1sp4 въпреки че изчетох наличния за него help.Просто слагам i2c модула без да променям нищо, той си работи като master, обаче като използвам симулацията да пращам адрес и данни нищо не става.
Ще се радвам на всякакви критики, корекции и забележки по темата:)