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

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

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

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

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

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


Ответ
Опции темы
Непрочитано 05.01.2013, 01:20   #2081
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Кстати, в папке \mikroC PRO for ARM\Uses\ST M3 нашел замечательный файлик __Lib_Delays.c, в котором есть коды для задержек:
Код:
void Delay_Cyc(unsigned long cycles_div_by_10){  // Cycles_div_by_10 parameter range: min = 1, max = 4294967295
  asm{
     nop.w
     subs R0,R0,#1
   label1:
     subs R0,R0,#1
     nop
     nop
     nop
     nop
     nop
     nop
     nop
     bne label1
  }
}

void VDelay_ms(unsigned long Time_ms){ // Time_ms parameter range: min = 1, max = 4294967295
unsigned long NumberOfCyc;

  NumberOfCyc = Clock_kHz();  // cycles per milisecond
  NumberOfCyc *= Time_ms;     // total number of cycles
  Delay_Cyc(NumberOfCyc / 10 - 3);
  asm{
    nop 
    nop 
    nop
    nop
    nop
    nop
  }
}


void VDelay_Advanced_ms(unsigned long Time_ms, unsigned long Current_Fosc_kHz){ // Time_ms parameter range: min = 1, max = 4294967295
  unsigned long NumberOfCyc;

  NumberOfCyc = Current_Fosc_kHz;  // cycles per milisecond
  NumberOfCyc *= Time_ms;          // total number of cycles
  
  Delay_Cyc(NumberOfCyc / 10 - 3);
  asm{
    nop
    nop
    nop
    nop
    nop
    nop
  }
}
Их можно легко перетащить в Keil или IAR и там пользовать. Задержки у этих компиляторов работают отменно.
Реклама:
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 05.01.2013, 13:15   #2082
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Кто-нибудь пробовал подсоединить динамик к STM32VLDISCOVERY?
Только через усилитель или может есть более простые варианты?
Тут например на прямую к ЦАП, 32Омный подключен. Сигнал на выходе в основном 0,2-0,3В с очень редкими пиками ~2,5В. Но все равно выглядит как-то не надежно, как бы не спалить МК.

http://we.easyelectronics.ru/STM32/v...chi-speex.html
EXIS вне форума   Ответить с цитированием
Непрочитано 05.01.2013, 13:18   #2083
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

LM386 в помощь!
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 05.01.2013, 13:42   #2084
3d cube
Гражданин KAZUS.RU
 
Регистрация: 27.11.2012
Адрес: 30км от Софии
Сообщений: 732
Сказал спасибо: 89
Сказали Спасибо 310 раз(а) в 180 сообщении(ях)
3d cube на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от EXIS Посмотреть сообщение
подсоединить динамик
Еще не остыл, потому встреваю.
TDA2040, не менее. Выход к динамику через резистор 10 Ом. Дорого, но спокойно.
Питание 5 - 40В, термическая защита есть. В описании от ST R4 указан 4.7 Ом. Надо 1. Возбуждается.
LM386 тоже можно, но осторожно. Для N1 питание макс 15В. Не есть гуд

ПС. Если для рации другое дело. TDA жрет солидно. LM386 класика.

Последний раз редактировалось 3d cube; 05.01.2013 в 13:47.
3d cube вне форума   Ответить с цитированием
Сказали "Спасибо" 3d cube
EXIS (05.01.2013)
Непрочитано 05.01.2013, 14:04   #2085
polyname
Прописка
 
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
polyname на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Цитата:
Тут например на прямую к ЦАП, 32Омный подключен.
даташит читать пробовали ? там все есть, в том числе и вых.характеристики ЦАПа. Короткий ответ - нет, нельзя
polyname вне форума   Ответить с цитированием
Непрочитано 05.01.2013, 14:52   #2086
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Спасибо. Буду использовать LM386.
EXIS вне форума   Ответить с цитированием
Непрочитано 08.01.2013, 09:07   #2087
polyname
Прописка
 
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
polyname на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Какие настройки ЦАПа нужны для синхронизации с прерыванием таймера ?
Запись в регистр работает только при DAC_Trigger = DAC_Trigger_None , при установке в DAC_Trigger_T4_TRGO - тишина:
Код:
void setup_dac() {
	GPIO_InitTypeDef gpio_dac;
	GPIO_StructInit(&gpio_dac);
	gpio_dac.GPIO_Pin   = GPIO_Pin_4;
	gpio_dac.GPIO_Mode  = GPIO_Mode_AIN;
	GPIO_Init(GPIOA, &gpio_dac);

	RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

	DAC_InitTypeDef dac;
	DAC_StructInit(&dac);
	dac.DAC_Trigger        = DAC_Trigger_None;
	dac.DAC_OutputBuffer   = DAC_OutputBuffer_Enable;
	dac.DAC_WaveGeneration = DAC_WaveGeneration_None;
	DAC_Init(DAC_Channel_1, &dac);
	DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);
	DAC_Cmd(DAC_Channel_1, ENABLE);
}

