| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| SST25VF016B http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=10156 |
Страница 1 от 3 |
| Автор: | eddiesoft [ Вто Май 22, 2012 7:11 pm ] |
| Заглавие: | 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); } Опитвам се да запиша един байт и да го прочета и не става. Някой ако може да даде някаква идея - бирата му е в кърка вързана |
|
| Автор: | fan [ Вто Май 22, 2012 7:57 pm ] |
| Заглавие: | Re: SST25VF016B |
Здравей! А ти клоковете на портовете и AFIO пускаш ли? Конфигурира ли и самите алтернативни пинове(ремапване)? Това ли ти е целия код за конфигуриране? |
|
| Автор: | Zdrav [ Вто Май 22, 2012 9:50 pm ] |
| Заглавие: | Re: SST25VF016B |
Едно от нещата, които понякога се пропускат е че има период от време след power up, през който устройствата не са достъпни или не изпълняват коректно командите. Сложи един таймаут в кода си веднага след reset на процесора и преди да си пуснал първия байт по SPI към SST25VF016B. Виж "Power-Up Specifications" в datasheet-а на SST25VF016B. |
|
| Автор: | eddiesoft [ Вто Май 22, 2012 10:19 pm ] |
| Заглавие: | Re: SST25VF016B |
Клоковете са пуснати. Има още няколко периферни устройства които си работят нормално. Вярно, че не са на SPI1, но работят нормално... А таймаута след вдигане а захранването го имам. А и дори да го няма - има тфт дисплей, на който се рисува лого, седи известно време и тогава вече започва работа всичко останало. Някакви други идеи? |
|
| Автор: | fan [ Вто Май 22, 2012 10:30 pm ] | |||||||||
| Заглавие: | 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 Нещо от рода на:
|
||||||||||
| Автор: | eddiesoft [ Вто Май 22, 2012 10:37 pm ] |
| Заглавие: | Re: SST25VF016B |
И това да го направа вход съм го пробвал, нищо, че не намерих пример в който да е така конфигуриран, но и това съм го пробвал. И това не е ключа за палатката... |
|
| Автор: | fan [ Вто Май 22, 2012 10:41 pm ] |
| Заглавие: | Re: SST25VF016B |
Примери има колкото щеш по въпроса, погледни ги в стандартната STM32F1x библиотека. Проблема е при теб, но къде точно вече си е хардуерно-софтуерна загатка на предклавиатурното устройство, прегледай внимателно и какво и как си навързал?! |
|
| Автор: | eddiesoft [ Вто Май 22, 2012 11:06 pm ] |
| Заглавие: | Re: SST25VF016B |
То е ясно, че проблема е някъде в задклавиатурното устройство. Всичко е навързано правилно. На всички пинове (вход, изход, клок, чип селект) на флашчето с осцилоскопа се виждат видимо нормални импулси. Вярно, че нямам логик анализатор да ги видя какво е.... |
|
| Автор: | fan [ Вто Май 22, 2012 11:12 pm ] |
| Заглавие: | Re: SST25VF016B |
Ами след инициализацията следва логиката на писане и четене, там как е? Направи ли си функциите и последователността? |
|
| Автор: | eddiesoft [ Вто Май 22, 2012 11:36 pm ] |
| Заглавие: | Re: SST25VF016B |
Ами и тях няколко пъти ги писах. И от примери готови вземах и пак съм на същата начална позиция |
|
| Автор: | Zdrav [ Сря Май 23, 2012 6:20 am ] |
| Заглавие: | Re: SST25VF016B |
Не съм проверявал точно какво правиш в инициализацията, но ето още един вариант: Преди време имах проблем с SPI на STM32F103. Всичко тръгна когато ремапнах, сигнали от други периферии, които споделяха пиновете с SPI. Ремапнах ги настрани от пиновете на SPI. Или може и да бъркам, може би просто използвах другия комплект пинове за SPI, които не бяха споделени с други периферии. Все още бях на ниво експериментална платка и имах такава възможност. Има описани подобни фийчъри в ератата. |
|
| Автор: | fan [ Чет Май 24, 2012 12:55 pm ] | ||||||||||||||||||||||||||||||||||||
| Заглавие: | Re: SST25VF016B | ||||||||||||||||||||||||||||||||||||
... да още една грешка:
трябва да е:
Иначе ако искаш тази настройка да остане трябва да промениш:
на:
Правих преди време библиотека точно за този чип - за PIC18 и с леки корекции за MSP430. Сега я преправих за STM32L. Работи с горепосочените настройки. |
|||||||||||||||||||||||||||||||||||||
| Автор: | eddiesoft [ Нед Май 27, 2012 6:28 pm ] |
| Заглавие: | Re: SST25VF016B |
И това не оправи ситуацията.... Пробвах и четирите комбинации за всеки случай. Дигах и прескалера (свалях скоростта)... пак няма желание... Някакви други идеи или някоя работеща библиотека за тая пущина някой да даде? |
|
| Автор: | eddiesoft [ Чет Май 31, 2012 12:33 pm ] |
| Заглавие: | Re: SST25VF016B |
Написах си целия SPI, без да използвам този на STM-ката за да избегна неправилната инициализация, но пак не стана. Смених и паметта. Крайният резултат е същия. Някой може ли да даде някакво решение, че останалия проект е готов и по незнайно какви си нейни причини Някой ще удари ли едно рамо, че има едни бири които чакат новия си собственик |
|
| Автор: | Цецо [ Чет Май 31, 2012 1:11 pm ] |
| Заглавие: | Re: SST25VF016B |
Ти осцилоскоп нямаш ли? |
|
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|