| Микроконтролери и електроника 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/ |
|