02.08.2015, 10:00
|
|
Частый гость
Регистрация: 20.11.2010
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
stm32f103 i2c slave
i2c в slave режиме. Вопрос: после приема пакета мне нужно удерживать SCL в низком состоянии на время обработки данных. Ни где не могу найти как это делать?
|
|
|
|
02.08.2015, 12:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: stm32f103 i2c slave
Если slave не выдаёт в линию ASK, то его либо нет, либо он занят, не так ли?
|
|
|
|
02.08.2015, 14:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: stm32f103 i2c slave
Если не выдаёт - значит, его нет
Если удерживает в нуле - значит, занят
|
|
|
|
02.08.2015, 14:38
|
|
Частый гость
Регистрация: 20.11.2010
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Re: stm32f103 i2c slave
››omercury
Вы не поняли. salve (stm32) принял пакет данных, дальше он должен его обработать и отдать результат мастеру. На время обработки он должен удерживать scl в низком состоянии, когда пакет обработан, контроллер отпускает scl и мастер начинает читать данные (это все согласно стандарта i2c), но я не могу найти как зажать scl. Вообще примеров по slave режиму почти нет, ни на сайте ST ни в интернете.
|
|
|
|
02.08.2015, 20:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: stm32f103 i2c slave
Даташит почитай
Второй сверху абзац в параграфе slave transmitter
|
|
|
|
02.08.2015, 21:55
|
|
Частый гость
Регистрация: 20.11.2010
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Re: stm32f103 i2c slave
niXto, про данный вариант знаю, удержание scl после получения адреса на передачу, он меня не устраивает (требование внешнего устройства). Мне нужно сделать паузу в процессе приема байт. Т.е. принял последний нужный мне байт выставил wait и начал обработку. В другом месте паузу далать нельзя.
|
|
|
|
03.08.2015, 07:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: stm32f103 i2c slave
Пауза выставляется автоматически до тех пор, пока ты не положишь следующий байт в ДР-регистр
|
|
|
|
03.08.2015, 08:12
|
|
Частый гость
Регистрация: 20.11.2010
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Re: stm32f103 i2c slave
niXto, это понятно, но это при операции передачи (slave transmit), мне нужно на приеме, причем прочитав все байты, т.е. автоматическая пауза которая возникает при заполненном DR меня не устраивает.
PS. Еще раз нужно на приеме, прочитать переданный байт и выставить паузу.
|
|
|
|
03.08.2015, 12:03
|
|
Прописка
Регистрация: 31.10.2006
Сообщений: 149
Сказал спасибо: 15
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Буржуи говорят
I2C_StretchClockCmd(I2Cx, ENABLE);
http://stackoverflow.com/questions/2...ock-stretching
Не проверял. (Ваще, модуль i2c stm32 оставляет желать лучшего, мягко говоря )
|
|
|
|
03.08.2015, 18:25
|
|
Частый гость
Регистрация: 20.11.2010
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Re: stm32f103 i2c slave
gks5, нет это из другой оперы. Растягивание клока при задержке чтения DR
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:45.
|
|