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

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

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

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

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

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


 
Опции темы
Непрочитано 26.08.2011, 10:00  
MikhailSh
Временная регистрация
 
Регистрация: 06.05.2007
Сообщений: 75
Сказал спасибо: 18
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
MikhailSh на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Какой Ethernet-трансивера физического уровня (PHY) лучше подключить с STM32F107 (доставабельный)? Нужен ли обязательно в нем МАС-процессор?
Присматриваюсь к RTL8201BL, но говорят в нем есть глюки или KSZ8041NL. А так же нужен CAN1 - тогда нужен трансивер с RMII?
+ RTL8201DL/EL c RMII, но их нет в продаже.
+ DP83848C
Реклама:

Последний раз редактировалось MikhailSh; 26.08.2011 в 13:30.
MikhailSh вне форума  
Непрочитано 26.08.2011, 21:39  
<smbd>
Частый гость
 
Регистрация: 20.03.2010
Сообщений: 27
Сказал спасибо: 10
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
<smbd> на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от uk8amk Посмотреть сообщение
Все товарищи, разобрался! Код полностью нормальный, это лыжи не едут, точнее дебуггер в кейле(4.12) ведет себя странно и некорректно. Стоило открыть окно Memory, вбить туда базовый адрес буфера SRAM и расширить его на весь экран(чтобы весь массив был виден), как по бряку все ячейки загрузились верными значениями. После этого вкладка Watch тоже начала отображать корректную информацию. Вот такой неожиданный косяк.


Это полный учебный проект.
Ета, как-то он таво, не работает у меня Ваш проект...
В ватче тишина да и вообще странный такой проектик...

Сообщение от tanq Посмотреть сообщение
Питание - это питание. А для запуска надо еще раз ADON после всех инициализаций.
В CR2? И где про это написано? То есть вы в один регистр в одно и то же место единички два раза ставите?
<smbd> вне форума  
Непрочитано 27.08.2011, 10:46  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от ‹smbd› Посмотреть сообщение
В CR2? И где про это написано?
В референс мануал написано. Второй раз ADON надо выставлять для софтового запуска АЦП. Если ацп запускается по какому-то событию, то не надо.
tanq вне форума  
Непрочитано 27.08.2011, 10:55  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

››В CR2? И где про это написано?
Стр.175 RM0041
If this bit holds a value of zero and a 1 is written to it then it wakes up the ADC from Power Down state.
Conversion starts when this bit holds a value of 1 and a 1 is written to it.

››В ватче тишина да и вообще странный такой проектик...

Вас смущает то, что я не использую жирные стандартные библиотеки, а делаю все руками?
Сейчас скачал, запустил, все работает. На всякий случай аналоговый вход = PC0.
uk8amk вне форума  
Непрочитано 27.08.2011, 14:59  
pve70
Временная регистрация
 
Регистрация: 09.02.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pve70 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Подключил расширитель I2C PCF8575 по схеме во вложении.
Коды кнопок считываются нормально, НО ! Принажатии на кнопку K16 шина I2C код кнопки отдает, а потом виснет после выдачи следующего I2C_GenerateSTART (когда отпускаем кнопку).
Фрагменты кода:
Код:
while (1)
  {	
           //сигнал INT на PB0
	if (PCF8575_INT==0) //если на INT0 присутствует 0 - надо читать данные
	{
	key=GetKeyCode();;
	//на экран
	y-=15;
	if (y‹=16) 
           {
	 y=190;
	 LCD_FillRect(10,10,80,180,RGB(10,140,10));
	}
	sprintf(Buf,"Key: %05X",key);
	LCD_Text(10,y,Buf);
	}
	
  }
unsigned int GetKeyCode()
{
unsigned char p0,p1;
uint32_t cod;
// Send STRAT condition 
 /* Generate a START condition */
  I2C_GenerateSTART(I2C1, ENABLE);
  // Test on EV5 and clear it 
  while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT))
	{	
	 cod=I2C_GetLastEvent(I2C1);
	 sprintf(Buf,"%04X %04X",I2C1-›SR2,I2C1-›SR1);
	 LCD_Text(150,70,Buf);	
	};

	//
  I2C_Send7bitAddress(I2C1, PCF_ADDRESS, I2C_Direction_Receiver);
	// Test on EV6 and clear it 
  while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))
	{
	};
	p0=0; p1=0;
	while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))
	{
	}; 
	p0=I2C_ReceiveData(I2C1);
	
	while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))
	{
	}; 
	p1=I2C_ReceiveData(I2C1);
	
	// Send STOP condition 
          I2C_GenerateSTOP(I2C1, ENABLE);
	return( (~(p0 | (p1‹‹8)) ) &0x0000FFFF );
}
я специально вывел на экран значения статус-регистров на экран в цикле while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) потому что именно там и виснет шина I2C.
Когда нажимаю кнопки К1-К15 то выдает 0003 0041, а вот принажатии на К16 код уже 0003 0040, т.е. флаг SB не поднимается.
Получается бесконечное ожидание - и привет.
Причем на такой же схеме у товарища систему вешает совершенно другая кнопка - К13.

Я просто не понимаю причин такого поведения.
Миниатюры:
Нажмите на изображение для увеличения
Название: fr.jpg
Просмотров: 350
Размер:	226.5 Кб
ID:	25513  

Последний раз редактировалось pve70; 27.08.2011 в 15:02.
pve70 вне форума  
Непрочитано 27.08.2011, 17:49  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Тут гkюк может быть где угодно. Особенно при использовании библиотек. Мастером кто выступает: кнопки или процессор?
tanq вне форума  
Непрочитано 27.08.2011, 17:53  
pve70
Временная регистрация
 
Регистрация: 09.02.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pve70 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

процессор - мастер, как только обнаруживает 0 на PB0 (INT=0 у PCF8575) то начинает читать 2 байта от PCF8575. А 0 на INT у PCF8575 появляется в том случае, если изменяется уровень на любом из его входов, т.е. при нажатии и отпускании кнопок.
pve70 вне форума  
Непрочитано 27.08.2011, 18:05  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Переписать без применения библиотек. В документации все есть про повторный старт и т.д., но к библиотекам это не применимо, т.к. там все события переделаны, как я вижу.
tanq вне форума  
Непрочитано 27.08.2011, 18:18  
pve70
Временная регистрация
 
Регистрация: 09.02.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pve70 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

да, переход от AVR к ARM тяжело дается. буду думать.
А вот почему конструкция
unsigned char Wheel;
Wheel = GPIOA_IDR_Addr & 0x0f;
не читает состояние 4-х младших бит порта А, а вот такая фигня работает:

Wheel=0;
if (PAin(0)==0) Wheel |=1;
if (PAin(1)==0) Wheel |=2;
if (PAin(2)==0) Wheel |=4;
if (PAin(3)==0) Wheel |=8;
где PAin определено как
#define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n)

Последний раз редактировалось pve70; 27.08.2011 в 18:21.
pve70 вне форума  
Непрочитано 27.08.2011, 21:00  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от pve70 Посмотреть сообщение
А вот почему конструкция
unsigned char Wheel;
Wheel = GPIOA_IDR_Addr & 0x0f;
не читает состояние 4-х младших бит порта А
А почему она вообще должна читать что-то из порта? Название GPIOA_IDR_Addr само за себя говорит что это какой-то адрес, то есть просто число. Наверное, если написать *GPIOA_IDR_Addr & 0x0f, то будет работать лучше
(возможно потребуется преобразование типа).
tanq вне форума  
 

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

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

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


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