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

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

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

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

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

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

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

 
Опции темы
Непрочитано 05.05.2009, 21:56  
qazim
Частый гость
 
Аватар для qazim
 
Регистрация: 09.04.2005
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 16 раз(а) в 10 сообщении(ях)
qazim на пути к лучшему
По умолчанию

Можеть это поможеть http://col2000.free.fr/copieur/cop_indx.htm
Реклама:
qazim вне форума  
Непрочитано 05.05.2009, 22:07  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Подтяжка +5V

Сообщение от tolyanv8
Исхитрился, допаял
Теперь читает FF FF FF FF ....,
но только не то, что надо
Верной дорогой идЁте товарищ
realid вне форума  
Непрочитано 06.05.2009, 17:37  
tolyanv8
Прописка
 
Аватар для tolyanv8
 
Регистрация: 29.09.2007
Адрес: Донецк, ????
Сообщений: 199
Сказал спасибо: 21
Сказали Спасибо 19 раз(а) в 15 сообщении(ях)
tolyanv8 на пути к лучшему
По умолчанию Подтяжка +5V

Кстати, теперь к тому же результату приводят эксперименты с
программным включением/выключением внутренних подтяжек,
одна из причин глюков была ошибка в коде, которую сейчас я устранил
tolyanv8 вне форума  
Непрочитано 07.05.2009, 20:36  
tolyanv8
Прописка
 
Аватар для tolyanv8
 
Регистрация: 29.09.2007
Адрес: Донецк, ????
Сообщений: 199
Сказал спасибо: 21
Сказали Спасибо 19 раз(а) в 15 сообщении(ях)
tolyanv8 на пути к лучшему
По умолчанию WOW работает!!! всем респект!

Даже на внутренних подтяжках
Код:
#define 	SCL_PIN	PORTA,0x4  	; SCL 
#define 	SDA_PIN	PORTA,0x5  	; SDA
#define	        SDA_SET   TRISA,0x5	; SDA - ввод/вывод
#define	        SCL_SET   TRISA,0x4	; SCL - ввод/вывод
#define	        SDA_PULL   WPUA,0x5	; SDA - pull
#define	        SCL_PULL   WPUA,0x4	; SCL - pull
-------------------//---------------------
i2c_init
		bsf     STATUS,RP0 ;bank1
                bcf     SDA_SET ;SDA - сначала на вывод данных
		bcf     SCL_SET ;SCL - тоже
		bcf     STATUS,RP0        ; set file register bank to 0
                bcf	SCL_PIN ;SCL - низкий уровень
		bsf     SDA_PIN
		call	i2c_wait
		bsf	SCL_PIN ;SCL - высокий уровень
		bcf     SDA_PIN ;инициируем нисходящий фронт
		call	i2c_wait
		bcf	SCL_PIN ;SCL - низкий уровень
		return;

i2c_close
		bsf     STATUS,RP0 ;bank1
                bcf     SDA_SET ;SDA - сначала на вывод данных
		bcf     SCL_SET ;SCL - тоже
		bcf     STATUS,RP0        ;bank 0
		bcf     SDA_PIN
		bsf	SCL_PIN
		call	i2c_wait
		bsf     SDA_PIN ;инициируем восходящий фронт
		return;

i2c_wait
		movlw	0x03
		movwf	i2c_count
wait		nop
		decfsz	i2c_count,1
		goto	wait
		return;
-------------------//---------------------
i2c_send_byte
		bsf     STATUS,RP0 ;bank1
		bcf     SDA_SET ; SDA - вывод 
		bcf     SCL_SET ;SCL - на вывод
		bcf     STATUS,RP0        ;bank 0
		bcf	SCL_PIN  ; SCL - 0
		call	i2c_wait
		movlw	0x08
		movwf	i2c_tmp
send_bit
		bcf     STATUS,RP0        ;bank 0
		btfsc	i2c_byte,7	; бит данных - 0?
		bsf	SDA_PIN	; нет,выводим 1 на SDA

		bsf     STATUS,RP0 ;bank1
		bsf     SCL_SET ;SCL - на вход!!!
		bcf	OPTION_REG,NOT_RAPU ; этой командой переводим SCL в режим "мягкой" 1
		bsf	SCL_PULL

get_scl_write	btfss	SCL_PIN ; и ожидаем, пока ведомое устройство не попустит :)
		goto	get_scl_write
		; попустило :)))
		call	i2c_wait ; ждем-ссс

		rlf	i2c_byte,1	; сдвигаем влево байт данных
		bsf     STATUS,RP0 ;bank1
		bcf     SCL_SET ;SCL - на выход
		bcf     STATUS,RP0        ;bank 0
		bcf	SCL_PIN	; выводим 0 на SCL 
		bcf	SDA_PIN	; выводим 0 на SDA 

		call	i2c_wait

		decfsz	i2c_tmp,1	; конец цикла ?
		goto	send_bit	; нет - переход

		bsf     STATUS,RP0 ;bank1
		bsf     SDA_SET	; SDA - ввод
		bsf     SCL_SET ;SCL - на вход!!!
		bcf	OPTION_REG,NOT_RAPU ; этой командой переводим SDA! в режим "мягкой" 1
		bsf	SDA_PULL ;!!!
		bsf	SCL_PULL
		bcf     STATUS,RP0        ;bank 0
