Связь по SPI, нужна помощь.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Попала в руки интересная микросхема PCA2129T. Это часы реального времени с I2C и SPI. Так вот I2C завелся с пол пинка, а через SPI она упорно отказывается работать (скорее всего по тому, что в работе с I2C опыта больше). Временная диаграмма работы SPI выглядит вот так:

Изображение

Передавать пытался вот так:

Код: Выделить всё

unsigned char SPI_ReadData(unsigned char data){

	unsigned char  res = 0;

        SPI_PORT &= ~(1<<SPI_SS);

	SPDR = data;

	while(!(SPSR & (1<<SPIF)));

	res = SPDR;

	SPI_PORT |= (1<<SPI_SS);

	  return res;
}

void pca2129_get_time(unsigned char *hour,unsigned char *min,unsigned char *sec){
	*sec = bcd(SPI_ReadData(0xA3)); // секунды по адресу 0x03
}
В ответ все время идет 85. В чем моя ошибка?

P.S.
Даташит прилагаю
PCA2129T.pdf
(986.42 КБ) 552 скачивания
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

В каком состоянии IFS , как подключены SDI и SDO к ногам проца? Каой режим SPI выбран , их 4 обычно у проца?
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Режим нулевой. IFS соединен с массой. SDI и SDO подключены к MISO и MOSI МК. Самое интересное то, что в микросхему передача идет, а вот прием не работает. Только что записал настройки вывода CLKOUT и он включился.
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 260
Зарегистрирован: Чт янв 13, 2011 18:54:29
Откуда: Минск

Сообщение ds1307 »

Чего то я в вашем коде не понял, зачем вы при чтении еще единицы шлете?
Последний раз редактировалось ds1307 Пн фев 25, 2013 22:58:18, всего редактировалось 1 раз.
Учиться, учиться, ...
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

Судя по картинке 27 SDI - MOSI SDO-MISO.
О чём свидетельствует и шина SDI и SDO на твоём рисунке
При этом по фронту надо передать команду The first
byte transmitted is the command byte. Table 50.
B вот это it is important that pin SDI is never left floating
Последний раз редактировалось ILYAUL Пн фев 25, 2013 22:57:42, всего редактировалось 1 раз.
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

В смысле? Посылал как в даташите указано...
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

it is important that pin SDI is never left floating!!! Судя по картинке - 0000000000000.....
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

ILYAUL писал(а):Судя по картинке 27 SDI - MOSI SDO-MISO.
О чём свидетельствует и шина SDI и SDO на твоём рисунке
При этом по фронту надо передать команду The first
byte transmitted is the command byte. Table 50.
B вот это it is important that pin SDI is never left floating
А как это сделать?
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

О чём из мной перечисленного ты спросил?
И надеюсь это так with the Most Significant Bit (MSB) sent first
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Т.е. линию SDI надо придавить к земле и пойдет передача?
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

Аппаратный SPI имеет два буфера на передачу и приём.
1. Запихиваешь команду с 1 в 7-бите в буффер передатчика с 01 в битах 6-5 и адресом ,в остальных , того регистра который хочешь читать.
2. отсылаешь!
3. Запихиваешь 8- нулей в буфер передатчика
4. Отсылаешь
5. Вынимаешь данные из буфера приемника.
6. Уходишь на пункт 3
7. Когда наконец всё прочтёшь или просто надоест- выходишь.
И шины SDI SDO перепаяй как надо или ещё раз проверь , судя по твоему ответу они соединены не правильно!
Да и SDA/CE ставить в ноль заранее - перед передачей или просто подключи ее "намертво" к земле.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Вот оно как :)
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Ура!!! Заработало!!! :)))
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Кстати, очень стойкая микра. Перепутал полярность питания, заметил только когда дым пошел. Думал конец ей, а он включилась и заработала, как ни в чем не бывало :shock:
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

А как программный SPI сделать? Пытаюсь делать так:

Код: Выделить всё

void spi_write(unsigned char adress, unsigned char data){
	SCK_LOW;

	CE_LOW; 

	unsigned char i;
	
	for(i = 0; i < 8; i++){

	    if(((adress >> 7) & 1)) {
	      MOSI_HIGH; 
	    } else {
	      MOSI_LOW;  
	    }

                SCK_HIGH;

		SCK_LOW;

	    adress <<= 1;
	}

		for(i = 0; i < 8; i++){
		    if(((data >> 7) & 1)) {
		      MOSI_HIGH;
		    } else {
		      MOSI_LOW;  
		    }

		        SCK_HIGH;

			SCK_LOW;

		    data <<= 1;
		}

	CE_HIGH; 
}
В итоге у слейва никакой реакции. В аппаратном было так:

Код: Выделить всё

	SPDR = adress; // передача адреса
		while(!(SPSR & (1<<SPIF))); // ждем, если линия зянята

		SPDR = data; // передача данных
		while(!(SPSR & (1<<SPIF)));  // ждем, если линия зянята
Что я делаю не так?
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

Код: Выделить всё

 }
                SCK_HIGH;

      SCK_LOW;
Вот это понравилось . Мастерам якудза такое и не снилось- несколько наносек и яйца долой. Вот только микросхемы не понимают такое издевательство.
Поэтому берем снова DS и изучаем тайминги
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Да, вот как раз по поводу таймингов я и забыл написать в вопросе :) Где про них можно прочитать?
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

PCA2129T.pdf
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Его я уже раз 10 прочитал, только вот про длительность таймингов ни слов не увидел... А, вот они, нашел :)
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Ответить

Вернуться в «Периферия»