| Автор |
Съобщение |
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 5:44 pm Мнения: 90
|
 SST25VF016B
Здравейте, опитвам се да пиша и съответно да чета тази SPI Falsh със STM32. Всичко останало работи, но има някакъв проблем с тази памет и не мога да разбера в инициализацията ли бъркам или къде. Това ми е инициализацията на пиновете за SPI1 //инциализация пиновете за флаша ------------------------------------------------------------------------------------------ //SCK - PA5 ; MSIO - PA6 ; MOSI - PA7 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_5 | GPIO_Pin_7; GPIO_Init(GPIOA, &GPIO_InitStructure); //CS - PA4 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_4); //SPI CS //-------------------------------------------------------------------------------------------------------------------------- а това ми е инициализацията на SPI void SPI1_Init(void) { DeSelect_Flash(); SPI_InitTypeDef SPI_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 , ENABLE); SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_InitStructure.SPI_CRCPolynomial = 7; SPI_Init(SPI1, &SPI_InitStructure); SPI_SSOutputCmd(SPI1,ENABLE); SPI_Cmd(SPI1, ENABLE); }
Опитвам се да запиша един байт и да го прочета и не става. Някой ако може да даде някаква идея - бирата му е в кърка вързана
|
| Вто Май 22, 2012 7:11 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
 Re: SST25VF016B
Здравей! А ти клоковете на портовете и AFIO пускаш ли? Конфигурира ли и самите алтернативни пинове(ремапване)? Това ли ти е целия код за конфигуриране?
|
| Вто Май 22, 2012 7:57 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
 Re: SST25VF016B
Едно от нещата, които понякога се пропускат е че има период от време след power up, през който устройствата не са достъпни или не изпълняват коректно командите. Сложи един таймаут в кода си веднага след reset на процесора и преди да си пуснал първия байт по SPI към SST25VF016B. Виж "Power-Up Specifications" в datasheet-а на SST25VF016B.
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Вто Май 22, 2012 9:50 pm |
|
 |
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 5:44 pm Мнения: 90
|
 Re: SST25VF016B
Клоковете са пуснати. Има още няколко периферни устройства които си работят нормално. Вярно, че не са на SPI1, но работят нормално... А таймаута след вдигане а захранването го имам. А и дори да го няма - има тфт дисплей, на който се рисува лого, седи известно време и тогава вече започва работа всичко останало. Някакви други идеи?
|
| Вто Май 22, 2012 10:19 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
 Re: SST25VF016B
@ zdrav Да, точно! Пък то понякога трябва и човек(визирам себе си) да погледне и в кода на питащия за да открие проблема, а последния да чете повечко документацията и примерите! -For alternate function inputs, the port must be configured in Input mode (floating, pullup or pull-down) and the input pin must be driven externally. -For alternate function outputs, the port must be configured in Alternate Function Output mode (Push-Pull or Open-Drain). -For bidirectional Alternate Functions, the port bit must be configured in Alternate Function Output mode (Push-Pull or Open-Drain). In this case the input driver is configured in input floating mode Нещо от рода на:
|
| Вто Май 22, 2012 10:30 pm |
|
 |
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 5:44 pm Мнения: 90
|
 Re: SST25VF016B
И това да го направа вход съм го пробвал, нищо, че не намерих пример в който да е така конфигуриран, но и това съм го пробвал. И това не е ключа за палатката...
|
| Вто Май 22, 2012 10:37 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
 Re: SST25VF016B
Примери има колкото щеш по въпроса, погледни ги в стандартната STM32F1x библиотека. Проблема е при теб, но къде точно вече си е хардуерно-софтуерна загатка на предклавиатурното устройство, прегледай внимателно и какво и как си навързал?! 
|
| Вто Май 22, 2012 10:41 pm |
|
 |
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 5:44 pm Мнения: 90
|
 Re: SST25VF016B
То е ясно, че проблема е някъде в задклавиатурното устройство. Всичко е навързано правилно. На всички пинове (вход, изход, клок, чип селект) на флашчето с осцилоскопа се виждат видимо нормални импулси. Вярно, че нямам логик анализатор да ги видя какво е....
|
| Вто Май 22, 2012 11:06 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
 Re: SST25VF016B
Ами след инициализацията следва логиката на писане и четене, там как е? Направи ли си функциите и последователността?
|
| Вто Май 22, 2012 11:12 pm |
|
 |
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 5:44 pm Мнения: 90
|
 Re: SST25VF016B
Ами и тях няколко пъти ги писах. И от примери готови вземах и пак съм на същата начална позиция
|
| Вто Май 22, 2012 11:36 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
 Re: SST25VF016B
Не съм проверявал точно какво правиш в инициализацията, но ето още един вариант: Преди време имах проблем с SPI на STM32F103. Всичко тръгна когато ремапнах, сигнали от други периферии, които споделяха пиновете с SPI. Ремапнах ги настрани от пиновете на SPI. Или може и да бъркам, може би просто използвах другия комплект пинове за SPI, които не бяха споделени с други периферии. Все още бях на ниво експериментална платка и имах такава възможност. Има описани подобни фийчъри в ератата.
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Сря Май 23, 2012 6:20 am |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
 Re: SST25VF016B
... да още една грешка: трябва да е: Иначе ако искаш тази настройка да остане трябва да промениш: на: Правих преди време библиотека точно за този чип - за PIC18 и с леки корекции за MSP430. Сега я преправих за STM32L. Работи с горепосочените настройки.
|
| Чет Май 24, 2012 12:55 pm |
|
 |
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 5:44 pm Мнения: 90
|
 Re: SST25VF016B
И това не оправи ситуацията.... Пробвах и четирите комбинации за всеки случай. Дигах и прескалера (свалях скоростта)... пак няма желание... Някакви други идеи или някоя работеща библиотека за тая пущина някой да даде?
|
| Нед Май 27, 2012 6:28 pm |
|
 |
|
eddiesoft
Ранг: Минаващ
Регистриран на: Нед Фев 04, 2007 5:44 pm Мнения: 90
|
 Re: SST25VF016B
Написах си целия SPI, без да използвам този на STM-ката за да избегна неправилната инициализация, но пак не стана. Смених и паметта. Крайният резултат е същия. Някой може ли да даде някакво решение, че останалия проект е готов и по незнайно какви си нейни причини  паметичката просто не проявява желание да ми съдейства... Някой ще удари ли едно рамо, че има едни бири които чакат новия си собственик
|
| Чет Май 31, 2012 12:33 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 Re: SST25VF016B
Ти осцилоскоп нямаш ли?
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Чет Май 31, 2012 1:11 pm |
|
|