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

 
 
> 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 21 2010, 11:14
Сообщение #2


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

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



Цитата
А объяснить Вы столь странную связь можете? Я - нет. И очень-очень сильно сомневаюсь, что дело было в резисторах.


Могу! Помехи от двигателя постоянного тока. Из за резисторов вероятность возникновения глюка стала 0.99! Практически всегда после начала работы шумящего элемента глюк вылезал! Поставил перемычки вероятность возникновения снизилась примерно до 0.01. А с работой шагового двигателя (и такой имеется в приборе, требовалась реализация микрошага) вероятность глюка повысилась до 0.3 - 0.4. Проблему решил программно. При ошибке CRC slave устройства перезапускали SPI и перенастраивали канал PDC. Работоспособность восстановилась. Байты бегали туда сюда, данными модули между собой обменивались)

Цитата
P.S. Если кто не заметил, проблема топикстартера решена.

мне кажется эта тема и проблема будет всегда возникать)))
пора бы выложить рекомендации в отдельную тему форума по настройке и работе с SPI)))

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


Гуру
******

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



Цитата(shrek @ May 21 2010, 15:14) *
Могу! Помехи от двигателя постоянного тока.

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

Цитата(shrek @ May 21 2010, 15:14) *
мне кажется эта тема и проблема будет всегда возникать)))
пора бы выложить рекомендации в отдельную тему форума по настройке и работе с SPI)))

Это большой и неблагодарный труд. Вообще, для понимания работы атмеловского SPI из SAM7 нужно:
1. Изучить даташит
2. Изучить аппноту для толкования неясностей даташита (а они есть)
3. Задать вопрос здесь, если не помогло smile.gif
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
|- - xelax   Цитата(aaarrr @ May 21 2010, 15:22) Вообщ...   May 24 2010, 05:57
- - shrek   ЦитатаСдвиг на один байт объяснить можете? Ведь не...   May 27 2010, 06:59
|- - aaarrr   Цитата(shrek @ May 27 2010, 10:59) Возник...   May 27 2010, 08:03
- - 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 Текстовая версия Сейчас: 23rd July 2025 - 05:42
Рейтинг@Mail.ru


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