Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 18.09.2006, 21:51   #1
Nik0lay
Прохожий
 
Регистрация: 18.09.2006
Сообщений: 2
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Nik0lay на пути к лучшему
По умолчанию Черт, мозги уже плавятся..(Не пашет i2c)

Здасьте всем!
Не так давно начал осваивать микроконтроллеры с компилятором hi-tech PICC.
Простенькое все получается (типа светодиодиками поморгать).
Конкретно встрял с i2c. Уже не знаю на что кидаться. Спалил один чип пока не наткнулся на протеус, но и там не хочет работать.
Перебрал много примеров, но успеха не добился. Зад..й чувствую что решение рядом.
Прошу знатоков оказать помощь.
Есть проект протеуса, не могли бы набросать примерчик записи/считывания на/с микросхемы памяти на PICC(MPLAB). Нужно именно на те микросхемы и проц какие в проекте, тк они собраны "в железе" и дальнейшаа работа будет именно с ними.

Добавочка.
Если смысл качать HI-TIDE? (сейчас я пишу в MPLAB) и чем принципиально отличаются demo и free версии.

Спасибо.

Прикрепленный файл: 5334452.rar
Реклама:
Nik0lay вне форума  
Непрочитано 18.09.2006, 22:45   #2
Muzicant
Прописка
 
Регистрация: 21.06.2003
Сообщений: 118
Сказал спасибо: 0
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
Muzicant на пути к лучшему
По умолчанию

Вот кусок программы. все немного деревяное, но зато точно работает.
;Модуль процедур и функций I2C устройств

;**********************************
; Процедура stop_bit
Stop_Bit
bcf PORTA,SCL
bcf PORTA,SDA_W
bsf PORTA,SCL
bsf PORTA,SDA_W
return
;**********************************
; Процедура start_bit
Start_Bit
bsf PORTA,SDA_W
bsf PORTA,SCL
bcf PORTA,SDA_W
bcf PORTA,SCL
return
;**********************************
;ФУНКЦИЯ Check_Bus - Check I2C Bus
;Возвращает out = 1, если шина BUSY
Check_Bus
bcf tbit1, out ;сброс выходного бита

bsf PORTA,SCL ;установка в 1 на всякий случай
bsf PORTA,SDA_W ;отключение МАСТЕРА от шины...
btfsc PORTA,SDA_R
return
;Если не ответил - подождем и спросим еще разок
nop
nop
call Reset_Bus
nop
nop
;
btfss PORTA, SDA_R
bsf tbit1, out ; "BUSY!!!"
return
;**********************************
;--------------------------------------------------------------
; Процедура WriteByte записывает байт в Slave устройсво
; для задания адреса надо сделать ручную корректеровку...
; Входная информация из W регистра...
Write_Byte
;--------------------------------------------------------------
;передаем переменную в i2c_var1
movwf i2c_var1
;Формируем счетчик
movlw 8
movwf i2c_var2
;Сброс SCL в 0 на всякий...
bcf PORTA,SCL
; пишем бит
wb btfsc i2c_var1, 7
goto hi
;низкий уровень
bcf PORTA, SDA_W
goto wbl
hi ;высокий уровень
bsf PORTA,SDA_W
;=================
wbl
;Щелкаем...
bsf PORTA,SCL
bcf PORTA,SCL
;=================
;вычитаем счетчик битов...
decfsz i2c_var2, f ;если 0 то пропустить...
goto wn
goto fin
wn bcf STATUS,C ;сбросим на всякий С-флаг переноса/заема
rlf i2c_var1,f
goto wb ;следующий бит
;=================
fin ;все...главное не зыбыть спросить подтверждение!...
return
;--------------------------------------------------------------
; Процедура Read_Byte считывает 8 бит при передаче SLAVE-устройством
; Выходной байт записывается в W...
Read_Byte
;Устанавливаем SDA_W в HIGH...
bsf PORTA,SDA_W
;обнуляем рабочий регистр i2c_var1
clrf i2c_var1
;Формируем счетчик
movlw 8
movwf i2c_var2
;считываем байт
;сдвиг регистра влево...
rbl1 bcf STATUS,C
rlf i2c_var1, f
;начало такта синхронизации...
bsf PORTA,SCL
;Чтение состояния SDA
btfsc PORTA, SDA_R
bsf i2c_var1, 0
;Конец такта синхронизации
bcf PORTA,SCL
;вычитание счетчика
decfsz i2c_var2,f
goto rbl1
movf i2c_var1,w
return
;--------------------------------------------------------------
;Функция Read_Ack - читает подтверждение от SLAVE и
; выставляет флажок tbit1.out, если Slave не подтвердил
Read_Ack
bcf tbit1, out ;сброс выходного бита

bsf PORTA, SDA_W ;отключение

bsf PORTA, SCL
;-------------------------------------------------------------
;послушаем
btfsc PORTA, SDA_R
bsf tbit1, out ; 1 - Slave не подтвердил !
;-------------------------------------------------------------
bcf PORTA, SCL
return
;--------------------------------------------------------------
; Процедура Write_Ack выдает в линию
;положительный подтверждающий сигнал
Write_Ack
bcf PORTA, SDA_W
bsf PORTA, SCL
bcf PORTA, SCL
bsf PORTA, SDA_W
return
; Процедура Write_No_Ack выдает в линию
;отрицательный подтверждающий сигнал
Write_No_Ack
bsf PORTA, SDA_W
bsf PORTA, SCL
bcf PORTA, SCL
return
;**********************************
;--------------------------------------------------------------
; Процедура Сброса I2C устройств
;--------------------------------------------------------------
Reset_Bus
; 1-SDA и SCL в "1"
; 2-10 раз взмахнуть синхронизацией,
; 3-свормировать стоп-бит
; 4-Если SDA=0 - Ждать
;============================
bsf PORTA, SCL
bsf PORTA, SDA_W
;============================
; 10 синхронизацией в любом случае...
movlw 10
movwf i2c_var1
ReBL1 bcf PORTA,SCL
bsf PORTA,SCL
decfsz i2c_var1,f
goto ReBL1
;============================
;Формирование СТОП-бита
call Stop_Bit
;============================
; 4-Если SDA=0 - Ждать
btfss PORTA, SDA_R
goto $-1

return
Muzicant вне форума  
Непрочитано 20.09.2006, 20:32   #3
Nik0lay
Прохожий
 
Регистрация: 18.09.2006
Сообщений: 2
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Nik0lay на пути к лучшему
По умолчанию

Спасибо! Будем добивать.
и искать, искать, искать.....
Nik0lay вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уже почти год лежит vinni Ремонт оргтехники 2 30.10.2008 15:22
IC TEA1610 кто нибудь уже применял ? tauP10 Источники питания и свет 0 18.03.2008 14:11
PIC уже 32 слышали? DL36 Микроконтроллеры, АЦП, память и т.д 5 06.11.2007 18:11
Я новичок (уже третий год) Помогите пожалуйста со схемой. recoil Автоматика и аппаратура связи 6 25.10.2006 10:00


Часовой пояс GMT +4, время: 20:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot