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

 
 
> stm32 i2c
Dron_Gus
сообщение Nov 6 2009, 08:26
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Что-то не совсем адекватно работает модуль I2C2. Или я что-то не учел.
Кто-нить с ним работал. Есть какие-нить дополнительные грабли, кроме описанных в errat'е?
Симптомы: идет постоянный обмен с 8 устройствами. STM32 мастер. В какой-то момент общение со всеми устройствами выпадает на Ack Failed в момент передачи адреса. Отваливаются сразу все. Через некоторое время обмен восстанавливается.

З.Ы. на первом i2c висят часы и с ними никаких проблем не обнаружено.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ruslan-maniak
сообщение Feb 25 2014, 11:16
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Хочу поднять эту тему. Пытаюсь завести I2C через CPAL вместе с freeRTOSом. Подскажите как в cpal_conf.h замутить таймер через vApplicationTickHook(), который у меня отсчитывает миллисекунды.
Я так полагаю это делается В от здесь. Но как правильно это дело задефайнить не догоняю.
Код
/*  -- Section 4 :         **** Configure Timeout method, TimeoutCallback ****

    Description: This section allows you to implement your own Timeout Procedure.
                 By default Timeout procedure is implemented with Systick timer and
                 CPAL_I2C_TIMEOUT_Manager is defined as SysTick_Handler.
                 */


#define _CPAL_TIMEOUT_INIT()           SysTick_Config((SystemCoreClock / 1000));\
                                                          NVIC_SetPriority (SysTick_IRQn, 0)
                                       /*<! Configure and enable the systick timer
                                       to generate an interrupt when counter value
                                       reaches 0. In the Systick interrupt handler
                                       the Timeout Error function is called. Time base is 1 ms */

#define _CPAL_TIMEOUT_DEINIT()         SysTick->CTRL = 0        /*<! Disable the systick timer */


#define CPAL_I2C_TIMEOUT_Manager       SysTick_Handler         /*<! This callback is used to handle Timeout error.
                                                                     When a timeout occurs CPAL_TIMEOUT_UserCallback
                                                                     is called to handle this error */
#ifndef CPAL_I2C_TIMEOUT_Manager
   void CPAL_I2C_TIMEOUT_Manager(void);
#else  
   void SysTick_Handler(void);  
#endif /* CPAL_I2C_TIMEOUT_Manager */

/*#define CPAL_TIMEOUT_UserCallback        (void)*/                  /*<! Comment this line and implement the callback body in your
                                                                      application in order to use the Timeout Callback.
                                                                      It is strongly advised to implement this callback, since it
                                                                      is the only way to manage timeout errors. */

В общем основной вопрос как прикрутить к CPAL свой собственный таймер.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dron_Gus   stm32 i2c   Nov 6 2009, 08:26
- - Dron_Gus   Покопался на форуме ST. Вообщем, хотели как лучше,...   Nov 6 2009, 12:37
- - IgorKossak   Посмотрите здесь свежак: STM32F10xxx devices: adva...   Nov 6 2009, 18:01
- - Dron_Gus   Цитата(IgorKossak @ Nov 6 2009, 21:01) По...   Nov 8 2009, 18:57
|- - KnightIgor   Цитата(Dron_Gus @ Nov 8 2009, 20:57) Тепе...   Jul 11 2012, 08:32
|- - DmitryM   Цитата(KnightIgor @ Jul 11 2012, 12:32) Е...   Jul 11 2012, 10:00
|- - esaulenka   Цитата(KnightIgor @ Jul 11 2012, 12:32) М...   Jul 10 2013, 19:23
- - brag   У меня тоже он че-то не идет. Работает некоторое в...   Aug 12 2011, 22:29
- - rexton   Еще вопрос Пытаюсь запустить обмен по шине на пре...   Jul 10 2012, 07:29
|- - adnega   Цитата(rexton @ Jul 10 2012, 11:29) Еще в...   Jul 10 2012, 09:11
- - kan35   Рекомендации ST по поводу I2C: Это периферийное у...   Jul 10 2012, 10:23
- - sls_   Прошу прощения, разобрался, напутал в чтении.   Jul 18 2012, 09:26
|- - LeonVS   Всем доброго времени суток! Помогите разобрать...   Mar 8 2013, 18:50
|- - KnightIgor   Цитата(LeonVS @ Mar 8 2013, 19:50) Всем д...   Mar 11 2013, 08:49
- - drcepera   Доброго времени суток. Юзаю i2c на STM32F4DISCOVER...   Jul 10 2013, 09:00
|- - Lotor   Цитата(drcepera @ Jul 10 2013, 13:00) тай...   Jul 10 2013, 09:43
- - drcepera   Тээк.. Если прерывание разрешено в таймере (бит Up...   Jul 10 2013, 12:22
|- - _Артём_   Цитата(drcepera @ Jul 10 2013, 15:22) Есл...   Jul 10 2013, 12:45
|- - drcepera   Цитата(_Артём_ @ Jul 10 2013, 16:45) Нужн...   Jul 10 2013, 13:08
|- - Lotor   Цитата(drcepera @ Jul 10 2013, 17:08) то ...   Jul 10 2013, 16:38
- - drcepera   OMG.. Извиняюсь, товарищи. Нашел таки косяк ) Датч...   Jul 19 2013, 09:38
- - kan35   Я убрал всю инициализацию таймеров в CPAL (закомме...   Feb 26 2014, 16:57
- - Ruslan-maniak   Понятно. Спасибо.   Feb 27 2014, 02:06
- - Ruslan-maniak   А ещё такой вопрос, не касающийся CPAL: может ли б...   Feb 27 2014, 10:16


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 19:10
Рейтинг@Mail.ru


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