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

 
 
> AVR+Fram
Nosaer
сообщение Apr 24 2016, 10:20
Сообщение #1


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

Группа: Свой
Сообщений: 85
Регистрация: 6-02-15
Пользователь №: 84 967



Доброго всем времени суток.
Столкнулся с проблемой при работе с FRAM по SPI (MR45V*), вроде как практически тоже самое что и FM25CL.

Пытаюсь считать статус памяти, выдает или 0x00(преимущественно) или 0xFF. Но явно не то, что я ожидаю увидеть.


Код
void SPIE_init()
{    
    PORTE.DIRCLR = (1<<SPIMISO);
    PORTE.DIRSET = (1<<SPIMOSI) | (1<<SPISCK) | (1<<SPICS);
    PORTE.OUTSET = (1<<SPICS);
    SPIE.CTRL = SPI_ENABLE_bm | SPI_MASTER_bm | SPI_MODE_0_gc | SPI_PRESCALER_DIV4_gc;
}


void FeRAM_out(void)
{    
    // Тут пытаюсь изменить статус памяти
    PORTE.OUTCLR = (1<<SPICS);                                                    // Включаем ChipSelect
    SPIE.DATA = 0x06;                                                            // Устанавливаю бит разрешения записи
    while( !(SPIE_STATUS & SPI_IF_bm) );                                            // Жду когда отправится
    PORTE.OUTSET = (1<<SPICS);                                                    // Выключаем ChipSelect
    
       // Здесь пытаюсь считать статус
    PORTE.OUTCLR = (1<<SPICS);                                                    // Включаем ChipSelect
    SPIE.DATA = 0x05;                                                            // Еще раз Отправка команды на получение статуса
    while( !(SPIE_STATUS & SPI_IF_bm) );                                            // Жду ответа об отправке
    StatusSRWD = SPIE.DATA;                                                        // Получаю ответ
    sendCharE0(StatusSRWD);                                                     // Скидываю ответ по UART для наглядности
    PORTE.OUTSET = (1<<SPICS);                                                    // Выключаем ChipSelect
}


#WP и #HOLD подтянуты к питанию.
Вроде бы простая память, но где то накосячил и не могу выцепить ошибку(

Сообщение отредактировал Nosaer - Apr 24 2016, 11:23
Прикрепленные файлы
Прикрепленный файл  MR45V256.pdf ( 267.15 килобайт ) Кол-во скачиваний: 58
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nosaer
сообщение Apr 25 2016, 13:25
Сообщение #2


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

Группа: Свой
Сообщений: 85
Регистрация: 6-02-15
Пользователь №: 84 967



Добрался до осциллографа, на линии SO у меня нет совершенно никакого ответа.
Плюс линия SCK не тактируется в том промежутке, когда должен идти ответ. Получается он даже не пытается получить ответ.
П.С. микроконтроллер XMEGA256A3AU
Go to the top of the page
 
+Quote Post
Lagman
сообщение Apr 25 2016, 15:38
Сообщение #3


Знающий
****

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



Цитата(Nosaer @ Apr 25 2016, 16:25) *
Добрался до осциллографа, на линии SO у меня нет совершенно никакого ответа.
Плюс линия SCK не тактируется в том промежутке, когда должен идти ответ. Получается он даже не пытается получить ответ.
П.С. микроконтроллер XMEGA256A3AU

Наверно (у других процессоров так), чтобы тактировался ответ надо в выходной буфер положить FF и начать его передавать.
Go to the top of the page
 
+Quote Post



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

 


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


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