| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Ядове при подчинен PIC16F886 и I2C http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=14589 |
Страница 1 от 1 |
| Автор: | ig_ivanov [ Съб Май 21, 2016 11:04 pm ] | |||||||||
| Заглавие: | Ядове при подчинен PIC16F886 и I2C | |||||||||
Здравейте! Имам ядове да подкарам посочения PIC да работи като Slave устройство- по-точно- работи, ама на 75%. След няколко десетки опити за подкарване на примери от интернет, накрая седнах и прочетох документацията на Microchip за работата на slave PIC по I2C шина (AN734) и написах кода. За съжаление успешни са 3/4 от функциите, а именно- запис на байт от основния към подчинения PIC, запис на няколко байта и четене на един байт. Единственото, което се опъва цяла седмица вече е четене на няколко байта (трябват ми 4 поредни)- не става и не става- чете се само първия байт, а останалите 3 са със стойност 0xFF. Това е кода, и ще бъда много благодарен ако някои сподели къде бъркам:
Ако трябва някаква допълнителна информация- готов съм да отговоря. |
||||||||||
| Автор: | stoyanoff [ Пон Май 23, 2016 1:25 pm ] |
| Заглавие: | Re: Ядове при подчинен PIC16F886 и I2C |
Провери дали двата контролера работят на честота, която очакваш! Самият интерфейс не е особено подходящ за връзка м/у 2 контролера. Нямам подходяща платка, на която да тествам кода ти на практика. До колкото си спомнят, последният бит тук определяше посоката на данните! Провери дали това е наред! Опитай да поставиш малко закъснение между изпращаните байтове. Това се сещам за сега... |
|
| Автор: | CarBeta [ Пон Май 23, 2016 2:00 pm ] |
| Заглавие: | Re: Ядове при подчинен PIC16F886 и I2C |
Така, както си го направил, винаги ще праща само по един байт. Като изпратиш първия байт трабва да чакаш АСК от мастъра и тогава зареждаш втория и т.н. докато получаваш АСК от мастъра. В твоя случай когато BF стане нула се излиза от прекъсването и подчинения спира да изпраща, а не изпраща още байтове, както очакваш. Мастъра продължава да си клоква, но чете само свободната линия т.е. FF. И не е хич добра идея целия ти код да е в прекъсването. |
|
| Автор: | ig_ivanov [ Пон Май 23, 2016 4:39 pm ] |
| Заглавие: | Re: Ядове при подчинен PIC16F886 и I2C |
Много благодаря за насоките- оказа се точно SSP1CON2.ACKDT бита от главния PIC- заблудило ме е това, че другите устройства, закачени на шината, си работят без проблеми. Посоченият по-горе код е работещ след като оправих ACKDT флага. Нямам намерение целия код да е в прекъсването- това е само демо, за да подкарам комуникацията. Също така ми е известно, че I2C не е особено подходящ за връзка между PIC- ползва се основно SPI, който в моя случай е малко труден за ползване. Още веднъж благодаря за отговорите. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|