Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
08.04.2012, 15:32
|
|
Частый гость
Регистрация: 19.03.2012
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Проблема в организации I2C между ds1307 и pic16f1826
Добрый день, проблема в организации I2C c ds1307. Не устанавливается стартовый бит SEN, не могу понять отчего, вроде все правильно делаю. Кто сможет помогите)
КОД.
Код:
|
list p=16F1826
#include "p16F1826.inc"
__config _CONFIG1, 01864h
__config _CONFIG2, 03DFFh
org 0
goto start
start
; ++++++++++++++++ устанавливаем необходимые значения специальных регистров +++++++++++++++++++++++
movlw 0ffh
movwf PORTB
movlb 1h
movlw b'00100010'
movwf TRISB
movlb 4h
movlw b'00001000'
movwf SSP1CON1
clrf SSP1CON2
movlw b'00100000'
movwf SSP1CON3
bsf SSP1CON1, SSPEN
bsf SSP1CON2, SEN
clrf BSR
ddd btfss PIR1, SSP1IF
goto ddd
bcf PIR1, SSP1IF
movlb 4h
movlw 0d0h
movwf SSP1BUF
clrf BSR
ttt btfss PIR1, SSP1IF
goto ttt
bcf PIR1, SSP1IF
; далее последующая передача данных на ds1307
end |
Последний раз редактировалось dosikus; 08.04.2012 в 16:01.
|
|
|
|
08.04.2012, 21:04
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
Очевидно, у тебя возникает конфликт шины и устанавливается бит BCL1IF в регистре PIR2, из-за того, что на порту RB1/SDA присутствует низкий уровень.
|
|
|
|
08.04.2012, 21:32
|
|
Частый гость
Регистрация: 19.03.2012
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
Так спасибо, а можно рассказать как это исправить? я в целом все правильно делаю или нет?
|
|
|
|
08.04.2012, 21:51
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
Подтянуть к плюсу питания линию SDA, поскольку на ds1307 она с открытым коллектором, а на контроллере вначале перед передачей проверяется наличие высокого лог.уровня.
|
|
|
|
08.04.2012, 22:08
|
|
Частый гость
Регистрация: 19.03.2012
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
movlw 0ffh
movwf PORTB
так я проде установил на всех выводах порта Б высокий уровень
|
|
|
|
08.04.2012, 22:35
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
Да неее, внешняя подтяжка, внешняя, резистором вне контроллера. В протеусе есть цифровой резистор Pullup даже. Внутренняя на контроллере отключается. Ну даташит контроллера то посмотри, схему I2C. Там нигде нет внутренней подтяжки.
Высокий уровень на выходе - это не то. В режиме I2C на линиях SDA, SCL это не имеет никакого значения, они работаеют под управлением модуля MSSP.
Вообще, я бы рекомендовал для тренировки гораздо более простой контроллер с модулем MSSP, например, PIC16F677. Меньше побочной "мишуры", компактнее организация памяти, легче разобраться.
Последний раз редактировалось Bumbarra; 08.04.2012 в 22:43.
|
|
|
|
08.04.2012, 23:29
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
Вопрос решили перестановкой конфигурации портов
[HTML]start
; ++++++++++++++++ устанавливаем необходимые значения специальных регистров +++++++++++++++++++++++
movlb 1h
movlw b'00100010'
movwf TRISB
clrf BSR
movlw 0ffh
movwf PORTB[/HTML]
http://forum.cxem.net/index.php?showtopic=106364
|
|
|
|
09.04.2012, 00:03
|
|
Частый гость
Регистрация: 19.03.2012
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
да да да, спасибо, совсем забыл про резисторы( а каких номиналов они должны быть?
|
|
|
|
09.04.2012, 00:15
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
Цитата:
|
Вопрос решили перестановкой конфигурации портов
|
Ха-ха. Не угадал ты, однако.
Линия должна поддерживаться в лог.1 внешними резисторами. У обоих микросхем входы высокоомные, а в реал-тайм-часах выход с открытым коллектором - просто не откуда взяться высокому лог.уровню.
Какого номинала? Если для моделирования в протеусе, то есть PULLUP резистор (так и называется в библиотеке.
|
|
|
|
09.04.2012, 00:16
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: проблема в организации I2C между ds1307 и pic16f1826
4.7кОм - 10 кОм
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:42.
|
|