|
|
  |
STM32 – вопросы – проблемы - решения. |
|
|
|
Mar 7 2012, 06:21
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(scifi @ Mar 6 2012, 23:31)  Легко. Кто знает, что внутри этой подпрограммы? Что значит "кто"? Выше дан ее исходник, там просто счет. Цитата И "счёт" - не самый объективный способ оценивать скорость процессора. Я не скорость процессора оцениваю, а время выполнения куска программы. Цитата К сведению: 50 МГц - это настройка крутизны фронтов драйвера порта. Я в курсе, но при задании фронта к примеру в 2мгц, заставлять дрыгать ножкой с частотой 10мгц как-то не очень корректно
|
|
|
|
|
Mar 8 2012, 21:19
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(valera_o @ Mar 4 2012, 21:47)  Вопрос второй. Не понял с ногой NSS, можно ли ее аппаратно использовать для разрешения работы микрухи памяти? Или уже проще просто программно дергать любой удобной ногой? Если SPI - мастер, NSS надо управлять как обычным GPIO. Или любой другой ногой. Хотите "правильный" NSS, берите кортексы от NXP.
|
|
|
|
|
Mar 10 2012, 16:23
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 2-04-08
Пользователь №: 36 402

|
Каким программатором можно внутрисхемно зашить микросхему памяти spi при питании 3В?
Сообщение отредактировал valera_o - Mar 10 2012, 16:30
|
|
|
|
|
Mar 19 2012, 10:59
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 2-04-08
Пользователь №: 36 402

|
Есть необходимость переместить SPI1 на другие выводы, т.е. ремапить. Инициализирую таким образом. CODE void SPI_init(void) { // spi B3 SCK,B4 MISO,B5 MOSI, А15 NSS
AFIO->MAPR |= AFIO_MAPR_SPI1_REMAP;
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
// SS GPIOA->CRH |= GPIO_CRH_MODE15; //A15 GPIOA->CRH &= ~GPIO_CRH_CNF15; // GPIOA->BSRR = GPIO_BSRR_BS15; //
//SCK GPIOB->CRL |= GPIO_CRL_MODE3; //B3 GPIOB->CRL &= ~GPIO_CRL_CNF3; // GPIOB->CRL |= GPIO_CRL_CNF3_1; // // MISO GPIOB->CRL &= ~GPIO_CRL_MODE4; //B4 GPIOB->CRL &= ~GPIO_CRL_CNF4; // GPIOB->CRL |= GPIO_CRL_CNF4_1; // GPIOB->BSRR = GPIO_BSRR_BS4; // //MOSI GPIOB->CRL |= GPIO_CRL_MODE5; //B5 GPIOB->CRL &= ~GPIO_CRL_CNF5; // GPIOB->CRL |= GPIO_CRL_CNF5_1; //
RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; SPI1->CR1 = 0x0000; // SPI1->CR2 = 0x0000; // SPI1->CR1 |=SPI_CR1_MSTR // | SPI_CR1_BR_1 // | SPI_CR1_SSI // | SPI_CR1_SSM // | SPI_CR1_SPE; // }
Не работает. Без ремапа, на обычных ногах работает нормально. Что поправить? добавить?
Сообщение отредактировал IgorKossak - Mar 19 2012, 15:41
Причина редактирования: [codebox]!!!
|
|
|
|
|
Mar 19 2012, 11:27
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (valera_o @ Mar 19 2012, 12:59)  Что поправить? А не надо ли эти две строчки местами поменять? CODE AFIO->MAPR |= AFIO_MAPR_SPI1_REMAP;
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; QUOTE Note: To read/write the AFIO_EVCR, AFIO_MAPR, AFIO_MAPR2 and AFIO_ EXTICRX registers, the AFIO clock should first be enabled. Refer to APB2 peripheral clock enable register (RCC_APB2ENR).
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 19 2012, 12:07
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 2-04-08
Пользователь №: 36 402

|
Спасибо. поменял. не помогло. Нашел. По сбросу на PB3,PB4, PA15 используются для отладки по jtag.
AFIO->MAPR |=AFIO_MAPR_SWJ_CFG_JTAGDISABLE; Заработало. SPI1 перенесен на альтернативные ноги.
Сообщение отредактировал valera_o - Mar 19 2012, 19:40
|
|
|
|
|
Mar 20 2012, 06:27
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 2-04-08
Пользователь №: 36 402

|
Развожу плату под stm32f100c4. Помогите правильно определиться с ногами необходимыми для программирования SWD, есть плата Дискавери. Я так понял, что необходимы ноги SWDIO, SWDCLK, Vss, Vdd. Что делать с ногами BOOT0 и BOOT1?
|
|
|
|
|
Mar 20 2012, 08:16
|
Участник

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160

|
Цитата(valera_o @ Mar 20 2012, 12:27)  Что делать с ногами...? Я бы рекомендовал вам почитать Reference manual RM0041 STM32F100xx advanced ARM-based 32-bit MCUs. Но не раздел 2.4 Boot configuration в котором есть таблица 6 в которой написано что же делать с этими ногами. И не 25.4.1 SWJ debug port pins где написано про выводы JTAG и SW, а хотя бы на раз по диагонали просмотреть весь документ. Уверен вы узнаете много нового и полезного. И знания эти помогут избежать ошибок... ну и даташит никто не отменял...
Сообщение отредактировал Alfa - Mar 20 2012, 08:17
|
|
|
|
|
Mar 20 2012, 08:25
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 2-04-08
Пользователь №: 36 402

|
Спасибо за ответы. Нужно запрограммировать и запускать main из собственной памяти контроллера. Сейчас открою доки, просмотрю. Это мечта - взять и прочитать весь документ. Стоит конкретная задача, конкретная периферия, вот и читается сначала то, что необходимо.
Сообщение отредактировал valera_o - Mar 20 2012, 08:36
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|