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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Не получается соединить STM32L152 и N25Q128!
Sergiocars
сообщение Mar 11 2014, 18:40
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 11-03-14
Пользователь №: 80 887



Кто работал с этой памятью, может кто-нибудь что-нибудь посоветовать?
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Mar 12 2014, 03:02
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Если это Micron Serial NOR Flash Memory то работал с N25Q256 и N25Q512. Они подобные. По размеру отличаются только.
Go to the top of the page
 
+Quote Post
Sergiocars
сообщение Mar 12 2014, 03:33
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 11-03-14
Пользователь №: 80 887



Да оно! Не могу записать в память
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 12 2014, 03:37
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Sergiocars @ Mar 12 2014, 05:33) *
Да оно! Не могу записать в память
Или что-то неправильно делаете, или память дохлая или процессор или замыкание на плате. Вероятнее всего первое.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Mar 12 2014, 03:42
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Подключена как? Extended SPI режим или полный? Если extended то проверить куда подключены ноги "Write protect" и "Hold".
Чтение с нее выполняется? Если можно прочитать то:
1. читаем статус командой RDSR.
2. проверяем в ответе бит WEL - Write Enable
3. если он не выставлен - разрешаем запись через команду WREN
Go to the top of the page
 
+Quote Post
Harvester
сообщение Mar 12 2014, 03:55
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(Сергей Борщ @ Mar 12 2014, 07:37) *
Или что-то неправильно делаете, или память дохлая или процессор или замыкание на плате. Вероятнее всего первое.

Также стоит проверить биты защиты BP0:3 в регистре состояния. Мне встречались модели NOR Flash, у которых по-умолчанию все сектора были защищены от записи


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
Sergiocars
сообщение Mar 12 2014, 03:55
Сообщение #7





Группа: Участник
Сообщений: 14
Регистрация: 11-03-14
Пользователь №: 80 887



Если ничего не меняю изначально, то режим Extended SPI, так?!! Ноги подвешены к питанию VCC! Отсылаю команду 05h read status register, ответ 00h. Следовательно бит write enable =0. Делаю команду write enable 06h, опять читаю status register тоже самое 00h.
Go to the top of the page
 
+Quote Post
Harvester
сообщение Mar 12 2014, 03:57
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(Sergiocars @ Mar 12 2014, 07:55) *
Если ничего не меняю изначально, то режим Extended SPI, так?!! Ноги подвешены к питанию VCC! Отсылаю команду 05h read status register, ответ 00h. Следовательно бит write enable =0. Делаю команду write enable 06h, опять читаю status register тоже самое 00h.

Скорее всего, что-то не то в настрйках интерфейса. Добейтесь нормального ответа на команду Read Id.


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
Sergiocars
сообщение Mar 12 2014, 04:04
Сообщение #9





Группа: Участник
Сообщений: 14
Регистрация: 11-03-14
Пользователь №: 80 887



Если в status register = 00h, то и биты BP0:3 все равны нулю, так?
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Mar 12 2014, 04:05
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Sergiocars @ Mar 12 2014, 07:55) *
Если ничего не меняю изначально, то режим Extended SPI, так?!! Ноги подвешены к питанию VCC! Отсылаю команду 05h read status register, ответ 00h. Следовательно бит write enable =0. Делаю команду write enable 06h, опять читаю status register тоже самое 00h.


ну причин много если даже чтения нет:
- дохлый чип
- неверно подключен
- неверно инициализирован SPI на процессоре

CS программный или аппаратный?

посмотреть бы еще на инициализацию SPI В программе
Go to the top of the page
 
+Quote Post
Sergiocars
сообщение Mar 12 2014, 04:12
Сообщение #11





Группа: Участник
Сообщений: 14
Регистрация: 11-03-14
Пользователь №: 80 887



При команде read id 9eh выдает : 00 c1 00 00 00 01 00 00 01 00 06 00 08 40 00 00 e0 00 00 00 при 9fh тоже самое выдает
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Mar 12 2014, 04:20
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Sergiocars @ Mar 12 2014, 08:12) *
При команде read id 9eh выдает : 00 c1 00 00 00 01 00 00 01 00 06 00 08 40 00 00 e0 00 00 00 при 9fh тоже самое выдает


