Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 10.09.2011, 08:50  
avs2009
Прописка
 
Аватар для avs2009
 
Регистрация: 10.08.2010
Сообщений: 113
Сказал спасибо: 30
Сказали Спасибо 43 раз(а) в 26 сообщении(ях)
avs2009 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

andries5, залил сюда http://www.onlinedisk.ru/file/729852/
размер 60.4Мб,
Сообщение от kittec Посмотреть сообщение
При запуске COMODO ругается на трояны
Каспер вирусов не находит.
Реклама:
avs2009 вне форума  
Сказали "Спасибо" avs2009
andries5 (10.09.2011)
Непрочитано 10.09.2011, 10:42  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Да, 15 дневный триал - большое зло. Но попробую поставить и посмотреть.

И вот еще несколько вопросов относительно GPIO:
1. В мануале(RM0041) написано что в режиме выхода пин может работать с максимальной скоростью 2,10 или 50 МГц. Конечно 50Мгц - явный перебор т.к. value line работает всего до 24Мгц. Но непонятно следующее: для чего вобще это сделано, как меняются физические свойства пина при изменении скорости(понятно что если дать 10Мгц и настроить на 2 то может не заработать), да и есть ли какие-нибудь критерии и рекомендации по выбору скорости в различных случаях. Типа для уменьшения энергопотребления меньше скорость или не заморачиваться и всегда ставить 50?
2. Регистр APB2ENR разрешает тактирование портов GPIO. Нужно ли для обращения к регистру настройки GPIOx_CRH/CRL включать тактирование соответствующего порта? Если я сконфигурировал CRH/CRL, то могу ли я потом снять с порта тактирование, не сбросит ли это его конфигурацию?
uk8amk вне форума  
Непрочитано 11.09.2011, 09:05  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Всетаки сделал свой велосипед, точнее мастер конфигурации порта. Вроде все работает, но пока полностю не протестировал.

ЗЫ. перед использованием не поленитесь глянуть в ридми.
Миниатюры:
Нажмите на изображение для увеличения
Название: wizard.PNG
Просмотров: 142
Размер:	8.3 Кб
ID:	25883  
Вложения:
Тип файла: rar GPIO Master.rar (13.0 Кб, 121 просмотров)

Последний раз редактировалось uk8amk; 13.09.2011 в 10:07.
uk8amk вне форума  
Эти 4 пользователя(ей) сказали Спасибо uk8amk за это сообщение:
Easyrider83 (11.09.2011), General_Dead (11.09.2011), kozeka (27.03.2012), ^smbd^ (12.09.2011)
Непрочитано 11.09.2011, 09:10  
BolshoyK
Гражданин KAZUS.RU
 
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
BolshoyK на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

uk8amk, Чуть голова не отломилась
Я бы делал повернув на 90градусов. читабельней было бы.
BolshoyK вне форума  
Непрочитано 11.09.2011, 10:11  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Оно конечно так, просто в референс-мануале в такой манере биты расписаны, да и мне как-то удобнее если нумерация по горизонтали. Но пожелания учтем в следующих выпусках(если они будут).
uk8amk вне форума  
Непрочитано 11.09.2011, 12:13  
dadigor
Прописка
 
Аватар для dadigor
 
Регистрация: 10.09.2010
Сообщений: 113
Сказал спасибо: 31
Сказали Спасибо 27 раз(а) в 27 сообщении(ях)
dadigor на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Может быть в буфер обмена копировать сразу в формате: 0x44444444 ?
dadigor вне форума  
Сказали "Спасибо" dadigor
General_Dead (11.09.2011)
Непрочитано 12.09.2011, 12:26  
^smbd^
Частый гость
 
Регистрация: 18.01.2011
Сообщений: 21
Сказал спасибо: 5
Сказали Спасибо 1 раз в 1 сообщении
^smbd^ на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Спасибо всем откликнувшимся. Проблема моя была в отладчике.
Обновил кейл - работает ацп, запускается дма, пишет значения в буфер,выкидывает в прерывание. Возникла другая проблема. ДМА почему-то пишет значения первого и второго каналов не в одни и те же ячейки массива, а вроде бы подряд в большом массиве, но как ни попадя в итоге, то есть могут быть значения в ячейках- [канал 1, канал 2, канал 1..] а могут быть [канал 2, канал 1,канал 2...] и как при этом обрабатывать полученные значения становится не ясно, ибо непонятно где-что.

