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

 
 
> Проблема с SPI, зависает при обращении к SPDR
Alex Truhin
сообщение Oct 7 2010, 10:33
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 13-04-10
Пользователь №: 56 609



Atmega 128 и память AT45DB321, читаю статус памяти,
SELECT();
status = DF_SPI_RW(StatusReg);
status = DF_SPI_RW(0x00);
DESELECT();

static uint8_t DF_SPI_RW( uint8_t tx )
{
uint8_t rx;
SPDR = tx;
while(!(SPSR & 0x80));
rx = SPDR;
return rx;
}
при первом чтении все ОК, но при повторном чтении, на строке status = DF_SPI_RW(0x00);
программа зависает, т.е. SPSR не взводиться.
Возможно есть проблемы с памятью, но почему не взводится флаг SPSR? Ведь насколько я понимаю,
мастер устройству пофиг на реакцию слэйв устройства на SPI?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
=GM=
сообщение Oct 8 2010, 15:31
Сообщение #2


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Alex Truhin @ Oct 7 2010, 09:33) *
uint8_t rx;
SPDR = tx;
while(!(SPSR & 0x80));
rx = SPDR;
при первом чтении все ОК, но при повторном чтении, на строке status = DF_SPI_RW(0x00); программа зависает, т.е. SPSR не взводиться

Явно есть проблема с периферией МК, нельзя ли оторвать SCLK и MOSI от чипа памяти и повторить тест?

Ещё интересует, почему вы читаете статус памяти, но не дожидаетесь готовности бита BUSY?
Вот кусок из старой библиотеки
Код
//================================================
// Ожидание готовности DataFlash,
// проверяем BUSY в регистре статуса
//------------------------------------------------
//аргументы: нет
//возвращает:значение регистра статуса
//================================================
xByte at45WaitReady(st_at45_Data *pntr)
{
xByte res=0;
SET_CS_DATAFLASH;                               //установим CS для DataFlash
txrxByteSpi(at45_StatusRegRead1, pntr->num);    //передаем номер команды
while (!(res&AT45BUSY))                         //ждем пока не установится
{
  res=txrxByteSpi(0, pntr->num);                //бит READY/nBUSY в регистре
}                                               //статуса DataFlash
RESET_CS_DATAFLASH;                             //сбросим CS для DataFlash
return(res);
}


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alex Truhin   Проблема с SPI   Oct 7 2010, 10:33
- - aesok   Код настройки SPI. Функция DF_SPI_RW - это первая ...   Oct 7 2010, 10:53
- - Alex Truhin   Код настройки: static uint8_t df_GetStatus() { ...   Oct 7 2010, 15:17
|- - Lmx2315   прошу прощения если не на то ссылку даю и если нич...   Oct 7 2010, 17:55
|- - KSANDER   Цитата(Alex Truhin @ Oct 7 2010, 19:17) С...   Oct 8 2010, 07:44
|- - aesok   Как запрограмирован фьюз M103C? Как скомпилировала...   Oct 8 2010, 09:48
- - Alex Truhin   Цитата(KSANDER @ Oct 8 2010, 17:44) Эта с...   Oct 8 2010, 08:50
- - GDI   Ногу WP подтяните к питанию у АТ45. Можно просто с...   Oct 8 2010, 09:26
- - 777777   А не сбрасывает ли кто SPE случайно? Может просто ...   Oct 8 2010, 10:03
|- - Сергей Борщ   Цитата(777777 @ Oct 8 2010, 13:03) А не с...   Oct 8 2010, 10:25
- - Alex Truhin   Ну по порядку: ЦитатаGDI: Ногу WP подтяните к пита...   Oct 8 2010, 10:53
|- - aesok   > 1. как память slave может влиять на SPI ника...   Oct 8 2010, 11:00
|- - GDI   Цитата(Alex Truhin @ Oct 8 2010, 14:53) W...   Oct 8 2010, 11:10
- - alexeyv   А можно поинтересоваться что у Вас с пином SS (исп...   Oct 8 2010, 13:08
|- - V_G   Цитата(alexeyv @ Oct 9 2010, 00:08) А мож...   Oct 8 2010, 14:47
|- - Сергей Борщ   Цитата(V_G @ Oct 8 2010, 17:47) Если вопр...   Oct 8 2010, 21:20
|- - demiurg_spb   Настройте ногу SS на выход, как Вам уже ранее неод...   Oct 10 2010, 12:41
- - GDI   В сообщении №3 все же написано, про входы и выходы...   Oct 8 2010, 13:29
- - Alex Truhin   Спасибо всем за рекомендации и советы, теперь толь...   Oct 8 2010, 17:16
- - alexeyv   ЦитатаА можно поинтересоваться что у Вас с пином S...   Oct 11 2010, 03:48


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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 04:01
Рейтинг@Mail.ru


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