P.S. нашел интересную книгу: http://www.cs.indiana.edu/~geobrown/book.pdf
polyname вне форума   Ответить с цитированием
Непрочитано 08.01.2013, 11:23   #2088
mr_smit
Временная регистрация
 
Аватар для mr_smit
 
Регистрация: 14.09.2009
Сообщений: 87
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
mr_smit на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от st_1 Посмотреть сообщение
Сравните даташиты... вам сразу всё станет ясно...
Две ноги придётся отогнуть и повесить через конденсаторы... всё остальное совпадает...
Вот STM32F205 в STM32VL-Discovery... вместо STM32F100
Вложение 27355
А для чего нужны конденсаторы на VCAP ? Так и не понял. И обязательно ли их ставить?
mr_smit вне форума   Ответить с цитированием
Непрочитано 08.01.2013, 11:36   #2089
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

mr_smit, это питание ядра. Нужны! В разумных пределах. Причем ставить надо как можно ближе к ногам.
Easyrider83 вне форума   Ответить с цитированием
Сказали "Спасибо" Easyrider83
mr_smit (09.01.2013)
Непрочитано 08.01.2013, 20:07   #2090
nerozero
Вид на жительство
 
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
nerozero на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Не запускается DMA для SPI, подскажите что я тут криво делаю?

проверял с прерываниями - все работает, а DMA - не отзывается.
Код:
void dta_init_spi()
{
	SPI_InitTypeDef  spi_init;
	// configure SPI1
	RCC_APB2PeriphClockCmd(SPI1, ENABLE);
	spi_init.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
	spi_init.SPI_Mode = SPI_Mode_Slave;
	spi_init.SPI_DataSize = SPI_DataSize_8b;
	spi_init.SPI_CPOL = SPI_CPOL_High;
	spi_init.SPI_CPHA = SPI_CPHA_1Edge;
	spi_init.SPI_NSS = SPI_NSS_Soft;
	spi_init.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
	spi_init.SPI_FirstBit = SPI_FirstBit_MSB;
	spi_init.SPI_CRCPolynomial = 7;
	SPI_Init(SPI1, &spi_init);

#ifdef DTA_USE_SPI_IRQ
	SPI_I2S_ITConfig(SPI1,SPI_I2S_IT_TXE,ENABLE);
	NVIC_InitTypeDef nvic_init;
	nvic_init.NVIC_IRQChannel = SPI1_IRQn;
	nvic_init.NVIC_IRQChannelPreemptionPriority = 0;
	nvic_init.NVIC_IRQChannelSubPriority = 0;
	nvic_init.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&nvic_init);
#endif
}

void dta_init_dma()
{
	DMA_InitTypeDef dma_init;
	NVIC_InitTypeDef nvic_init;

	DMA_DeInit(DMA1_Channel4);
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // Enable DMA Clock


	dma_init.DMA_PeripheralBaseAddr = (uint32_t) &SPI1-›DR;
	dma_init.DMA_MemoryBaseAddr = (uint32_t) _dta_spi_buff;
	dma_init.DMA_DIR = DMA_DIR_PeripheralDST; //  SPI-› output
	dma_init.DMA_BufferSize = DTA_BUFF_SIZE;
	dma_init.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
	dma_init.DMA_MemoryInc = DMA_MemoryInc_Enable;
	dma_init.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
	dma_init.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
	dma_init.DMA_Mode = DMA_Mode_Circular;
	dma_init.DMA_Priority = DMA_Priority_VeryHigh;
	dma_init.DMA_M2M = DMA_M2M_Disable;

	DMA_Init(DMA1_Channel4, &dma_init);
	DMA_ITConfig(DMA1_Channel4,DMA_IT_TC,ENABLE); // Enable Transmit complete Interrupt
	SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, ENABLE);

	DMA_Cmd(DMA1_Channel4,ENABLE);

	nvic_init.NVIC_IRQChannel = DMA1_Channel4_IRQn;
	nvic_init.NVIC_IRQChannelPreemptionPriority = 1;
	nvic_init.NVIC_IRQChannelSubPriority = 1;
	nvic_init.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&nvic_init);
}

void dta_init()
{
	dta_init_spi();
	dta_init_dma();
	SPI_Cmd(DTA_SPI, ENABLE);
	DTA_SPI-›CR1 &=~0x0100; // Clear SSI - Software Chip select
}
nerozero вне форума   Ответить с цитированием
Ответ

Закладки


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

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, время: 07:19.


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