реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> и все же как правильно читать SPI?, запутался совсем ((
vesel
сообщение May 11 2008, 06:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



писать туда научился...передатчик конфигурю как хочется ...а вот читать ...
вот кусочек кода ...
трансивер начинает отдавать по SPI данные своего регистра статуса по команде начинающейся с 0..
тоесть чтобы он начал передавать по SPI свои 2 байта мне нуна заслать туда например 0х00...

PORTB.7=0; вкл SS
char cmd = 0x00;
void spi_read(char cmd)
{

SPDR=cmd; // запрос на чтение регистра статуса
while((SPSR & 0x80)==0); // ждем окончания передачи
msb=SPDR;
}
PORTB.7=1; выкл SS

неясен момент ....а КТО тактирует во время чтения по SPI ? понятно когда я туда шлю команду...
а сколько? будет продолжаться тактирование и главное КТО? когда данные посыплются оттуда...
в даташите на трансивер показано что 2 байта отдаются сразу друг за другом ....
поможите люди добжи)))
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 11 2008, 06:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vesel @ May 11 2008, 08:12) *
...чтобы он начал передавать по SPI свои 2 байта мне нуна заслать туда например 0х00...

a для продолжения - ПРОДОЛЖАТЬ передавать НЕ команды


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vesel
сообщение May 11 2008, 06:59
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



а что тогда простите ему туда передавать ??
у него все что начинается с 1 .команда либо инитить его ,либо на ТХ отдавать..... даже получить с ФИФО данные тоже с 1начинается... .
единственная команда на чтение с него регистра статуса должна начинаться с 0.
тоесть для того чтобы получить 2 байта нужно отправить 0 ....
ээээ.......перед каждым байтом ? хммм... у него отдача идет сразу 2байта один за другим ....и не будет ли он на отправку мною по получению первого от него байта 0 считать что нуна все сначало ?!?! тоесть с первого байта .... и "всеже повторю свой вопрос по поводу магнитофона".... а кто SCK дергать то будет ....либо тогда трансивер должен сам тактировать свои данные либо у меня лыжи окончательно прилипли к асфальту ((
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 11 2008, 07:25
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vesel @ May 11 2008, 08:59) *
а что тогда простите ему туда передавать ??

Тогда после команды безразлично что. Передавайте 0xFF.
Цитата
.и не будет ли он на отправку мною по получению первого от него байта 0 считать что нуна все сначало

Разумеется нет. Ну НЕТ на SPI отдельных приема и передачи НЕТ. По опредедению НЕТ.



Цитата(vesel @ May 11 2008, 08:59) *
..а кто SCK дергать то будет ....

Вот master передавая ПУСТЫЕ байты и будет дергать.
Вы бы хоть даташит какой-нибудь почитали полностью, а?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 14:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016