реклама на сайте
подробности

 
 
> stm32f0xx + i2c, проблемы с периферией... срочно нужна помощь...
Посторонним В...
сообщение Sep 2 2012, 09:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 2-08-12
Пользователь №: 72 984



срочно нужна помощь...

веду разработку на cortex-m0 stm32f051... отладка stm32f0discovery

пытаюсь адекватно начать работать с I2C ... много гуглил но ни чего не нагуглил...

примеры от других процессоров не помогают stm32

люди жалуются на кривую периферию у stm32...

кто имел опыт с этим камнем отзовитесь... нужна ваша помошь!!!

примеры для работы с термодатчиком и памятью у меня не работают...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Мур
сообщение Aug 30 2014, 13:20
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Народ, бодаюсь с отладкой I2C для Кортекса М4 (EFM32WG990F256). Есть в Кейле возможность просмотра окна периферии I2C. Красота!..
Только в толк не пойму, почему выполняя последовательность команд

i2c->TXDATA = tmp; /* Data not transmitted until START sent */
i2c->CMD = I2C_CMD_START;

в строчках Property CMD
TXDATA не вижу новых кодов (только нули), хотя должны быть коды 0x01 0xe2

Без этого не могу стартануть последовательность от моего мастера... Что это может быть?
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Aug 30 2014, 17:05
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Мур @ Aug 30 2014, 15:20) *
Народ, бодаюсь с отладкой I2C для Кортекса М4 (EFM32WG990F256). Есть в Кейле возможность просмотра окна периферии I2C. Красота!..
Только в толк не пойму, почему выполняя последовательность команд

i2c->TXDATA = tmp; /* Data not transmitted until START sent */
i2c->CMD = I2C_CMD_START;

в строчках Property CMD
TXDATA не вижу новых кодов (только нули), хотя должны быть коды 0x01 0xe2

Без этого не могу стартануть последовательность от моего мастера... Что это может быть?

Не углубляясь в дебри доков на указаный процессор (Ваша задача), но рассуждая по аналогии с EFM32G210, сообщу, что:
- первая команда есть загрузка адреса ведомого на шине I2C, а вторая команда вырабатывает START и немедленную последующую передачу этого адреса.
- регистр TXDATA есть только для чтения и НЕ отображает записаное в него значение.
Go to the top of the page
 
+Quote Post
Мур
сообщение Aug 31 2014, 07:37
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(KnightIgor @ Aug 30 2014, 21:05) *
Не углубляясь в дебри доков на указаный процессор (Ваша задача), но рассуждая по аналогии с EFM32G210, сообщу, что:
- первая команда есть загрузка адреса ведомого на шине I2C, а вторая команда вырабатывает START и немедленную последующую передачу этого адреса.
- регистр TXDATA есть только для чтения и НЕ отображает записаное в него значение.

Спасибо!...
Я догадывался.... Ну а START ?... Его я и осцилом на ножке не вижу.... Окошко периферии для регистра CMD бит тоже не взводится...
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Aug 31 2014, 09:34
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Мур @ Aug 31 2014, 09:37) *
Спасибо!...
Я догадывался.... Ну а START ?... Его я и осцилом на ножке не вижу.... Окошко периферии для регистра CMD бит тоже не взводится...

Предполагаю, что периферия не инициализирована. Во-первых, необходимо включить такт периферии I2C. Во-вторых, правильно проинициализировать линии портов. В-третьих, не забыть "соединить" I2C с линиями портов, правильно взведя соответствующие биты в I2C->ROUTE. Я настоятельно рекомендую использовать периферийную библиотеку для процессора. Для EFM32 она написана очень умно и эффективно. Помощь прилагается.
Go to the top of the page
 
+Quote Post
Мур
сообщение Aug 31 2014, 13:26
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(KnightIgor @ Aug 31 2014, 13:34) *
Предполагаю, что периферия не инициализирована. Во-первых, необходимо включить такт периферии I2C. Во-вторых, правильно проинициализировать линии портов. В-третьих, не забыть "соединить" I2C с линиями портов, правильно взведя соответствующие биты в I2C->ROUTE. Я настоятельно рекомендую использовать периферийную библиотеку для процессора. Для EFM32 она написана очень умно и эффективно. Помощь прилагается.


Отлично! Пригодится...
Самое интересное, что за основу взят фирменный проект для изучения, где именно средствами этой библиотеки инициализируется тактирование... Буду ковырять... Спасибо еще раз!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Посторонним В...   stm32f0xx + i2c   Sep 2 2012, 09:13
- - kosyak©   Если Вам нужно быстро и I2C "не сильно нагруж...   Sep 2 2012, 18:33
|- - _Артём_   Цитата(kosyak© @ Sep 2 2012, 21:33) Если ...   Sep 2 2012, 19:31
|- - Danis   Цитата(_Артём_ @ Sep 2 2012, 22:31) Стран...   Sep 3 2012, 07:39
- - kosyak©   Тут главное слово быстро - я на CM3 проплюхался не...   Sep 2 2012, 19:44
- - spectral1989   скачайте последнюю либу на сайте http://st.com для...   Sep 3 2012, 04:17
- - kan35   У F0 новый I2C, говорят учли все недочеты прошлых ...   Sep 3 2012, 05:08
- - Посторонним В...   примеры были от stm320518-eval ... перекомпилил с...   Sep 3 2012, 08:13
- - kosyak©   Могу дать в качестве примера. Без переделки мой ва...   Sep 3 2012, 09:01
|- - Посторонним В...   Цитата(kosyak© @ Sep 3 2012, 09:01) Могу ...   Sep 3 2012, 10:06
- - kosyak©   Ну вот собственно сам код. Не смотрите на нескольк...   Sep 3 2012, 10:21
|- - Посторонним В...   Цитата(kosyak© @ Sep 3 2012, 10:21) Ну во...   Sep 3 2012, 11:17
- - kosyak©   Пины настроены как выход с открытым коллектором - ...   Sep 3 2012, 11:29
|- - Посторонним В...   Цитата(kosyak© @ Sep 3 2012, 11:29) Пины ...   Sep 3 2012, 11:58
- - kosyak©   Копировал и забыл про эти константы. Вот static c...   Sep 3 2012, 12:06
- - Посторонним В...   #define I2C_SCL_PIN GPIO_Pin_0 #define I2C_S...   Sep 3 2012, 12:38
- - kosyak©   Думаю что у вас будет как то так #define I2C_SCL_...   Sep 3 2012, 13:28
- - Посторонним В...   УРРРРРРРРРРРРРРРРРРААААААААААААААААААААААААААА...   Sep 3 2012, 14:06
- - kosyak©   Хм..эт чего мой код заработал? Или удалось запусти...   Sep 3 2012, 14:22
|- - Посторонним В...   Цитата(kosyak© @ Sep 3 2012, 14:22) Хм..э...   Sep 3 2012, 15:16
- - kosyak©   Код то у меня есть...только он писан давно и для д...   Sep 3 2012, 15:47
|- - Посторонним В...   Цитата(kosyak© @ Sep 3 2012, 15:47) Код т...   Sep 3 2012, 16:33


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 21:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01421 секунд с 7
ELECTRONIX ©2004-2016