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

 
 
 
Reply to this topicStart new topic
> SAM7S, CS на SPI
Sagittarius
сообщение Apr 30 2009, 19:27
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Здравствуйте.
Передаю-принимаю данные с АЦП (AD7924) по SPI. Если программно посылать то все хорошо. Если включить PDC то плохо. Проблема в том, что при использовании PDC выдается один общий CS на весь блок данных, а АЦП ждет отдельного CS-а на каждое слово. Собственно вопрос возможно ли такое на SAM7S и как? Или может в самом АЦП что подправить можно?
Спасибо.
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 30 2009, 19:57
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Вообще настройки SPI позволяют дрегать CS в любом месте или после каждого слова, в даташите надо смотреть. ( там еще бит есть LAST_XFER). т.е. при совместном с DMA использовании надо включить режим с несколькими CS. Но можно вроде и после каждого слова что бы сам дергался ( это я уже не помню).

НО ГЛАВНОЕ!!! прочитайте ERRATA она у разных серий, разная и вроде в SAM7S как раз эта фича криво работает. что очень обидно.
В общем полноценно SPI в SAM7 не работает и глюки исправлять атмел не собирается, а просто их описывает.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Apr 30 2009, 20:09
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Sagittarius @ Apr 30 2009, 23:27) *
Передаю-принимаю данные с АЦП (AD7924) по SPI. Если программно посылать то все хорошо. Если включить PDC то плохо. Проблема в том, что при использовании PDC выдается один общий CS на весь блок данных, а АЦП ждет отдельного CS-а на каждое слово. Собственно вопрос возможно ли такое на SAM7S и как? Или может в самом АЦП что подправить можно?
Спасибо.
а с какой частотой и через сколько каналов хотите оцифровывать ?
Go to the top of the page
 
+Quote Post
prottoss
сообщение May 1 2009, 02:19
Сообщение #4


Гуру
******

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



Цитата(KRS @ May 1 2009, 03:57) *
НО ГЛАВНОЕ!!! прочитайте ERRATA она у разных серий, разная и вроде в SAM7S как раз эта фича криво работает. что очень обидно.
Это Вы зря говорите. SPI вполне полноценный, и нормально работает с использованием PDC. Криво сделано только аппаратное дергание выводами выборки NPCS. НО ни кто не мешает делать выборку слэйвов программно.

Цитата(Sagittarius @ May 1 2009, 03:27) *
Посмотрите вот здесь
http://electronix.ru/forum/index.php?act=S...=43&t=43130


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 1 2009, 18:54
Сообщение #5


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ May 1 2009, 06:19) *
Это Вы зря говорите. SPI вполне полноценный, и нормально работает с использованием PDC. Криво сделано только аппаратное дергание выводами выборки NPCS. НО ни кто не мешает делать выборку слэйвов программно.
вот у меня пока... все очень даже прямо работает(SAM7A3)
у меня часть транзакций по PDC (FRAM FM25xx) и часть c MBI5028(по ожиданию окончания передачи) и еще
74hc595(и по PDC и програмным опросом)
Часть транзакций с софтовым CS(MBI, 595), часть с аппаратным FM25xx.

Что я делаю не так ? И почему всегда работает ?
Go to the top of the page
 
+Quote Post
KRS
сообщение May 1 2009, 19:02
Сообщение #6


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(singlskv @ May 1 2009, 22:54) *
Что я делаю не так ? И почему всегда работает ?

Да у меня тоже все работает, но на errata и для SAM7S и SAM7X я наткнулся и приходилось обходить софтом.
Самое обидное что атмел не выпускает новые ревизии чипов и не исправляет ошибки.
И в SAM7S и SAM7X баги разные.

LSATXFER например криво работает.
А если надо использовать PDC то смешать несколько устройств с разными форматами посылки и что бы аппаратно дергались CS в нужном месте невозможно ни на одном семействе у атмела!
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 1 2009, 19:11
Сообщение #7


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(KRS @ May 1 2009, 23:02) *
Да у меня тоже все работает, но на errata и для SAM7S и SAM7X я наткнулся и приходилось обходить софтом.
Самое обидное что атмел не выпускает новые ревизии чипов и не исправляет ошибки.
И в SAM7S и SAM7X баги разные.

LSATXFER например криво работает.
А если надо использовать PDC то смешать несколько устройств с разными форматами посылки и что бы аппаратно дергались CS в нужном месте невозможно ни на одном семействе у атмела!
Значит мне просто пока повезло... у меня большинство девайсов на SAM7A3, а там глюков пока не обнаружил biggrin.gif
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение May 2 2009, 19:19
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Цитата(singlskv @ May 1 2009, 00:09) *
а с какой частотой и через сколько каналов хотите оцифровывать ?

канал 1, просто такой АЦП был уже, под него и плату сделал. А мысль была по таймеру 1-5кГц запускать SPI через PDC на 8-16 выборок ~500ksps и потом обрабатывать результат. Но сам AD7924 тактируется от того же SPI и хочет получать отдельный CS на каждое слово. Так что пока 2 пути - либо в основном цикле программно все делать, тогда аппаратный CS нормально отрабатывает, либо через PDC посылать в 2 раза больше посылок, но каждую нечетную отправлять на другой, не используемый канал, тогда тоже будет для АЦП на каждое слово свой CS.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение May 4 2009, 08:48
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Не обязательно неиспользуемый. Можно их обьеденить и тогда не надо удваивать количество посылок.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение May 4 2009, 12:05
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Цитата(Dron_Gus @ May 4 2009, 12:48) *
Не обязательно неиспользуемый. Можно их обьеденить и тогда не надо удваивать количество посылок.


неиспользуемый канал - имелось в виду PCS самого SPI-я. Если одно слово слать на адрес 0 а следующее (и не слово а байт для быстроты) на канал 1 то получается то что надо - на каждое слово для CS0 приходит свой импульс CS. Адрес 1 SPI просто сконфигурен но выход PIO к SPI не подключен.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение May 4 2009, 18:13
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Ну а если надо быстро гнать данные и нет возможности делать "ложные посылки", можно обьеденить два выхода CS с помошью двух диодов и резистора и получить нормальный строб между посылками на формально разные, но реально один и тот же CS.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 4 2009, 21:12
Сообщение #12


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Dron_Gus @ May 4 2009, 22:13) *
Ну а если надо быстро гнать данные и нет возможности делать "ложные посылки", можно обьеденить два выхода CS с помошью двух диодов и резистора и получить нормальный строб между посылками на формально разные, но реально один и тот же CS.

ИМХО, это тот случай когда можно поробовать режим Variable Chip Select(если он конечно не в erratа на данный чип)
Просто заполняем 2 SPI_CSRx так чтоб нужный CS всегда выбирался.
Go to the top of the page
 
+Quote Post

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

 


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


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