Отговори на тема  [ 9 мнения ] 
PIC18F65J10 + I2C EEPROM Проблем 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Апр 05, 2005 9:34 am
Мнения: 88
Мнение PIC18F65J10 + I2C EEPROM Проблем
Здравейте. Имам един PIC18F65J10 към който съм вързал 24LC01B I2C EEPROM. Вързал съм го към MSSP1 модула. Пулл ЪП резисторите са 4,2К.
ПИК-а пуснат на 10Мхз КВАРЦ с PLL (Работи на 40Мхз)

Проблема е че веднъж тръгва да работи МССП модула, веднъж не.
Тоест пуска се захранване и проца чете един байт от ЕПРОМА и след това продължава. Само че него прави всеки път като се пусне захранване..
Докато си играх с тъпиа ПРОЦ забелязах че като си сложа пръста върху пиновете на кварца и нулата на захранването комуникациата тръгва.
Като тръгне веднъж после ако се рестартира пак тръгва но ако се остави 10-тина минути без захранване после неще да тръгне ( :?: )
Интересното е че независимо дали ще тръгне МССП или не, ПРОЦа си работи нормално (Таимерите и I/O . Това ползвам) ?!?!?!
Ако якой му се е случвало подобно неще или пък знае какъв е проблема моля да помогне че съм го загазил а ми е спешно да го направя..

Благодаря...


.
.
// I2C BUS Config
TRISC=0xff;
SSP1STAT=0x80;
SSP1CON1=0x28;
SSP1CON2=0x00;
SSP1ADD=99; //100KHz

//-----------------------
.
.
.
.nop();
SEN=1;
while(!SSP1IF); // Еи тука веднъж вдига прекъсване, веднъж не
SSP1IF=0;
SSP1BUF=EPROM_W;
while(!SSP1IF); // Еи тук същото нещо...
SSP1IF=0;
while(ACKSTAT);
.
.
.


Пон Фев 25, 2008 9:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
За този контролер нямам идея, но за други Microchip контролери с хардуерен I2C модул често се случва да зависне комуникацията. Същевременно когато направя софтуерна комуникация няма проблеми.

Избягвай в безкраен цикъл да чакаш да се вдигне SSPIF. Включи един софтуерен броч, с който да засичаш колко пъти си преминал през безкрайния цикъл. Като достигнеш някаква критична стойност break и напускаш, като връщаш някакъв код за грешка.
След това задължително преинициализация на хардуера. Доста време си бях загубил да търся причината за странното поведение на MSSP модулите, накрая се отказах. Когато имам възможност си използвам софтуерната комуникация, поне знам, че е бетон.

Сложи хубави филтрови кондензатори на захранването, ако имаш иглички може да се объркат MSSP модула и/или паметта.

Прегледай errata документите, ако има такива за този професор, MSSP има доста бъгчета.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пон Фев 25, 2008 11:05 pm
Профил WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Апр 05, 2005 9:34 am
Мнения: 88
Мнение 
Ами оказва се че ми вдига флаг за BUSCOLLISION и немога да разбера защо?


Пон Фев 25, 2008 11:19 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
SurchO написа:
Ами оказва се че ми вдига флаг за BUSCOLLISION и немога да разбера защо?


Ако имаш само един Мастер на буса, значи софтуера ти куца. Ако са повече от един Мастер, е напълно нормална ситуация. Тук преди време постнах един код за PIC18F, работи коректно, сравни да видиш какво правиш.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пон Фев 25, 2008 11:47 pm
Профил WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Апр 05, 2005 9:34 am
Мнения: 88
Мнение 
само пика и еепрома са на шината, няма нищо друго. Сорса сам го пейстнал... немога да разбера засщо вдига тъпиа флаг за колизия на шината. Сорса съм го взел от сайта на маикрочип. само че там е написан на асемблер но иначе е едно към едно......


Вто Фев 26, 2008 1:14 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Чет Дек 02, 2004 7:22 pm
Мнения: 140
Мнение 
Доколкото разбрах на имаш пулъпи на дата-та , но и на клока. Този на клока е излишен и може да бърка пик-а. Другия го направи на 4.7к, колкото е препоеъчително.

А ти имаш ли кондензатори от пиновете на кварца към маса? Пробвай да ги намалиш на 18пФ, ако са повече.


Вто Фев 26, 2008 11:34 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Апр 05, 2005 9:34 am
Мнения: 88
Мнение 
ами резисторите са ми по 4.7К. Гледах ги в един Аппликеишън на майкрочип. Май се оказва че не всеки път МССП модула успява да вземе контрол над I/O пиновете... ?!?!?

Имам кондензатори към кварза за към маса. пробвах с 5 различни кварца като честота и като модел но не намерих разлика.....

Проблема ми е този:
Note: If at the beginning of the Start condition,
the SDAx and SCLx pins are already sam-
pled low, or if during the Start condition, the
SCLx line is sampled low before the SDAx
line is driven low, a bus collision occurs,
the Bus Collision Interrupt Flag, BCLxIF, is
set, the Start condition is aborted and the
I2C module is reset into its Idle state.

Това е от документа на ПИКА.

по-скоро проблема ми е във втората част. Като го закача на Цифровиа осцилоскоп се визда,че не сваля ДАТА-шината в нула при Старт.
Старнното че от време на време тръгва пустинята...


Вто Фев 26, 2008 2:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Това ми мяза на лоша инициализация на модула. Освен това дай малко време на еепрома да зацепи. При хардуерен I2C трябва пулъп на клока щото подава само ниско ниво и high impedance.


Вто Фев 26, 2008 5:17 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
SSPEN бита на SSPxCON1 регистъра го вдигни с побитово ИЛИ след като си инициализирал всичко. Разрешаваш модула при положение, че имаш още инициализации, а не бива.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Вто Фев 26, 2008 6:33 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 9 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни