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

 
 
> SPI0 в режиме Master уходит в Disable при попытке отправить байт (AT91SAM7X128), Если на PA12 (NPCS0) установлен низкий уровень и PA12 - порт ввода!
Pasha 111
сообщение Oct 28 2010, 06:16
Сообщение #1


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

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



Всем привет!
Возникла у меня вот такая проблема, на которую потратил весь вчерашний день.

Использую SPI0 на AT91SAM7X128 в режиме Master для передачи байта устройству, висящему на NPSC3 (есть ещё другое на NPCS2, но с ним всё аналогично). Настраиваю ножки процессора для работы с периферией А (с включёнными pull-up'ами):
SPI0_NPCS2 (PA14)
SPI0_NPCS3 (PA15)
SPI0_MISO (PA16)
SPI0_MOSI (PA17)
SPI0_SPCK (PA18)

Вот настройки PIOA:


Дальше инициализирую SPI0. Всё нормально работает, пока на PA12 (SPI0_NPCS0) не установится низкий уровень.

Тогда после выполнения строчки:
Код
AT91C_BASE_SPI0->SPI_TDR = (frame & 0xFFFF) | (0x07 << 16) |
                AT91C_SPI_LASTXFER;

где frame = 0x06 - посылаемые данные,
состояние SPI0 меняется так:



SPIENS становится = 0, т.е. SPI0 переходит в disable. После этого SPI0 уже, естественно, не работает, и флаг AT91C_SPI_RDRF в Status Register не появляется. Причём изначально PA12 работал как порт ввода, когда на нём возникал низкий уровень происходил описанный глюк. Тогда я пошёл дальше, решил сделать его портом вывода. При установке на нём нуля происходит всё тоже самое! Как этот порт может влиять на SPI0, когда настроен как порт, а не как SPI0_NPCS0?

Да, на плате ещё используется SPI1, он нормально работает при этом. Если на PA12 высокий уровень, то SPI0 тоже нормально работает.

P.S. Порт PA12 идёт сразу в разъём, к нему только внешний PullUp подключается.
Go to the top of the page
 
+Quote Post



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

 


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


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