это, imho, кривой ответ.

на основании DS ответ на эту команду от памяти должен начинаться так:
20h, BAh, 18h, ...
т.е. надо начинать смотреть с подключения и инициализации SPI в программе
Go to the top of the page
 
+Quote Post
Harvester
сообщение Mar 12 2014, 04:21
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(Sergiocars @ Mar 12 2014, 08:12) *
При команде read id 9eh выдает : 00 c1 00 00 00 01 00 00 01 00 06 00 08 40 00 00 e0 00 00 00 при 9fh тоже самое выдает

Ну вот видите, совсем не то что должно быть. Проверяйте настройки интерфейса.


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
Sergiocars
сообщение Mar 12 2014, 04:28
Сообщение #14





Группа: Участник
Сообщений: 14
Регистрация: 11-03-14
Пользователь №: 80 887



Инициализация порта:

RCC->AHBENR |= RCC_AHBENR_GPIOBEN;

//PB15(MOSI), PB14(MISO), PB13(SCK), PB12(NSS) - AF, Push-Pull, AF5(SPI1)
GPIOB->MODER |= GPIO_MODER_MODER15_1 | GPIO_MODER_MODER14_1 | GPIO_MODER_MODER13_1 | GPIO_MODER_MODER12_1; //Alternate function
GPIOB->OTYPER &= ~(GPIO_OTYPER_OT_15 | GPIO_OTYPER_OT_14 | GPIO_OTYPER_OT_13 | GPIO_OTYPER_OT_11); //Push-Pull
GPIOB->AFR[1] |= (5<<28 | 5<<24 | 5<<20 | 5<<16); //PB15, PB14, P13, PB12 = AF5


Инициализация spi:

RCC->APB1ENR |= RCC_APB1ENR_SPI2EN; // SPI2
SPI2->CR1 |= SPI_CR1_BR_2 | SPI_CR1_BR_0; //Baud rate
SPI2->CR1 &= ~SPI_CR1_CPOL; //
SPI2->CR1 &= ~SPI_CR1_CPHA; //
SPI2->CR1 &= ~SPI_CR1_DFF; //8
SPI2->CR1 &= ~SPI_CR1_LSBFIRST; //MSB
SPI2->CR1 |= SPI_CR1_SSM; // NSS
SPI2->CR1 |= SPI_CR1_SSI; //
SPI2->CR1 |= SPI_CR1_MSTR; // Master
SPI2->CR1 |= SPI_CR1_SPE; // SPI2 enable


Функция отправки байта:

void spi_s(uint8_t data) {
SPI2->DR = data;
while(!(SPI2->SR & SPI_SR_TXE));

К примеру отсылка команды 06h:

SPI2->CR2 |= SPI_CR2_SSOE; программно понижаю СS
spi_s(0x06); отправляю 06h
for (i=0;i<100;i++); небольшую задержку чтоб точно все успело уйти
SPI2->CR2 &= ~SPI_CR2_SSOE; программно повышаю СS

Сообщение отредактировал Sergiocars - Mar 12 2014, 04:30
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Mar 12 2014, 04:40
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Sergiocars @ Mar 12 2014, 08:28) *
Инициализация порта:

SKIP

Функция отправки байта:

void spi_s(uint8_t data) {
SPI2->DR = data;
while(!(SPI2->SR & SPI_SR_TXE));

К примеру отсылка команды 06h:

SPI2->CR2 |= SPI_CR2_SSOE; программно понижаю СS
spi_s(0x06); отправляю 06h
for (i=0;i<100;i++); небольшую задержку чтоб точно все успело уйти
SPI2->CR2 &= ~SPI_CR2_SSOE; программно повышаю СS


инициализация верно а вот передача/прием как то странно.

не думаю что CS при такой инициализации будет верно работать.
я инициализирую только MOSI,MISO,CLK ноги а CS дергаю сам как физическую

и задержка не нужна если сделать вот так

uint8_t spi_s(uint8_t data)
{
SPI2->DR = data;
while (!(SPI2->SR & SPI_SR_RXNE));
return SPI2->DR;
}

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:46
Рейтинг@Mail.ru


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