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

 
 
> At91SAM7S256 с буквой С
SpiritDance
сообщение Mar 16 2011, 13:07
Сообщение #1


Дух погибшего транзистора
****

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



Только что получил следующее:

Цитата
В новой версии исправлены ошибки в АЦП, ШИМ, интерфейсах SPI, SSC, TWI, USART и регуляторе напряжения. Увеличено время доступа к Flash-памяти, что может потребовать перепрограммирования количества циклов ожидания. Количество циклов перезаписи энергонезависимой памяти улучшено. Полный перечень изменений имеется в data sheet на серию AT91SAM7S ревизии 6175K (раздел 40, Errata).


Ну и как водится старую ревизию снимают, будет только новая. Всем кто на них делал что-либо большой привет! Если не хватит производительности или переделывайте или снимайте прибор с производства. Какая неожиданная радость!! Ну и цена 7 баксов теперь будет.

Когда этих дол...ов уже купит микрочип?


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SpiritDance
сообщение Apr 25 2011, 12:49
Сообщение #2


Дух погибшего транзистора
****

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



Волосатые руки наконец дотянулись до SPI. Оказалось теперь не срабатывает бит LASTXFER и CS1 после окончания передачи лежит в нуле и не дышит. И это на двух платах, сигналы все в норме.

Код инициализации вот такой:
CODE
/* SPI reset */
//* Disable all interrupts
AT91C_BASE_SPI->SPI_IDR = 0xFFFFFFFF;

//* Reset all the Chip Select register
AT91C_BASE_SPI->SPI_CSR[0] = 0;
AT91C_BASE_SPI->SPI_CSR[1] = 0;
AT91C_BASE_SPI->SPI_CSR[2] = 0;
AT91C_BASE_SPI->SPI_CSR[3] = 0;

//* Reset the SPI mode
AT91C_BASE_SPI->SPI_MR = 0 ;

//* Disable the RX and TX PDC transfer requests
AT91C_BASE_SPI->SPI_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS;

//* Reset all Counter register Next buffer first
AT91C_BASE_SPI->SPI_TNPR = 0;
AT91C_BASE_SPI->SPI_TNCR = 0;
AT91C_BASE_SPI->SPI_RNPR = 0;
AT91C_BASE_SPI->SPI_TNCR = 0;
AT91C_BASE_SPI->SPI_TPR = 0;
AT91C_BASE_SPI->SPI_TCR = 0;
AT91C_BASE_SPI->SPI_RPR = 0;
AT91C_BASE_SPI->SPI_RCR = 0;

//* Disable receiver and transmitter and stop any activity immediately
AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SWRST | AT91C_SPI_SPIDIS;
AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SWRST | AT91C_SPI_SPIDIS;

/* Configure PIOs */
AT91C_BASE_PIOA->PIO_PDR = (unsigned int) AT91C_PA13_MOSI
|(unsigned int) AT91C_PA14_SPCK
|(unsigned int) AT91C_PA12_MISO;

AT91C_BASE_PIOA->PIO_ASR = (unsigned int) AT91C_PA13_MOSI
|(unsigned int) AT91C_PA14_SPCK
|(unsigned int) AT91C_PA12_MISO;

/* аппаратный сигнал CS для акселерометра */
AT91C_BASE_PIOA->PIO_PDR = (unsigned int) AT91C_PA31_NPCS1;
AT91C_BASE_PIOA->PIO_ASR = (unsigned int) AT91C_PA31_NPCS1;

/* Включаем модуль SPI в PMC */
AT91C_BASE_PMC->PMC_PCER = (unsigned int) 1 << AT91C_ID_SPI;

/* Кофигурируем SPI в режиме MASTER без CS */
AT91C_BASE_SPI->SPI_MR = AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | AT91C_SPI_PCS;

/* Конфигурируем CS */
/* Конфигурируем канал SPI для DF AT45DBXXX */
AT91C_BASE_SPI->SPI_CSR[0] = AT91C_SPI_BITS_8 /* отрицательная полярность тактов */
| AT91C_SPI_CPOL
| ((16 << 8) & AT91C_SPI_SCBR); /* делитель MCK */


/* конфигурируем канал 1 для акселерометра ADXL345 4 MHz максимум */
AT91C_BASE_SPI->SPI_CSR[1] = AT91C_SPI_BITS_8
| AT91C_SPI_CPOL /* отрицательная полярность тактов */
| AT91C_SPI_CSAAT /* не поднимать CS после предачи слова */
| ((16 << 8) & AT91C_SPI_SCBR) /* делитель MCK */
| ((24 << 16) & AT91C_SPI_DLYBS); /* пауза перед подачей тактирующего сигнала */

/* Включаем SPI */
AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SPIEN;


Работа с SPI вкратце выглядит вот так:
CODE
/* ЗАПИСЬ в регистр */
/* дожидаемся окончания передачи */
while(!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_TXEMPTY))
{ continue; }

/* выбираем указанный чип-селект */
AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF;
pcs_device = (~(1 << chip_select));
AT91C_BASE_SPI->SPI_MR |= ( (pcs_device << 16) & AT91C_SPI_PCS );

/* отсылаем слово */
AT91C_BASE_SPI->SPI_TDR = send_word | (( pcs_device << 16) & AT91C_SPI_TPCS);



/* ЧТЕНИЕ из регистра */
/* дожидаемся окончания передачи */
while(!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_TXEMPTY))
{ continue; }

/* убираем последствия предидущих транзакций */
temp = AT91C_BASE_SPI->SPI_RDR;

/* выбираем указанный CS */
AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF;
pcs_device = (~(1 << chip_select));
AT91C_BASE_SPI->SPI_MR |= ( (pcs_device << 16) & AT91C_SPI_PCS );

/* для корректной работы нужно записывать нули */
AT91C_BASE_SPI->SPI_TDR = 0x0000 | ((pcs_device << 16) & AT91C_SPI_TPCS) | AT91C_SPI_LASTXFER;

/* дожидаемся окончания передачи */
while(!(AT91C_BASE_SPI->SPI_SR & AT91C_SPI_RDRF))
{ continue; }

temp = AT91C_BASE_SPI->SPI_RDR;

После последней транзыкции наблюдаю печальное положение вещей на CS1, данные вроде такие как надо, с тактированием точно все ОК. На старых ревизиях A и B все работает как надо. Никаких упоминаний в эррате о таком поведении конечно не нашел.

Продолжаю изучать улучшенный кристалл за 7 баксов.

Сообщение отредактировал IgorKossak - Dec 21 2011, 10:05
Причина редактирования: [codebox] !!!


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SpiritDance   At91SAM7S256 с буквой С   Mar 16 2011, 13:07
- - kovigor   Цитата(SpiritDance @ Mar 16 2011, 16:07) ...   Mar 16 2011, 13:16
|- - aaarrr   Цитата(kovigor @ Mar 16 2011, 16:16) Это ...   Mar 16 2011, 13:19
|- - SpiritDance   40.9.1Embedded Flash Controller (EFC) 40.9.1.1EFC...   Mar 16 2011, 13:25
|- - kovigor   Цитата(SpiritDance @ Mar 16 2011, 17:25) ...   Mar 16 2011, 13:44
|- - SpiritDance   Цитата(kovigor @ Mar 16 2011, 16:44) Може...   Mar 16 2011, 14:05
|- - prottoss   Цитата(SpiritDance @ Mar 16 2011, 22:05) ...   Mar 16 2011, 14:38
|- - SpiritDance   Цитата(prottoss @ Mar 16 2011, 17:38) Мож...   Mar 17 2011, 05:47
- - Xenia   Зато в новой ревизии "C" огромную кучу п...   Mar 16 2011, 15:25
|- - aaarrr   Цитата(Xenia @ Mar 16 2011, 18:25) Зато в...   Mar 16 2011, 15:53
|- - Xenia   Цитата(aaarrr @ Mar 16 2011, 18:45) Зачем...   Mar 16 2011, 16:50
- - aaarrr   В SAM3 флеш исправили, снабдив её 128-битной шиной...   Mar 16 2011, 16:58
- - _Pasha   Что лучше - заложиться на годы горбатым по определ...   Mar 17 2011, 08:41
|- - SpiritDance   Цитата(_Pasha @ Mar 17 2011, 11:41) STM -...   Mar 18 2011, 07:50
|- - model25   Цитата(SpiritDance @ Mar 18 2011, 11:50) ...   Mar 22 2011, 05:26
|- - SpiritDance   Цитата(model25 @ Mar 22 2011, 08:26) ...   Mar 22 2011, 13:32
|- - model25   Цитата(SpiritDance @ Mar 22 2011, 16:32) ...   Mar 22 2011, 17:47
|- - SpiritDance   Цитата(model25 @ Mar 22 2011, 21:47) я в ...   Mar 28 2011, 15:11
- - Aquatik   Подниму тему по любимой ревизии С Пред история.....   Dec 21 2011, 06:20
- - Aquatik   С самбой вопрос снят... 2.11 версия корректно с ре...   Dec 21 2011, 09:25
- - aaarrr   А на какой частоте он у вас работает?   Dec 21 2011, 09:49
- - Aquatik   На трех частотах... 2 мГц - 18.432 мГц - 48 мГц с...   Dec 21 2011, 10:41
|- - aaarrr   Цитата(Aquatik @ Dec 21 2011, 14:41) В ер...   Dec 21 2011, 10:53
|- - Aquatik   Цитата(aaarrr @ Dec 21 2011, 13:53) Этот ...   Dec 21 2011, 11:18
|- - aaarrr   Цитата(Aquatik @ Dec 21 2011, 15:18) Проц...   Dec 21 2011, 11:22
- - Aquatik   последовательность такая: меняем CSS -> ждем MC...   Dec 21 2011, 11:26
- - Aquatik   WS не помогло.... Вернулись к переключению PLL.. П...   Dec 21 2011, 12:48
- - aaarrr   А если попробовать расположить в ОЗУ переключатель...   Dec 21 2011, 12:59
- - Aquatik   пробовали __ramfunc не помогло...   Dec 21 2011, 13:02
- - aaarrr   Тогда остаются эксперименты, типа переключиться сн...   Dec 21 2011, 13:05
- - Aquatik   при переходе на slow clock, виснет но намного реже...   Dec 21 2011, 13:30
- - Aquatik   Возможно нашли решения нашей проблемы... При перех...   Dec 22 2011, 12:22
- - D!m@   Здравствуйте. Тоже пришлось переходить на ревизию ...   Oct 17 2012, 11:09


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

 


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


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