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

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

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

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

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

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


 
Опции темы
Непрочитано 12.01.2013, 19:07  
nerozero
Вид на жительство
 
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
nerozero на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

polyname, Если вас JTAG/SWD есть, то можете смотреть на живую что происходит в регистрах.С STM-ами пока I2C не использовал, но делал на NXP особых трудностей не было - все почти так-же как было с АВР-ами, думаю тут тоже все будет просто. тем более что есть DMA...Для начала надо очень внимательно прочитать сам протокол I2C - дальше просто.
Реклама:
nerozero вне форума  
Непрочитано 12.01.2013, 19:18  
polyname
Прописка
 
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
polyname на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от nerozero Посмотреть сообщение
Для начала надо очень внимательно прочитать сам протокол I2C
с протоколом как раз все ок - программный бит-бэнг работает без проблем.
с передачей вроде понятно - ACK попадает в I2C_SR1.AF.
как инициировать прием - хз. Может передать 0xFF ?
polyname вне форума  
Непрочитано 12.01.2013, 19:21  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от polyname Посмотреть сообщение
запускаю аппаратный I2C (пока без DMA и прерываний).
из примеров и документации непонятны несколько моментов:
- откуда брать бит ACK после I2C_SendData и ожидания I2C_EVENT_MASTER_BYTE_TRANSMITTED ?
- как программно принять несколько байт ? I2C_ReceiveData просто читает регистр приемника, как запустить прием - нигде не описано.
Код:
unsigned char I2C_Write_Byte (I2C_TypeDef* I2Cx, unsigned char i2c_address, unsigned char i2c_pointer, unsigned char data)
{
	while(I2C_GetFlagStatus(I2Cx, I2C_FLAG_BUSY));	
	I2C_GenerateSTART (I2Cx, ENABLE);
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT));  
	I2C_Send7bitAddress(I2Cx, i2c_address, I2C_Direction_Transmitter);
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
	I2C_SendData(I2Cx, i2c_pointer);
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
	I2C_SendData(I2Cx, data);
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
	I2C_GenerateSTOP(I2Cx, ENABLE);
	return 0;
}
Код:
unsigned char I2C_Read_Byte (I2C_TypeDef* I2Cx, unsigned char i2c_address, unsigned char i2c_pointer, unsigned char * data)
{
	I2C_GenerateSTART (I2Cx, ENABLE);					//START
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT));  
	
	I2C_Send7bitAddress(I2Cx, i2c_address, I2C_Direction_Transmitter);		//SEND ADDRESS
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
	
	I2C_SendData(I2Cx, i2c_pointer);						//SEND POINTER
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
	
	I2C_GenerateSTART (I2Cx, ENABLE);				//REPEAT START
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT));
	
	I2C_Send7bitAddress(I2Cx, i2c_address, I2C_Direction_Receiver);			//SEND ADDRESS READ
	while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_RECEIVED));
		
	*data=I2C_ReceiveData(I2Cx);								//READ DATA
	I2C_AcknowledgeConfig(I2Cx, DISABLE);
	I2C_GenerateSTOP(I2Cx, ENABLE);
	return 0;
}
Easyrider83 вне форума  
Непрочитано 12.01.2013, 19:26  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от polyname Посмотреть сообщение
как инициировать прием - хз. Может передать 0xFF ?
Ничего передавать не надо, это же вам не spi.
Мастером передаётся адрес и бит направления передачи (R/W).
_Артём_ вне форума  
Непрочитано 12.01.2013, 19:32  
polyname
Прописка
 
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
polyname на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

то есть после передачи адреса с битом 0=1 приемник запускается автоматически ? оригинально...
Цитата:
I2C_Send7bitAddress(I2Cx, i2c_address, I2C_Direction_Receiver);
вот как тупо запустить прием байта и дождаться завершения (типа как в АВР while (!(TWCR & (1‹‹TWINT)))) ?

Последний раз редактировалось polyname; 12.01.2013 в 19:40.
polyname вне форума  
Непрочитано 12.01.2013, 19:34  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Надо будет попробовать на прерываниях отправку/прием сделать. Это интереснее. Флагов ждать не надо. Положил байт в буфер, он и пошел куда-то. Жалко таймер придется запользовать, чтобы бесконечности не ждать.
Easyrider83 вне форума  
Непрочитано 12.01.2013, 19:36  
polyname
Прописка
 
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
polyname на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

тайм-аут вроде ловится автоматически - (TIMEOUT в I2C_SR1)
polyname вне форума  
Сказали "Спасибо" polyname
Easyrider83 (12.01.2013)
Непрочитано 12.01.2013, 19:38  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Не знал. Почитаю.
Цитата:
Note: This functionality is available only in SMBus mode.

Последний раз редактировалось Easyrider83; 12.01.2013 в 19:42.
Easyrider83 вне форума  
Непрочитано 13.01.2013, 04:47  
dkm
Вид на жительство
 
Регистрация: 10.04.2010
Сообщений: 301
Сказал спасибо: 25
Сказали Спасибо 136 раз(а) в 79 сообщении(ях)
dkm на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от С.М.С Посмотреть сообщение
Доброго времени суток! Взялся за STM32 и за основу решил сделать MP3 плеер на кодеке VS1011E. Купил МК STM32F103VBT6 думал 100 ног позарез хватит, но оказалось что и тут нет SDIO для SD. Вот вопрос есть ли смысл пробовать делать это программно, ещё МК будет управлять TFT через 24 битный RGB, хватит ли мощности или купить уже 144 ногий?
Как нет, у VЕТ6 есть! 100 ног тоже.
dkm вне форума  
Непрочитано 14.01.2013, 18:51  
polyname
Прописка
 
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
polyname на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

в даташите на STM32F100Cx пишут что TIM4 у младших моделей отсутствует.
у меня на STM32F100C4 - работает.
ошибка или новая ревизия кристалла ?
polyname вне форума  
 

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

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

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:17.


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