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

 
 
 
Reply to this topicStart new topic
dmelniko
сообщение Mar 2 2007, 16:58
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 30-10-06
Пользователь №: 21 777



Народ подскажите пожалуйста,

Имеем AT91M42800, на spi висят ацп и флешка, spi сконфигурирован как variable, для приема/передачи данных во флеш хотелось бы использовать pdc, но вот вопрос а как в режиме variable делать тогда чипселект между ацп и флешкой?
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Mar 2 2007, 20:14
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(dmelniko @ Mar 2 2007, 15:58) *
Народ подскажите пожалуйста,

Имеем AT91M42800, на spi висят ацп и флешка, spi сконфигурирован как variable, для приема/передачи данных во флеш хотелось бы использовать pdc, но вот вопрос а как в режиме variable делать тогда чипселект между ацп и флешкой?

В pdc нужно выборку сделать 32 бит.
Цитата
The Variable Peripheral Selection allows buffer transfers with multiple peripherals without repro-
gramming the Mode Register. Data written in SPI_TDR is 32 bits wide and defines the real data
to be transmitted and the peripheral it is destined to. Using the PDC in this mode requires 32-bit
wide buffers, with the data in the LSBs and the PCS and LASTXFER fields in the MSBs.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Mar 2 2007, 20:16
Сообщение #3


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

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



19.11 SPI Transmit Data Register
Register Name: SP_TDR
Access Type: Write-only
Offset: 0x0C
• TD: Transmit Data (Code Label SP_TD)
Data which is to be transmitted by the SPI Interface is stored in this register. Information to be transmitted must be written
to the transmit data register in a right-justified format.
• PCS: Peripheral Chip Select
This field is only used if Variable Peripheral Select is active (PS = 1) and if the SPI is in Master Mode.
If PCSDEC = 0:
PCS = xxx0 NPCS[3:0] = 1110
PCS = xx01 NPCS[3:0] = 1101
PCS = x011 NPCS[3:0] = 1011
PCS = 0111 NPCS[3:0] = 0111
PCS = 1111 forbidden (no peripheral is selected)
(x = don’t care)
If PCSDEC = 1:
NPCS[3:0] output signals = PCS

Так что PDC должен гнать 32 разрядные данные, в каждое слово которых предварительно записан номар аресата. Если используете Dataflash то в variable-режиме могут возникнуть проблеммы с тем, что SPI будет поднимать ногу CS после посылки каждого байта. Соответсвенно будут глюки. Лучше дергать эту ногу "руками".

Опередили smile.gif


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post

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

 


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


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