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

 
 
 
Reply to this topicStart new topic
> Пример работы с SPI для AT91SAM7S, нужно обмениваться данными с микросхемой AT45DB081B
Pasha 111
сообщение Feb 4 2006, 20:47
Сообщение #1


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

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Нигде не могу найти пример sad.gif
Я начинающий и с SPI никогда раньше не работал.
Собственно нужно обмениваться данными с микросхемой AT45DB081B
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Feb 5 2006, 09:23
Сообщение #2


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



А там ничего сложного.
Выставили CE, послали побайтно команду с параметрами, затем приняли (если нужно) данные от флэш, убрали CE.
Для принятия байта от флэш нужно отправить нулевой или 0xFF байт и после этого считать приемный регистр SPI.
Учтите, что деактивация CE на флэш прерывает исполнение текущей команды.
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение Feb 7 2006, 16:52
Сообщение #3


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

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



А что такое "СЕ"? unsure.gif
Go to the top of the page
 
+Quote Post
Dars
сообщение Feb 7 2006, 17:00
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 238
Регистрация: 11-08-05
Пользователь №: 7 557



Цитата(Pasha 111 @ Feb 7 2006, 19:52) *
А что такое "СЕ"? unsure.gif


CHIP ENABLE, им выбирается slave. 1 выбран, 0 отдыхает.
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Feb 7 2006, 18:55
Сообщение #5


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Наоборот, CE - инвертированный сигнал, 0 - активный, 1 - неактивный.
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение Feb 7 2006, 23:53
Сообщение #6


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

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Всем спасибо, буду пробывать. Если что опять станет неясно - спрошу smile.gif
Go to the top of the page
 
+Quote Post
SlavaCh
сообщение Apr 5 2006, 17:06
Сообщение #7


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

Группа: Свой
Сообщений: 86
Регистрация: 26-01-05
Пользователь №: 2 200



Господа, не поделитесь примером работы SAM7S с датафлэш AT45DB? А то чего то заводится не хочет. Или может подскажете по работе с SPI-
1.Как лучше работать с чип-селектом -
а) посадить на отдельный пин, и дергать его(как в меге) или
б)использовать регистр SPI_CSRx?
2.Если вариант б) то ессли я выставляю бит LASTXFER - то после передачи байта CS станет неактивным?
3. Не допонял зачем бит CSAAT.

У меня инициализация SPI такая
void spi_init(void)
{
// Configure SPI PIOs
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, AT91C_PA11_NPCS0 | AT91C_PA12_MISO | AT91C_PA13_MOSI | AT91C_PA14_SPCK, 0);

// Configure PMC by enabling SPI clock
// AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << (AT91C_ID_SPI));
AT91F_SPI_CfgPMC ();

AT91F_SPI_Reset(AT91C_BASE_SPI);

AT91F_SPI_CfgMode(AT91C_BASE_SPI, AT91C_SPI_MSTR | AT91C_SPI_PS_FIXED | AT91C_SPI_MODFDIS |
((0x10 << 24) & AT91C_SPI_DLYBCS));
AT91F_SPI_CfgPCS(AT91C_BASE_SPI, 0);

AT91F_SPI_CfgCs(AT91C_BASE_SPI, 0, AT91C_SPI_CPOL | AT91C_SPI_BITS_8 |
((0x40 << 8) & AT91C_SPI_SCBR) | //Serial Clock Baud Rate
(AT91C_SPI_DLYBS & (128 << 16)) |
((0x2 << 24) & AT91C_SPI_DLYBCT)); //Delay Between Consecutive Transfers

AT91F_SPI_Enable(AT91C_BASE_SPI);
}

Буду признателен за помощь.
mail: slava(at)trace.ru
ЗЫ.C TWI проблем не было, благо есть пример на сайте.
если кому надо могу скинуть рабочую библиотеку для часов FM31xxx
(Ramtron)

2aAdmin - а может создать топик как в AVR - с исходниками, люди уже наработали под АРМы много чего.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 00:16
Рейтинг@Mail.ru


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