Перейти к содержанию
    

Sergiocars

Участник
  • Постов

    14
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Начал дергать СS отдельно пином порта, все заработало!!!! Спасибо всем, особенно zealot, harvester, haker_fox!!!!
  2. Я перепаял чип на другой такой же с 8ю ногами, а потом и с 16ю ногами, ответ на read id такой же!!! , может я купил не micron, а какого-нибудь другого производителя!!! Хотя покупал микрон, но может подсунули другое!!! По поводу чтения из памяти вроде работает, ответ на команду 03h по адресу 000000h вот такой ffffffffffffffffffff........h и так далее, но когда пишешь командой 02h по адресу 000000h , а потом читаешь командой 03h по тому же самому адресу читается полный бред, не то что ты записал, а иногда просто нули по этому адресу!!!
  3. Выложите пожалуйста функцию записи в память!!!
  4. Перепаяю отпишу посылаю команду 0x9f припаял на питание памяти 0,1 мкФ, отпаял 10 ком от SCK
  5. Скорость SPI ставлю маленькую 32 МГц / 64 = 500 КГц может скорость не та, которая нужна? На сколько кондер поставить? #W, #HOLD, S# (CS) Притянуты к +3V 10КОМ резисторами, а SCK к земле 10 КОМ резитором
  6. А где ты включаешь SPI ? вот этот бит не устанавливаешь: SPI_CR1_SPE; ??? Подключил логический анализатор к CS MOSI MISO SCK все нормально посылается, CS нормально дергается установкой и снятием бита SSOE, как было изначально в моей программе! Вставил твою функцию приема передачи байта, убрал задержки, на логическом анализаторе все идеально, но все равно ответ на readID один и тот же, может чип такой! Хотел спросить может запись делаю не так ?? Какой должен быть алгоритм записи подробно??? И про обвязку памяти хотел спросить какой вывод каким резистором и куда подтягивать, может куда конденсатор вставить, я уже про все варианты думаю, что может быть не правильно!!!
  7. попробую дергать cs по другому и вечером отпишусь
  8. Инициализация порта: 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
  9. При команде read id 9eh выдает : 00 c1 00 00 00 01 00 00 01 00 06 00 08 40 00 00 e0 00 00 00 при 9fh тоже самое выдает
  10. Если в status register = 00h, то и биты BP0:3 все равны нулю, так?
  11. Если ничего не меняю изначально, то режим Extended SPI, так?!! Ноги подвешены к питанию VCC! Отсылаю команду 05h read status register, ответ 00h. Следовательно бит write enable =0. Делаю команду write enable 06h, опять читаю status register тоже самое 00h.
  12. Да оно! Не могу записать в память
  13. Кто работал с этой памятью, может кто-нибудь что-нибудь посоветовать?
×
×
  • Создать...