Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Не ще да тръгне ма... I2C.
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1617
Страница 1 от 1

Автор:  perro_iv [ Чет Яну 19, 2006 5:18 pm ]
Заглавие:  Не ще да тръгне ма... I2C.

Става въпрос за I2C PIC16F876/20MHz !

Аз нещо не вдявам, ама бая документация изчетох и явно нещо дребно ми убягва.



start
.
.
BANKSEL OPTION_REG
movlw B'11000000'
movwf OPTION_REG
movlw B'00011000'
movwf TRISC
start_I2C
BANKSEL SSPSTAT
movlw B'10000000'
movwf SSPSTAT
movlw D'4'
movwf SSPADD
movlw B'00000000'
movwf SSPCON2

BANKSEL SSPCON
movlw B'00001000'
movwf SSPCON ;в конкретния случай - I2C Master mode, clock = FOSC / (4 * (SSPADD+1))
.
.
.
.
Transmit_data_I2C

BANKSEL SSPCON
bsf SSPCON,SSPEN

BANKSEL SSPCON2
bsf SSPCON2,SEN
btfsc SSPCON2,SEN
goto $-1

BANKSEL PIR1
bcf PIR1,SSPIF
movlw Start_write ;зареждане на изходния регистър
movwf SSPBUF ;с адреса - W/R (Start_write = 10100000)

btfss PIR1,SSPIF
goto $-1
bcf PIR1,SSPIF

BANKSEL SSPCON2
btfss SSPCON2,ACKSTAT
goto Er_2
.
.

Програмата стига до тук и не получава ACK.
Хардуерно всичко е ОК,сигналите ги има по шините, само дето EEPROM-a не отговаря.
Пробвах нещата на ПРОТЕУСА, после и с макета-същия рез.

EEPROM 24XX512/24C08.

Автор:  evc [ Чет Яну 19, 2006 5:44 pm ]
Заглавие: 

Проверката ти за Акнолидж е сгрешена! Ако имаш потвърждение от слейва, SDA става нула - съответно и ACKSTAT=0. Флага е инверсен. Когато имаш акнолидж е нула. А ти тогава отиваш на Er_2.

Автор:  perro_iv [ Пет Яну 20, 2006 11:00 pm ]
Заглавие: 

Еееее, мерси много !!!
Ами да те хората са си го казали и показали, ама кой да забележи...


bit 6 ACKSTAT: Acknowledge Status bit (In I2C Master mode only)
In Master Transmit mode:
1 = Acknowledge was not received from slave
0 = Acknowledge was received from slave



e) MSSP module shifts in the ACK bit from the
slave device and writes its value into the
SSPCON2 register (SSPCON2<6>).

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/