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

 
 
> at91sam7s spi, Помогите понять что происходит
en0t
сообщение Feb 27 2010, 12:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 31-01-08
Пользователь №: 34 612



Здравствуйте, подскажите что к чему.
Есть есть задача связать at91sam7s256(мастер) и attinny85(слейв) по SPI, всё сделал как написано по даташиту, связь есть но странная.От мастера к слейву данные доходят нормально а вот от слейва они как будто идут с задержкой в 2 байта.
Как будто приём SPI настроен на 24 бита.


прием мастером осуществлён вот так
Код
AT91PS_SPI pSPI = AT91C_BASE_SPI;
while( !( pSPI->SPI_SR & AT91C_SPI_TDRE ) ); // transfer compl. wait
pSPI->SPI_TDR = (dat & 0xFFFF) | (((~(1 << 2)) & 0xF)<< 16);


while( !( pSPI->SPI_SR & AT91C_SPI_RDRF ) ); // wait for char

return (unsigned char)( pSPI->SPI_RDR ); // it's important to read RDR here!



зы. тяжёло описать правельно что у меня происходит но думаю кто с этим сиалкивался поймёт.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
shrek
сообщение May 27 2010, 06:59
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 1-12-08
Из: г. Орел
Пользователь №: 42 126



Цитата
Сдвиг на один байт объяснить можете? Ведь не на один бит, не на 5, 6 или 11, а ровно на байт. Такая умная помеха?

счетчик PDC делает декремент после принятия именно байта. Возникла помеха SPI посчитал что это очердной тактовый импульс (или несколько, или вообще не посчитал что был тактовый импульс). В PDC байты ушли раньше положенного (или вообще не ушли, т.е. уйдут при следующем обращении мастера к слейву), а мастер допустим еще передает (к случаю если PDC слейва раньше примет байты). Если прерывание быстро обрабатывается (например PDC заново инициализируется в начале работы подпрограммы обработки прерывания, а частота тактовых импульсов SPI не превышает 1МГц), то получается мастер еще не окончил предыдущую передачу, а слейв уже новую начинает...
Примерно по тому же принципу если бы слейв был настроен на прием передачу 8 байт, а мастер на прием передачу 9 байт.

Сообщение отредактировал shrek - May 27 2010, 07:08
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 27 2010, 08:03
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(shrek @ May 27 2010, 10:59) *
Возникла помеха SPI посчитал что это очердной тактовый импульс...

...и данные сместились на бит, а никак не на байт. А уж PDC тут вообще ни при чем.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- en0t   at91sam7s spi   Feb 27 2010, 12:31
- - aaarrr   Цитата(en0t @ Feb 27 2010, 15:31) тяжёло ...   Feb 27 2010, 12:54
- - en0t   aaarrr , спасибо действительно помогло. вот ещё ...   Feb 27 2010, 14:12
|- - aaarrr   Цитата(en0t @ Feb 27 2010, 17:12) в данно...   Feb 27 2010, 14:16
- - en0t   да я понимаю , спросил так на всякий случай, а вдр...   Feb 27 2010, 14:25
|- - aaarrr   Цитата(en0t @ Feb 27 2010, 17:25) а это к...   Feb 27 2010, 14:33
- - en0t   aaarrr, ещё раз спасибо.Буду думать примерять.   Feb 27 2010, 14:40
- - shrek   У меня была почти такая же проблема с SPI только я...   Apr 14 2010, 07:47
|- - strannyi   Потери в PDC еще возникают из-за загруженности вну...   Apr 14 2010, 11:02
- - aaarrr   Цитата(shrek @ Apr 14 2010, 12:02) У меня...   Apr 14 2010, 11:43
- - shrek   ЦитатаА объяснить Вы столь странную связь можете? ...   May 21 2010, 11:14
|- - aaarrr   Цитата(shrek @ May 21 2010, 15:14) Могу...   May 21 2010, 11:22
|- - xelax   Цитата(aaarrr @ May 21 2010, 15:22) Вообщ...   May 24 2010, 05:57
- - shrek   Цитата...и данные сместились на бит, а никак не на...   May 27 2010, 15:18
|- - aaarrr   Цитата(shrek @ May 27 2010, 19:18) На осц...   May 27 2010, 15:29
- - shrek   ЦитатаТогда причину нужно искать в программе. До в...   May 28 2010, 07:09
- - romazan   Всем привет. У меня такая проблема, шлю данные в д...   Mar 22 2011, 13:23
|- - Сергей Борщ   QUOTE (romazan @ Mar 22 2011, 15:23) У ко...   Mar 22 2011, 13:54
- - romazan   Вроде помогло, но глюков дофига! Баги! Ба...   Mar 22 2011, 20:25
- - aaarrr   Для отслеживания окончания передачи следует опраши...   Mar 22 2011, 20:40
- - romazan   Спасибо за советы. Заработало. Буду с дисплеем раз...   Mar 25 2011, 10:27


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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 17:02
Рейтинг@Mail.ru


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