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

 
 
> Смещён приём через PDC для SPI
Goofy
сообщение Feb 9 2008, 09:02
Сообщение #1


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Последовательность функция для запуска передчи команды по SPI (для dataflash)
Код
    DFChipSelect();

    AT91F_PDC_DisableRx(pPdc);
    AT91F_PDC_SetRx(pPdc, (char *) &(), bCmdSize);
    AT91F_PDC_SetNextRx(pPdc, pData, dDataSize);

    AT91F_PDC_DisableTx(pPdc);    
    AT91F_PDC_SetTx(pPdc, (char *) &(pDataFlash->commandS), bCmdSize);
    AT91F_PDC_SetNextTx(pPdc, pData, dDataSize);

    AT91F_PDC_EnableRx(pPdc);
    AT91F_PDC_EnableTx(pPdc);

В качестве команды засылается запрос на статус регистр (0xD7) размер команды 2 (bCmdSize=2)
Глядя на диаграмму передачи со статус регистра видно, что статус регистр должен передаваться по MISO сразу же после 8го тика SCK. Судя по всему так и происходит. Но сам статус регист оказывается не в ((char*)pDataFlash->command) [1], а в ((char*)pDataFlash->command) [0] !!! Как будто датафлэш передаёт данные во время прохождения запроса. Как будто PDC для приёма курит один байт, перед тем как начать приём.
Что не учёл, где накосячил?
Процессор sam7s256 код из атмеловского апноута для sam7x.

Очевидно, что это проявляется не только с датафлэш, тк для АЦП запросы короткие то там я тупо подстроился под эту систему и заставил всё работать. Но это ведь может плохо кончиться!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение Feb 14 2008, 13:21
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Кстати, а как Вы управляете чипселектом? Через железные NPCS или PIO?


--------------------
Go to the top of the page
 
+Quote Post
Goofy
сообщение Feb 14 2008, 13:46
Сообщение #3


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Цитата(prottoss @ Feb 14 2008, 20:21) *
Кстати, а как Вы управляете чипселектом? Через железные NPCS или PIO?


Через железные, дёргаются без проблем.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Feb 14 2008, 15:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Goofy @ Feb 14 2008, 20:46) *
Через железные, дёргаются без проблем.
Ну вот и все проблемы от этого. Сам Atmel в errata говорит - используете PDC? - НЕ ИСПОЛЬЗУЙТЕ NPCS


--------------------
Go to the top of the page
 
+Quote Post
Goofy
сообщение Feb 14 2008, 15:54
Сообщение #5


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Цитата(prottoss @ Feb 14 2008, 22:18) *
Ну вот и все проблемы от этого. Сам Atmel в errata говорит - используете PDC? - НЕ ИСПОЛЬЗУЙТЕ NPCS


Работа идёт в Fixed PCS. И было сказано что при работе без PDC проблема не исчезает.
Скачал последний датащит, в эррате несколько другая ситуация изложена. У меня все устройства на шине работают в 8 бит режиме.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Feb 14 2008, 16:10
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Goofy @ Feb 14 2008, 22:54) *
Работа идёт в Fixed PCS. И было сказано что при работе без PDC проблема не исчезает.Скачал последний датащит, в эррате несколько другая ситуация изложена. У меня все устройства на шине работают в 8 бит режиме.
Хотите головной боли? Продолжайте свои исследования, нет - забейте на железные выборки и используйте софтовое управление слэйвами

Кстати, я же Вам дал рабочий драйвер, работающий на ВСЕХ SAM7(на 9 не проверял). Почему бы не испытать? smile.gif А уже потом делать выводы про неработающий SPI. Там (в драйвере) вроде бы все просто и понятно написано.


--------------------
Go to the top of the page
 
+Quote Post
Goofy
сообщение Feb 14 2008, 16:14
Сообщение #7


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Цитата(prottoss @ Feb 14 2008, 23:08) *
Хотите головной боли? Продолжайте свои исследования, нет - забейте на железные выборки и используйте софтовое управление слэйвами


Давайте убедимся что говорим об одном и том же.
То есть всё что мне нужно сделать, отцепить ногу NPCS от модуля SPI? Сконфигуривароть интерфейс в SPI_CSR0. И работать с той лишь разницей что переключать CS слэйвов программно?
Go to the top of the page
 
+Quote Post
prottoss
сообщение Feb 14 2008, 16:37
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Goofy @ Feb 14 2008, 23:14) *
угу

Посмотрите в spi.c на

SPI_RESULT SPI_Init(AT91PS_SPI spi) - ИМХО там все, что нужно сделать


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Goofy   Смещён приём через PDC для SPI   Feb 9 2008, 09:02
- - prottoss   Цитата(Goofy @ Feb 9 2008, 16:02) КодAT91...   Feb 9 2008, 09:54
|- - Goofy   Цитата(prottoss @ Feb 9 2008, 16:54) Это ...   Feb 9 2008, 10:11
|- - prottoss   Цитата(Goofy @ Feb 9 2008, 17:11) это нак...   Feb 9 2008, 10:22
|- - Goofy   Цитата(prottoss @ Feb 9 2008, 17:22) Да В...   Feb 10 2008, 08:05
|- - prottoss   Цитата(Goofy @ Feb 10 2008, 15:05) это о...   Feb 10 2008, 09:53
|- - Goofy   Структура на которую ссылается pDataFlash имеет ви...   Feb 10 2008, 10:35
|- - prottoss   Цитата(Goofy @ Feb 10 2008, 17:35) Структ...   Feb 10 2008, 11:08
|- - Goofy   А можно попросить код? Именно с sam7s стыковали да...   Feb 10 2008, 13:34
|- - prottoss   Цитата(Goofy @ Feb 10 2008, 20:34) А можн...   Feb 10 2008, 13:55
- - Goofy   За код спасибо большое! Но то что у меня про...   Feb 11 2008, 08:39
|- - prottoss   Цитата(Goofy @ Feb 11 2008, 15:39) За код...   Feb 11 2008, 08:55
|- - Goofy   Цитата(prottoss @ Feb 11 2008, 15:55) не ...   Feb 11 2008, 09:02
|- - defunct   Goofy Сдается мне проблема не с RX DMA. Попробуйте...   Feb 11 2008, 11:40
- - Goofy   Код for (i=0;i<4;i++) Bufr[i]=...   Feb 11 2008, 18:40
- - Goofy   Это баг самого sam7s. Проявляется видимо не у всех...   Feb 14 2008, 10:33
|- - prottoss   Цитата(Goofy @ Feb 14 2008, 17:33) Это ба...   Feb 14 2008, 11:03
|- - Goofy   Цитата(prottoss @ Feb 14 2008, 18:03) 1.Т...   Feb 14 2008, 13:14
|- - Goofy   Подправил Кодvoid InitSPI(void) { AT91F_SP...   Feb 14 2008, 18:01
|- - prottoss   Цитата(Goofy @ Feb 15 2008, 01:01) Кодuns...   Feb 14 2008, 18:12
|- - Goofy   Цитата(prottoss @ Feb 15 2008, 01:12) Вот...   Feb 14 2008, 18:14
- - prottoss   Блин Название то теме Вы придумали? Что то вы экс...   Feb 14 2008, 18:27
- - Goofy   Цитата(prottoss @ Feb 15 2008, 01:27) Бли...   Feb 14 2008, 19:19


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:32
Рейтинг@Mail.ru


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