get_scl_ack	btfss	SCL_PIN ;	ожидаем подтверждения SCL!!!
		goto	get_scl_ack

get_ack		btfsc	SDA_PIN	; читаем  АСК, и идем дальше 
		nop
  ;		goto	get_ack	; или что нить делаем... (т.е. ожидаем подтверждения ACK :)
		call	i2c_wait
		bsf     STATUS,RP0 ;bank1
		bcf     SCL_SET ;SCL - на выход
		bcf     STATUS,RP0        ;bank 0
		bcf	SCL_PIN	; выводим 0 на SCL 
		bcf	SDA_PIN	; выводим 0 на SDA 
		call	i2c_wait
		return;

;*************************************************  *********************
; I2c_read
; считывание 8 бит с шины
;
i2c_read_byte
		bsf     STATUS,RP0 ;bank1
		bsf	SDA_SET  ;SDA - на ввод
		bcf     SCL_SET  ;SCL - на вывод
		bcf	OPTION_REG,NOT_RAPU ; этой командой переводим SDA в режим "мягкой" 1
		bsf	SDA_PULL ;!!!
		bcf     STATUS,RP0 ;bank 0
		bcf	SCL_PIN  ;SCL - на 0
		call	i2c_wait
		movlw	0x08
		movwf	i2c_tmp
read_bit	rlf	i2c_byte,1	; сдвигаем байт влево
		bcf	i2c_byte,0	; устанавливаем бит в 0

		bsf     STATUS,RP0 ;bank1
		bsf     SCL_SET ;SCL - на вход!!!
		bcf	OPTION_REG,NOT_RAPU ; этой командой переводим SCL в режим "мягкой" 1
		bsf	SCL_PULL

		bcf     STATUS,RP0        ;bank 0
get_scl		btfss	SCL_PIN		; и ожидаем, пока ведомое устройство не попустит :)
		goto	get_scl
		; попустило  - идем дальше ;)))
		call	i2c_wait

		btfsc	SDA_PIN		; SDA - 0?
		bsf	i2c_byte,0	; нет - устанавливаем бит в 1

		call	i2c_wait

		bsf     STATUS,RP0 ;bank1
		bcf     SCL_SET ;SCL - на выход
		bcf     STATUS,RP0        ;bank 0
		bcf	SCL_PIN	; выводим 0 на SCL 
		call	i2c_wait
		decfsz	i2c_tmp,1		; конец цикла ?
		goto	read_bit		; нет - переход
		return;

send_ack
		bsf     STATUS,RP0 ;bank1
		bcf	SDA_SET		; SDA - вывод для АСК 
		bcf     STATUS,RP0 ;bank 0
		bcf	SDA_PIN		; выдаем АСК
		bsf     STATUS,RP0 ;bank1
		bsf     SCL_SET  ;SCL - на ввод!!!
		bcf	OPTION_REG,NOT_RAPU ; этой командой переводим SCL в режим "мягкой" 1
		bsf	SCL_PULL
		bcf     STATUS,RP0        ;bank 0
get_ack_scl	btfss	SCL_PIN
		goto	get_ack_scl ;опять ждем :)))
		call	i2c_wait
		bsf     STATUS,RP0 ;bank1
		bcf     SCL_SET ;SCL - на выход
		bcf     STATUS,RP0        ;bank 0
		bcf	SCL_PIN	; выводим 0 на SCL 
		call	i2c_wait
		return;
tolyanv8 вне форума  
Непрочитано 08.05.2009, 18:59  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: WOW работает!!! всем респект!

Ну братцы... люди для вас уже всё давно написали...

AN554 от Микрочипа... лень вам поискать ....

Прикрепленный файл: 7237468.RAR
picavr вне форума  
Непрочитано 08.05.2009, 20:49  
tolyanv8
Прописка
 
Аватар для tolyanv8
 
Регистрация: 29.09.2007
Адрес: Донецк, ????
Сообщений: 199
Сказал спасибо: 21
Сказали Спасибо 19 раз(а) в 15 сообщении(ях)
tolyanv8 на пути к лучшему
По умолчанию Re: WOW работает!!! всем респект!

Сорри, просто не знал про него (хотя нарыл много другой доки
Прошу не судить строго и не бить больно (все-таки первый более-менее серьезный проект
Кстати приведенный код по-моему не использует внутренние
PULL-UPы, главное - что докопался сам!
(и до PULL-UP-ов тоже
В любом случае спасибо за информацию !!!
tolyanv8 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC16F630 Lex_DJ Микроконтроллеры, АЦП, память и т.д 39 06.11.2010 22:22
asm программирование МК PIC16F630 SVDimon Микроконтроллеры, АЦП, память и т.д 13 13.12.2007 12:15
программирование PIC16F630 Lex_DJ Микроконтроллеры, АЦП, память и т.д 0 25.05.2007 10:39
Проблема с I2C HaZaR Микроконтроллеры, АЦП, память и т.д 3 04.07.2005 17:10
I2C chipic128 Микроконтроллеры, АЦП, память и т.д 4 23.02.2005 02:19


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


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