Последний раз редактировалось ^smbd^; 13.09.2011 в 06:44.
^smbd^ вне форума  
Непрочитано 12.09.2011, 21:12  
qwerky
Вид на жительство
 
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
qwerky на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Как узнать точное количество тактов на команду ? Есть следующая последовательность:
Код:
			*abuf++ = GPIOC-›IDR;
 8000180:	6891      	ldr	r1, [r2, #8]
 8000182:	f843 1c28 	str.w	r1, [r3, #-40]
			*abuf++ = GPIOC-›IDR;
 8000186:	6891      	ldr	r1, [r2, #8]
 8000188:	f843 1c24 	str.w	r1, [r3, #-36]
			*abuf++ = GPIOC-›IDR;
 800018c:	6891      	ldr	r1, [r2, #8]
 800018e:	f843 1c20 	str.w	r1, [r3, #-32]
...
и т.д.
в разных источниках разные данные 1 или 2 такта на команду. В документации на Cortex-M3 есть упоминание что ldr может группироваться сo следующими ldr/str и выполняться за 0 тактов.

Последний раз редактировалось qwerky; 12.09.2011 в 21:15.
qwerky вне форума  
Непрочитано 13.09.2011, 10:09  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от dadigor Посмотреть сообщение
Может быть в буфер обмена копировать сразу в формате: 0x44444444 ?
Ага, уже сам наступил на эти грабли Полдня не мог понять, почему порт работает не так.

Пофиксил, обновил выложенный архив.
uk8amk вне форума  
Непрочитано 13.09.2011, 14:32  
DimanVIP
Временная регистрация
 
Регистрация: 20.05.2010
Сообщений: 64
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
DimanVIP на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Доброго всем времени суток!
Надеюсь хоть Вы мне сможете помочь.

Имеется отладочная плата STM32L-Discovery с STM32L152RB на борту. Пишу в Keil uVision 4.21.0.
Пытаюсь разобраться в работе DMA (ака ПДП). Для этого пытаюсь гонять данные из флеш напрямую в Таймер.

Код:
#include ‹stm32l1xx.h›
#include ‹stm32l1xx_gpio.h›
#include ‹stm32l1xx_rcc.h›
#include ‹stm32l1xx_tim.h›
#include ‹stm32l1xx_dma.h›

const uint32_t dma_buffer[6] = { 20, 30, 40, 50, 60, 70 };

void mcu_dma_channel1_init(void)
{
  DMA_InitTypeDef DMA_Config;
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
  DMA_DeInit(DMA1_Channel1);
  DMA_Config.DMA_PeripheralBaseAddr = (uint32_t)&TIM4-›CCR1; 
  DMA_Config.DMA_MemoryBaseAddr = (uint32_t)&dma_buffer;
  DMA_Config.DMA_DIR = DMA_DIR_PeripheralDST;
  DMA_Config.DMA_BufferSize = 6;
  DMA_Config.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  DMA_Config.DMA_MemoryInc = DMA_MemoryInc_Enable;
  DMA_Config.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
  DMA_Config.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
  DMA_Config.DMA_Mode = DMA_Mode_Circular;
  DMA_Config.DMA_Priority = DMA_Priority_High;
  DMA_Config.DMA_M2M = DMA_M2M_Enable;
  DMA_Init(DMA1_Channel1, &DMA_Config);
  DMA_Cmd(DMA1_Channel1, ENABLE);
}

void mcu_tim4_init(void)
{	  	
  TIM_TimeBaseInitTypeDef TIM_BaseConfig;	
  TIM_OCInitTypeDef TIM_OCConfig;			   
  GPIO_InitTypeDef GPIO_Config;
  
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
  RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOBEN, ENABLE);

  GPIO_Config.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_Config.GPIO_Mode = GPIO_Mode_AF;
  GPIO_Config.GPIO_OType = GPIO_OType_PP;
  GPIO_Config.GPIO_Speed = GPIO_Speed_40MHz;
  GPIO_Init(GPIOB, &GPIO_Config);
  GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_TIM  4);
  GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_TIM  4);
  TIM_BaseConfig.TIM_Prescaler = (uint16_t) (SystemCoreClock / 4800000) - 1;	
  TIM_BaseConfig.TIM_Period = 149;
  TIM_BaseConfig.TIM_ClockDivision = 0;
  TIM_BaseConfig.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM4, &TIM_BaseConfig);

  /* Channel1 Configuration in PWM mode */
  TIM_OCConfig.TIM_OCMode = TIM_OCMode_PWM1;  
  TIM_OCConfig.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCConfig.TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OCConfig.TIM_Pulse = 2;
	
  TIM_OC1Init(TIM4, &TIM_OCConfig); 
  TIM_OCConfig.TIM_OCMode = TIM_OCMode_PWM1;
  TIM_OCConfig.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCConfig.TIM_Pulse = 29;

  TIM_OCConfig.TIM_OCPolarity = TIM_OCPolarity_Low;
  TIM_OC2Init(TIM4, &TIM_OCConfig);

  /* Enable TIM2 DMA interface */
  TIM_DMACmd(TIM4, TIM_DMA_CC1, ENABLE);
  
  TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
  TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);
  TIM_ARRPreloadConfig(TIM4, ENABLE);
 
  TIM_Cmd(TIM4, ENABLE);	
}

int main(void)
{
  mcu_tim4_init();
  mcu_dma_channel1_init();
  while (1)
    {
    }
}
Трабла вот в чем: Когда гоняю в Кейловском отладчике, данные в таймер загоняются (даже светик от этого яркость меняет), но загоняются практически в случайном порядке.
Когда запускаю в "свободный полет" и сажусь на ножку осциком, то вижу ШИМ с постоянной скважностью, т.е. регистр таймера не меняется.

Помогите разобраться в чем косяк, а то уже все идеи иссякли.
DimanVIP вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 17:54.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot