27.01.2011, 22:49
|
|
Вид на жительство
Регистрация: 11.05.2005
Адрес: Питер
Сообщений: 425
Сказал спасибо: 47
Сказали Спасибо 72 раз(а) в 59 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от st_1
|
На моём написано MB913-С01.
|
А гляньте версию FW. У меня такая.
|
|
|
|
27.01.2011, 23:02
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Один в один.
|
|
|
|
27.01.2011, 23:06
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от gromovi
|
честно я пока i2c библиотеку прикручивался запутался еще больше.
просит на фото. а вот куда и как их определить. а тут еще и вы "ищи в папке" дык уже и не помню откуда вырвал. короче тайм аут. надо все переварить и по новой начинать с чистого листа.
|
Честно скажу - не с того начал . Не для старта эта либа .
Но уж начал , ладно давай вместе...
__________________
Осторожно , злой кот
|
|
|
|
27.01.2011, 23:17
|
|
Прописка
Регистрация: 09.11.2010
Сообщений: 102
Сказал спасибо: 4
Сказали Спасибо 28 раз(а) в 22 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от ut1wpr
|
Ну не должно быть так у "правильных" загрузчиков. Загрузчик должен уметь ребутнуть кристалл, никаких процедур с питанием не должно быть! Если постоянно дергать разъем USB, его надолго не хватит. Ну да ладно, это говорит о том, что они этот глюк не побороли. Видимо, загрузка из Кейла и ИАРа тоже не завершается. Был с самого начала такой глюк. Делаем загрузку из среды Кейла либо ИАРа, передергиваем питание (кстати, это удобнее делать при помощи джампера на плате, можно даже нормально-замкнутую кнопку вместо этого джампера повесить - в любом случае, это костыль) и имеем... работу старой прошивки. Лишь загружая скомпилированный проект в режиме дебаггера, он таки загружается. Но при этом тоже требуется "передергивание" питания. Плохо! Сыро. А если мне по условиям проекта надо внести изменения и проверить именно не выключая питания, что, разве не может быть таких ситуаций? Они с этим уже третий месяц живут и рассылают борды с этим явлением.
|
Кажется, наконец, я понял проблему ut1wpr.
Действительно, после загрузки командой "Download Active App" (IAR 6.10.1) загруженная программа не стартует (но загружается нормально). Самое интересное, что если переключиться в STM32 ST-Link Utility, приконнектится и вызвать "Core" то там есть кнопочка "Run", нажав на которую программа ЗАПУСКАЕТСЯ. Та, что была загружена ИАРе. Получается, что железка Дисковери32 - непричем, запуск где-то в другом месте.
Сейчас целый час пытался чего-нибудь понять в ключах загрузчика ИАРа, чтобы после загрузки командой "Download Active App" где нибудь дернулся СБРОС. Не нашел. Но он такой ключ есть, ведь ST-Link Utility умеет это делать!!!
Для всех остальных, считающих что платка "с косячком" поэтому халява.
Хочу подчеркнуть - если правильно сконфигурировать загрузчик, то в "ОБЫЧНОМ" режиме "скомпилил, залил далее нажал кнопку RUN или STEP" все работает без нареканий, питание дергать не надо.
|
|
|
|
27.01.2011, 23:35
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
И так все заново ... Следи за ходом мысли...
Идем в примеры -› папка_Keil\ARM\Examples\ST\STM32F10xFWLib\Examples \I2C\M24C08_EEPROM
Открываем main.c , пока нам нужно узнать инициализацию модуля I2C1.
Ищем и находим I2C_EE_Init(); . Ищем ее описание , естественно он находится в файле i2c_ee.c . Открываем и ищем.
Код:
|
void I2C_EE_Init()
{
/* GPIO configuration */
GPIO_Configuration();
/* I2C configuration */
I2C_Configuration(); |
Привожу только начало . Совершенно логично что нам нужна
I2C_Configuration();
Находим ее в этом же файле.
Код:
|
/************************************************** *****************************
* Function Name : I2C_Configuration
* Description : I2C Configuration
* Input : None
* Output : None
* Return : None
************************************************** *****************************/
void I2C_Configuration(void)
{
I2C_InitTypeDef I2C_InitStructure;
/* I2C configuration */
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
I2C_InitStructure.I2C_OwnAddress1 = I2C1_SLAVE_ADDRESS7;
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_InitStructure.I2C_ClockSpeed = I2C_Speed;
/* I2C Peripheral Enable */
I2C_Cmd(I2C1, ENABLE);
/* Apply I2C configuration after enabling it */
I2C_Init(I2C1, &I2C_InitStructure);
} |
И видим - заполняется структура и передается как параметр в
I2C_Init()
Эта функция находится уже в библиотеке.
Идем в папка_Keil\ARM\RV31\LIB\ST\STM32F10x
По логике ищем файлы с названием модуля (I2C).
Открываем stm32f10x_i2c.c и находим :
Код:
|
void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct)
{
u16 tmpreg = 0, freqrange = 0;
u16 result = 0x04;
u32 pclk1 = 8000000;
RCC_ClocksTypeDef rcc_clocks;
/* Check the parameters */
assert_param(IS_I2C_ALL_PERIPH(I2Cx));
assert_param(IS_I2C_MODE(I2C_InitStruct-›I2C_Mode));
assert_param(IS_I2C_DUTY_CYCLE(I2C_InitStruct-›I2C_DutyCycle));
assert_param(IS_I2C_OWN_ADDRESS1(I2C_InitStruct-›I2C_OwnAddress1));
assert_param(IS_I2C_ACK_STATE(I2C_InitStruct-›I2C_Ack));
assert_param(IS_I2C_ACKNOWLEDGE_ADDRESS(I2C_InitSt ruct-›I2C_AcknowledgedAddress));
assert_param(IS_I2C_CLOCK_SPEED(I2C_InitStruct-›I2C_ClockSpeed));
/*---------------------------- I2Cx CR2 Configuration ------------------------*/
/* Get the I2Cx CR2 value */
tmpreg = I2Cx-›CR2; |
И так - просмотрев код , обнаруживаем что мы на самом низком уровне :
Никакие функции уже не вызываются , параметры тупо копируются в регистры модуля.
Теперь осталось отследить как какой параметр передается/конвертируется из main -› I2C_Init. И написать свою реализацию , которая естественно будет совсем не универсальным огрызком .
Таким же макаром потрошим остальные функции - передачу/прием и т.д. и т.п.
Все эти поиски здорово упрощаются в самом IDE , если проект скомпилирован :
правой кнопкой по объекту интереса и в контекстном меню -› Go to Definition of ...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 27.01.2011 в 23:45.
|
|
|
Эти 3 пользователя(ей) сказали Спасибо dosikus за это сообщение:
|
|
|
27.01.2011, 23:40
|
|
Прописка
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Есть ещё API открытый, и да же пример от STM,
но вот только не хочет у меня работать с новой версией 4.2.2
стирает, но тут же пишет что память не стерта
особо не разбирался пока не было времени...
А вот с СТМ8 прокатило
http://ziblog.ru/2011/01/24/stm8l-ndash-pervyiy-start/
правда сбрасывать не позволяет,
нужно будет получше почитать про API может есть все таки сброс
и подправить программу...
|
|
|
|
28.01.2011, 11:03
|
|
Прописка
Регистрация: 09.12.2003
Сообщений: 116
Сказал спасибо: 5
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Курю доки , не удалось вкурить один момент.Если мы используем USART то какбыть с ногами CTS,DTR относящимися к нему.Мне они не нужны для flowcontrol.Зато с удовольствием использовал-бы их как gpio.
Где-то внутри чувствую что можно.Но в доке нужного места не нашел.Рисую начерно схему прибора и знание не помешало-бы.
|
|
|
|
28.01.2011, 11:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Loole
|
А гляньте версию FW. У меня такая.
|
Аналогично.
|
|
|
|
28.01.2011, 11:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Serega_B
|
Кажется, наконец, я понял проблему ut1wpr.
|
Это не моя проблема. Это глюк. Просто аргументы в его защиту типа "...за такие деньги...". Суть-то в однозначности ответа. Есть глюк или нет...
А он есть! (с) ДМБ (про суслика)
|
|
|
|
28.01.2011, 12:26
|
|
Прописка
Регистрация: 09.12.2003
Сообщений: 116
Сказал спасибо: 5
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от PlainUser
|
Курю доки , не удалось вкурить один момент.Если мы используем USART то какбыть с ногами CTS,DTR относящимися к нему.Мне они не нужны для flowcontrol.Зато с удовольствием использовал-бы их как gpio.
Где-то внутри чувствую что можно.Но в доке нужного места не нашел.Рисую начерно схему прибора и знание не помешало-бы.
|
И еще , хочу использовать IAP , в AN2557 есть пример для USART1 ноги CTS и DSR которого персекаются с ногами USB .Опять вопрос, будет TX/RX USART1 работать совместно с USB ?
Последний раз редактировалось PlainUser; 28.01.2011 в 12:29.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:52.
|
|