Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-STM32F217
SRAM
odmin
Добавлено 01.12.2011 14:36
0
Сообщение: 1
odmin
4.5

Пункты: 261
Регистрация: 21.07.2011
Не могу запустить общение со SRAM.
Код взял из примера с веб-сервером.
При чтении из адресов - считываются нули...

Подпись:
Это текст, который будет добавлять к размещаемым сообщениям.
Спуститься к концу Подняться к началу
Персональная информация
odmin
Добавлено 01.12.2011 17:25 Сообщение: 2
odmin
4.5

Пункты: 261
Регистрация: 21.07.2011
Позор мне!
Вместо RCC_AHB1PeriphClockCmd(...,ENABLE)
использовал RCC_AHB1PeriphResetCmd(...,ENABLE)

сейчас все работает.

Подпись:
Это текст, который будет добавлять к размещаемым сообщениям.
Спуститься к концу Подняться к началу
Персональная информация
lexanet
Добавлено 02.04.2012 14:40 Редактировалось 02.04.2012 14:44 Сообщение: 3
lexanet
0

Пункты: 928
Регистрация: 30.03.2011
Пол: Мужчина
Из: Анапа, Россия
Поделитесь, пожалуйста, инициализацией, а то что то не робит у меня :(

Код

void FSMC_SRAM_Init(void)
{
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure_LCD;
FSMC_NORSRAMTimingInitTypeDef p;
FSMC_NORSRAMTimingInitTypeDef p_LCD;

GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOD, ENABLE);
RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOG, ENABLE);
RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOE, ENABLE);
RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOF, ENABLE);

RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE);

GPIO_PinAFConfig(GPIOD, GPIO_Pin_0, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_1, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_4, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_5, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_7, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_11, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_12, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_13, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_14, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_Pin_15, GPIO_AF_FSMC);

GPIO_PinAFConfig(GPIOE, GPIO_Pin_7, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_Pin_8, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_Pin_9, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_Pin_10, GPIO_AF_FSMC);

GPIO_PinAFConfig(GPIOF, GPIO_Pin_0, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_1, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_2, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_3, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_4, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_5, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_12, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_13, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_14, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOF, GPIO_Pin_15, GPIO_AF_FSMC);

GPIO_PinAFConfig(GPIOG, GPIO_Pin_0, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_Pin_1, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_Pin_2, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_Pin_3, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_Pin_4, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_Pin_5, GPIO_AF_FSMC);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 |
GPIO_Pin_7 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 |
GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
GPIO_Pin_4 | GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOF, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 |
GPIO_Pin_7 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 |
GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOG, &GPIO_InitStructure);

p.FSMC_AddressSetupTime = 3;
p.FSMC_AddressHoldTime = 0;
p.FSMC_DataSetupTime = 8;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_A;

FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;

FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

/* Enable FSMC Bank1_SRAM Bank */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);

p_LCD.FSMC_AddressSetupTime = 5;
p_LCD.FSMC_AddressHoldTime = 0;
p_LCD.FSMC_DataSetupTime = 10;
p_LCD.FSMC_BusTurnAroundDuration = 0;
p_LCD.FSMC_CLKDivision = 0;
p_LCD.FSMC_DataLatency = 0;
p_LCD.FSMC_AccessMode = FSMC_AccessMode_A;

FSMC_NORSRAMInitStructure_LCD.FSMC_Bank = FSMC_Bank1_NORSRAM2;
FSMC_NORSRAMInitStructure_LCD.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
FSMC_NORSRAMInitStructure_LCD.FSMC_MemoryType = FSMC_MemoryType_SRAM;
FSMC_NORSRAMInitStructure_LCD.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;
FSMC_NORSRAMInitStructure_LCD.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure_LCD.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure_LCD.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure_LCD.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure_LCD.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure_LCD.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure_LCD.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
FSMC_NORSRAMInitStructure_LCD.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure_LCD.FSMC_ReadWriteTimingStruct = &p_LCD;
FSMC_NORSRAMInitStructure_LCD.FSMC_WriteTimingStruct = &p_LCD;

FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure_LCD);

/* Enable FSMC Bank1_SRAM Bank */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM2, ENABLE);

}
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-STM32F217