Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

STM32 FSMC
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=11729
Страница 1 от 1

Автор:  relsys [ Вто Сеп 17, 2013 9:07 pm ]
Заглавие:  STM32 FSMC

Някой борил ли го е тоя контролер?
Дайте някакви насоки за конфигуриране с NOR Flash/SRAM, че нещо не ми става твърде ясно от документацията...

Автор:  miro_atc [ Сря Сеп 18, 2013 9:36 am ]
Заглавие:  Re: STM32 FSMC

Не си първият, който има проблем с документацията ;-)

Кажи по-точно къде е зора.. В нета има поне 4-5 евал платки със схема и flash/ram. Има и примери...
Специално с ST *винаги* проверявай и не разчитай само на документацията ;-)

Автор:  Цецо [ Сря Сеп 18, 2013 10:46 am ]
Заглавие:  Re: STM32 FSMC

Тегаво е за разбиране, особенно настройките на режимите и времената. Аз докато закача едно паралелно LCD на него, брадясах. Общо взето накрая взех скопа и почнах да сменям конфигурациите докато си ги изясня и въпреки това накрая пак нещо не ми се връзваше с документацията, като с евал бордовете им. Ама сега да ме питаш, нищо не помня :) Прекалено отворена е системата и има купища битове за сетване...

Но както ти каза miro - най-много информация излиза от примерите и дев. бордовете. Дейта шита е много трудно смилаем в тая си част.

Автор:  relsys [ Сря Сеп 18, 2013 12:54 pm ]
Заглавие:  Re: STM32 FSMC

Абе аз смятах, настойвах.... нещо е непълно....
Дайте някой пример.

Иначе паметта е : R1LV1616RSA-5, поцесора STM32F207

Автор:  Цецо [ Сря Сеп 18, 2013 1:53 pm ]
Заглавие:  Re: STM32 FSMC

Памет не съм закачал, само LCD.

Автор:  relsys [ Чет Сеп 19, 2013 12:21 pm ]
Заглавие:  Re: STM32 FSMC

Подкарах я, ако на някой му трябва, или пък има забележки...:

Код:
//SRAM Init @Bank2
//MCU: STM32F207 @ 120MHz, no clkdiv
//RAM: R1LV1616RSA-5
void test_SystemInit_ExtMemCtl()
{
/*-- GPIOs Configuration -----------------------------------------------------*/
/*
+-------------------+--------------------+------------------+------------------+
+                       SRAM pins assignment                                  +
+-------------------+--------------------+------------------+------------------+
| PD0  <-> FSMC_D2  | PE0  <-> FSMC_NBL0 | PF0  <-> FSMC_A0 | PG0 <-> FSMC_A10 |
| PD1  <-> FSMC_D3  | PE1  <-> FSMC_NBL1 | PF1  <-> FSMC_A1 | PG1 <-> FSMC_A11 |
| PD4  <-> FSMC_NOE | PE7  <-> FSMC_D4   | PF2  <-> FSMC_A2 | PG2 <-> FSMC_A12 |
| PD5  <-> FSMC_NWE | PE8  <-> FSMC_D5   | PF3  <-> FSMC_A3 | PG3 <-> FSMC_A13 |
| PD8  <-> FSMC_D13 | PE9  <-> FSMC_D6   | PF4  <-> FSMC_A4 | PG4 <-> FSMC_A14 |
| PD9  <-> FSMC_D14 | PE10 <-> FSMC_D7   | PF5  <-> FSMC_A5 | PG5 <-> FSMC_A15 |
| PD10 <-> FSMC_D15 | PE11 <-> FSMC_D8   | PF12 <-> FSMC_A6 | PG9 <-> FSMC_NE2 |
| PD11 <-> FSMC_A16 | PE12 <-> FSMC_D9   | PF13 <-> FSMC_A7 |------------------+
| PD12 <-> FSMC_A17 | PE13 <-> FSMC_D10  | PF14 <-> FSMC_A8 |
| PD14 <-> FSMC_D0  | PE14 <-> FSMC_D11  | PF15 <-> FSMC_A9 |
| PD15 <-> FSMC_D1  | PE15 <-> FSMC_D12  |------------------+
+-------------------+--------------------+
//Add by me:
+ PD13
+ PE3
+ PE4 for flash
*/
  /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */
  RCC_AHB1ENR   = 0x00000078;

  /* Connect PDx pins to FSMC Alternate function */
  GPIOD_AFRL  = 0x00cc00cc;
  GPIOD_AFRH  = 0xcccccccc;
  /* Configure PDx pins in Alternate function mode */
  GPIOD_MODER   = 0xaaaa0a0a;
  /* Configure PDx pins speed to 100 MHz */
  GPIOD_OSPEEDR = 0xffff0f0f;
  /* Configure PDx pins Output type to push-pull */
  GPIOD_OTYPER  = 0x00000000;
  /* No pull-up, pull-down for PDx pins */
  GPIOD_PUPDR   = 0x00000000;

  /* Connect PEx pins to FSMC Alternate function */
  GPIOE_AFRL  = 0xc00cc0cc;
  GPIOE_AFRH  = 0xcccccccc;
  /* Configure PEx pins in Alternate function mode */
  GPIOE_MODER   = 0xaaaa828a;
  /* Configure PEx pins speed to 100 MHz */
  GPIOE_OSPEEDR = 0xffffc3cf;
  /* Configure PEx pins Output type to push-pull */
  GPIOE_OTYPER  = 0x00000000;
  /* No pull-up, pull-down for PEx pins */
  GPIOE_PUPDR   = 0x00000000;

  /* Connect PFx pins to FSMC Alternate function */
  GPIOF_AFRL  = 0x00cccccc;
  GPIOF_AFRH  = 0xcccc0000;
  /* Configure PFx pins in Alternate function mode */
  GPIOF_MODER   = 0xaa000aaa;
  /* Configure PFx pins speed to 100 MHz */
  GPIOF_OSPEEDR = 0xff000fff;
  /* Configure PFx pins Output type to push-pull */
  GPIOF_OTYPER  = 0x00000000;
  /* No pull-up, pull-down for PFx pins */
  GPIOF_PUPDR   = 0x00000000;

  /* Connect PGx pins to FSMC Alternate function */
  GPIOG_AFRL  = 0x00cccccc;
  GPIOG_AFRH  = 0x000000c0;
  /* Configure PGx pins in Alternate function mode */
  GPIOG_MODER   = 0x00080aaa;
  /* Configure PGx pins speed to 100 MHz */
  GPIOG_OSPEEDR = 0x000c0fff;
  /* Configure PGx pins Output type to push-pull */
  GPIOG_OTYPER  = 0x00000000;
  /* No pull-up, pull-down for PGx pins */
  GPIOG_PUPDR   = 0x00000000;

/*-- FSMC Configuration ------------------------------------------------------*/
  /* Enable the FSMC interface clock */
  RCC_AHB3ENR         = 0x00000001;
 
  //rado:130917 INIT FSMC...
  FSMC_BCR2 = 0x00001011;
  FSMC_BTR2 = 0x00010412;;
  FSMC_BWTR2 = 0x00010412;
}

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/