misyachniy 0 2 марта, 2015 Опубликовано 2 марта, 2015 · Жалоба Мне нужно использовать SD карточку в 4 битном режиме. Взял пример USB mass Storage от iar stm32f103ze sk С наскоку не заработала. Начал смотреть инициализацию SD интерфейса. В начальный момент должны работать CLK и CMD линии. По CLK идут стробы, по CMD - постоянный уровень 1. Схема подключения у меня аналогична, по этому только отрезал лишнее. void _SdInit (void) { GPIO_InitTypeDef GPIO_InitStructure; // GPIO enable clock and release Reset RCC_APB2PeriphResetCmd( RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, DISABLE); RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE); /* // Init CP pin GPIO_InitStructure.GPIO_Pin = _CP_MASK; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(_CP_PORT, &GPIO_InitStructure); // Init WP pin GPIO_InitStructure.GPIO_Pin = _WP_MASK; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(_WP_PORT, &GPIO_InitStructure); */ // GPIOC and GPIOD Periph clock enable RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE); // Configure PC.08, PC.09, PC.10, PC.11, PC.12 pin: D0, D1, D2, D3, CLK pin GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); // Configure PD.02 CMD line GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_Init(GPIOD, &GPIO_InitStructure); /* Enable the SDIO AHB Clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_SDIO, ENABLE); // Enable the DMA2 Clock RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE); SDIO_DeInit(); } SDIO_CMD ремапиться c TIM3_ETR/UART5_RX, но я не могу найти ни одного примера с ремапом. Может его не нужно ремапить, а проблема в другом месте? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kostya-m 0 3 марта, 2015 Опубликовано 3 марта, 2015 · Жалоба По вашему коду не видно, все ли выводы инициализируются в нужную альтернативную функцию вызовами а-ля GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_SDIO); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 5 марта, 2015 Опубликовано 5 марта, 2015 · Жалоба По вашему коду не видно, все ли выводы инициализируются в нужную альтернативную функцию вызовами а-ля GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_SDIO); Ремапить ничего не нужно подтянулCMD к 3.3 В резистором и карточка заработала. Не понял только как я видел постоянную 1 на этом выводе? Наверное просчитался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться