28.02.2014, 20:52
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 183
Сказал спасибо: 25
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
I2C в STM32F37
Кто сталкивался? После инициализации I2C - делаю старт: I2C_GenerateSTART(I2C2, ENABLE); - при этом SDA должно просесть к "0". Реально же после команды старт контроллер сразу отправляет один нулевой байт, от периферии к которой обращаюсь естественно ACKа нет и тут же стоп. Опять SDA и SCK в высоком состоянии. То что отправляется я смотрю на осциллографе. Такое впечатление что включено авто отправления адреса какое-то, о котором я не нашел описания. Код инициализации:
Код:
|
void I2C_init(void) {
GPIO_InitTypeDef GPIO_InitStructure;
I2C_InitTypeDef I2C_InitStruct;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //подаем тактирование на GPIOA
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_4);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_4);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C2, ENABLE); //подаем тактирование на I2C
I2C_InitStruct.I2C_Mode = I2C_Mode_I2C;
I2C_InitStruct.I2C_AnalogFilter = I2C_AnalogFilter_Disable;
I2C_InitStruct.I2C_DigitalFilter = 0x00;
I2C_InitStruct.I2C_OwnAddress1 = 0x00;
I2C_InitStruct.I2C_Ack = I2C_Ack_Enable;
I2C_InitStruct.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C2-›TIMINGR = 0x80201F2E; // --------------------------- скорость 100 кГц
I2C_Init(I2C2, &I2C_InitStruct); |
__________________
Kvsrk85(Андрей)
|
|
|
|
03.03.2014, 18:27
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 183
Сказал спасибо: 25
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: I2C в STM32F37
Для своей задачи разобрался. Очень сложная настройка I2C. Запустить ее без ограничения посылки в 255 байт так и не получилось. Но для моей цели и этого достаточно.
__________________
Kvsrk85(Андрей)
|
|
|
|
03.03.2014, 20:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: I2C в STM32F37
Скачай STM32CubeMX - всё станет простым как тапок
|
|
|
|
03.03.2014, 22:55
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: I2C в STM32F37
Сообщение от niXto
|
Скачай STM32CubeMX
|
Интересно, новая хрень от STM32 поможет nixto сляпать частотомер на STM32 ?
Адын адын...
ЛИ вот не смог ...
__________________
Осторожно , злой кот
|
|
|
|
04.03.2014, 02:00
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 183
Сказал спасибо: 25
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: I2C в STM32F37
Я смотрел STM32CubeMX и сейчас повторно смотрю. Кроме конфигурации портов, оно по моему не дает настраивать периферию. Кроме портов ввода-вывода ничего не конфигурирует. Нет возможности настраивать периферию. Или у меня версия не та, или не нахожу. Объясните пожалуйста как настраивать периферию в этой программе.
__________________
Kvsrk85(Андрей)
|
|
|
|
04.03.2014, 09:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: I2C в STM32F37
Сообщение от kvark85
|
Кроме конфигурации портов, оно по моему не дает настраивать периферию. Кроме портов ввода-вывода ничего не конфигурирует.
|
Она пока корректно работает только с ф4(((
Попробуй выбрать любой чип из ф4 и посмотри, какие возможности она даёт
Возможно, скоро допилят и под ф3
|
|
|
|
05.03.2014, 14:16
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 183
Сказал спасибо: 25
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: I2C в STM32F37
В линейке STM32 есть разные отличающиеся реализации I2C. С STM2F100, например, все просто и ни каких сложностей с I2C не возникло. А в STM32F37 по другому.
__________________
Kvsrk85(Андрей)
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:29.
|
|