Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
15.03.2007, 13:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
шина I2C
Вопрос возник если передавать slave устройству такую цепочку: старт-адрес(r/w=0)-команда-старт(r/w=1)-данные-данные-стоп
если после принятия последних данных выдать бит потверждения и потом стоп,конфликта не будет?
по описанию не надо выдовать последний раз потверждения
|
|
|
|
15.03.2007, 16:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
хочу считать из датчика температуры DS1621 с помощью PIC16F28A ПО ШИНЕ I2C,не выходит,может кто посмотрет и подскажет в чем дело?
Прикрепленный файл: 805195.rar
|
|
|
|
15.03.2007, 16:43
|
|
Временная регистрация
Регистрация: 21.04.2005
Сообщений: 56
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Зайди на MICROCHIP.RU, в поиске задай:
I2C или DS1621 или DS1307, там есть готовые исходники.
В твоих твореньях не каждый согласится разбираться.
А вот на конкретные вопросы ответят.
|
|
|
|
15.03.2007, 17:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
да сам разобрался уже
|
|
|
|
15.03.2007, 19:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
как сделать повторный старт? не пойму,получается как стоп
при выходи из подпрограммы SCL и SDA сброшены,а в подпрограмме старта выставляется сначало ноль на SDA,потом на SCL
|
|
|
|
16.03.2007, 10:30
|
|
Временная регистрация
Регистрация: 21.04.2005
Сообщений: 56
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Вписываешь для повторного старта: call start
start ;Генерирование начального условия START
BANC_1
bcf TRISA, SDA ;SDA как выход
BANC_0
bsf PORTA,SCL
nop
bsf PORTA,SDA
nop
bcf PORTA,SDA
nop
bcf PORTA, SCL
return
|
|
|
|
16.03.2007, 17:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
спасибо IURY,попробую
|
|
|
|
17.03.2007, 09:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Что то я не догоняю,если мы установим сначало на SCL=1,потом на SDA=1 получится команда стоп,потом заново делаем старт SDA=0,потом SCL=0
Может и получается повторный старт ,но в протеусе не видно этого,записать могу по шине,а считать не получается с датчика
Чтение идет так: старт-адрес(r/w=0)-команда(АА)-повторный старт-адрес(r/w=1)-старший байт-младший байт-стоп
вот взял из описания шины,показан старт и повторный стар
-- Прилагается рисунок: --
|
|
|
|
17.03.2007, 09:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
у меня сомнения,а не получается ли когда я начинаю делать повторный стар,получается как стоп
|
|
|
|
17.03.2007, 10:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
ура ![Внимание!](images/smilies/icon_exclaim.gif) получилось
оказывается повторный стар надо вот так делать
-- Прилагается рисунок: --
![](https://kazus.ru/nuke/users_images/17032007/345192.JPG)
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:51.
|
|