Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 01.02.2010, 15:08  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
Вопрос аппаратный I2C-Slave на PIC18

Настраиваю Slave, отправляю отладчиком START с адресом.
В результате контроллер генерируе прерывание SSPIF, устанавливает BF в '1' и устанавливает бит ACK, даже если адресс не совпадает с значением в SSPADD. Что я не так делаю?
Код:
void interrupt general(void)
{
if (SSPIF && !flagI2C)//в режиме ведомого
	{
	if(BF) arr[i]=SSPBUF, i++;
	SSPIF=0;
	}
else if (SSPIF)//в режиме ведущего
	{
	SSPIF=0;
	}
}

void I2C_SlaveIn(void)
{
TRISC3=TRISC4=1;
SSPIE=0;//запретить прерывания MSSP
SSPCON1=0b00110110;
SSPCON2|=0x01;
flagI2C=0;
SSPADD=0x0f;
SSPIE=1;//разрешить прерывания MSSP
}
Реклама:

Последний раз редактировалось maxNTF; 01.02.2010 в 18:17.
maxNTF вне форума  
Непрочитано 01.02.2010, 18:23  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

Код пробовал только в протеусе, может это он глючит?
maxNTF вне форума  
Непрочитано 01.02.2010, 19:49  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

Кстати обрыл все форумы, данный вопрос всплывал, но ни одного ответа на него не было дано. Вче тут дело?
maxNTF вне форума  
Непрочитано 02.02.2010, 12:38  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

Гуру Вы где-е-е? Отзовитесь?
Мне кажется что такая проблема возникала у многих. Не ужели нет ответа на данный вопрос?
Похоже что в MSSP нужно было писать не Slave mode (with general address call) , а Slave mode (only with general address call)!!! Потому как похоже что аппаратно ни чего не сравнивается, а считается как будто адрес общего вызова!
maxNTF вне форума  
Непрочитано 03.02.2010, 00:40  
SGordon
Временная регистрация
 
Регистрация: 09.10.2006
Сообщений: 58
Сказал спасибо: 4
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
SGordon на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

Вы читали AN на аппаратный слейв - там прерывания по многим причинам будут, не только ведь при совпадении адреса ... И так на первый взгляд - а почему адрес нечетный....
SGordon вне форума  
Непрочитано 03.02.2010, 11:50  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

Сообщение от SGordon Посмотреть сообщение
Вы читали AN на аппаратный слейв - там прерывания по многим причинам будут, не только ведь при совпадении адреса ... И так на первый взгляд - а почему адрес нечетный....
При настройке модуля I2C в режиме ведомого при приеме данных может сгенерировать прерывание либо только по приему байта (адресного или данные) SSPSTAT‹3:0›=0110, и при SSPSTAT‹3:0›=1110 по приему байта (адресного или данные), обнаружении команды START и STOP. Какие Вы там еще нашли прерывания?
Во вторых по приему START и адресного байта генерируется прерывание и если адрес совпал то только в том случае генерируется бит подтверждения! Что я и писал в первом посте. И что то я не понял по поводу четности адреса, где об этом сказано?
maxNTF вне форума  
Непрочитано 03.02.2010, 17:12  
SGordon
Временная регистрация
 
Регистрация: 09.10.2006
Сообщений: 58
Сказал спасибо: 4
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
SGordon на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

Сообщение от maxNTF Посмотреть сообщение
И что то я не понял по поводу четности адреса, где об этом сказано?
Ну наверно в толстой книжке с наклейкой I2C -)
SGordon вне форума  
Непрочитано 04.02.2010, 02:05  
tsb
Прописка
 
Аватар для tsb
 
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
tsb на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

Сообщение от maxNTF Посмотреть сообщение
И что то я не понял по поводу четности адреса, где об этом сказано?
Дело в том, что адрес слейва в I2C занимает только 7 бит, начиная с 1го. А "нулевой" бит - признак цикла чтение/запись. Поэтому в SSPADD должно быть записано значение с нулем в "нулевом" бите, то есть "четное".
tsb вне форума  
Непрочитано 04.02.2010, 11:24  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

То же самое, даже если SSPADD=0x0e к примеру.
maxNTF вне форума  
Непрочитано 04.02.2010, 13:47  
SGordon
Временная регистрация
 
Регистрация: 09.10.2006
Сообщений: 58
Сказал спасибо: 4
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
SGordon на пути к лучшему
По умолчанию Re: аппаратный I2C на PIC18

Вы все же попробуйте AN734 (он для всех MidRange), у меня на 16F887 ( там по моему прерывания и флажки уже как на 1 работает и в протезе и на железяке...
SGordon вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i2c proteus глюк? caffy Proteus 3 18.02.2010 19:57
Аппаратный I2C PIC16F874 - DS3232 Victor_72 Микроконтроллеры, АЦП, память и т.д 0 30.01.2010 19:35
Аппаратный SLAVE I2C в PIC16F877 SGordon Микроконтроллеры, АЦП, память и т.д 0 19.01.2010 15:32
Pic16F887 аппаратный I2C через MicroC Pro GunFighter Микроконтроллеры, АЦП, память и т.д 4 18.12.2009 21:29
i2c - поиск устройств на шине savarez Микроконтроллеры, АЦП, память и т.д 5 24.11.2009 19:05


Часовой пояс GMT +4, время: 02:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot