| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| I2C MSSP PIC16F87xx http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=837 |
Страница 1 от 1 |
| Автор: | ¶ [ Чет Юли 07, 2005 11:16 am ] | |||||||||
| Заглавие: | I2C MSSP PIC16F87xx | |||||||||
Колеги, 3 дена се боря както опълченците на Шипка с MSSP модула на PIC16FXX професорите ( вече роня крокодилски сълзи
Ако само пиша буфер, от време на време работи, ако само чета в буфер, също работи от време на време, ако обаче запиша буфер, след което чета буфер, зависва на проверката на SSPIF в I2CWait(); когато записвам адреса чрез I2CWriteAddr(); Някой има ли нещо пробвано и работещо за буфери с MSSP модула щото ми иде да метна щангата през прозореца ... |
||||||||||
| Автор: | Nikola Kirov [ Чет Юли 07, 2005 11:44 am ] |
| Заглавие: | |
Погледна ли в пдф-а на чипа с който работиш. Имам неприятен опит с една 24ка дето се оказа че буфера и е 16 байта точно при този производител а работих с пдф на друга фирма там беще 32 или повече,вецхе нямам спомени. Производителите си позволяват такива волности с големината на буфера |
|
| Автор: | Predator_MF [ Чет Юли 07, 2005 11:47 am ] |
| Заглавие: | |
Същия проблем при мене преди година....доста си играх....накрая му бих шута на тоя MSSP |
|
| Автор: | ¶ [ Чет Юли 07, 2005 11:54 am ] |
| Заглавие: | |
Буфера си точно 64 байта дълъг, но и 8 байта да се опитам да трансферирам се държи по същия начин. Когато обаче работят два MSSP модула, единия Master, другия Slave, или когато Master е I80552, a Slave MSSP модула работи на 100 KHz та пушек се вдига, един път не ще да забие. Софтуерно като го правя работи, обаче трябва да тръгне хардуерно, защото губя много време ако е софтуерно, а процесора е много натоварен и с други задачи. Ако само чета произволно дълъг буфер с MSSP модула всичко си работи нормално, дори и на 400kHz, обаче като се комбинира четене/запис работата се усира. |
|
| Автор: | bateAz [ Чет Юли 07, 2005 4:40 pm ] |
| Заглавие: | |
Някои производители пишат, че след команда за запис чипът не отговаря около 5 милисекунди, та е добре след записа, ако искаш да четеш нещо, първо да го полираш дали е готов. |
|
| Автор: | Nikola Kirov [ Чет Юли 07, 2005 4:50 pm ] |
| Заглавие: | |
Ако аз имах такъв проблем щях да сваля с логическия анализатор трансфера с паметта и оттам щях да изясня какъв точно е проблема и като знам проблема вече да ми е по лесно да определя къде бърка пика. |
|
| Автор: | ¶ [ Чет Юли 07, 2005 5:45 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
След като се стартира процеса на запис, можеш да се опитваш да започнеш нов трансфер като записваш адрес в коя да е i2c памет, но тъй като е заета, ще връща NACK, това го правя в цикъл ( т.е. това е полирането ). Когато отговори, изпращам адреса за четене и правя верификация. Логически анализатор, дори не съм виждал през живота си таквоз животно, та камо ли в къщи да имам такова И аз, като МикроЧип, работя на тъмно, и пускам от време на време work around-и ( така ли се пишеше ? ), т.е. метода на пробите и грешките е безотказен Оказва се, че MSSP модула се усира в следващия код:
от който няма излизане. Като го преработих така:
т.е. докато 24LC515 е заета със записа, след опита за записа на адрес правя преинициализация на MSSP модула, при което проблема се реши. Даже изпробвах 24LC515 и на 1 MHz ( а я дават, че не може да работи на 1 MHz ) и пак си работи животното.... П.П. Добре, че не си изхвърлих сутринта щангата. |
|||||||||||||||||||
| Автор: | Цецо [ Чет Юли 07, 2005 7:48 pm ] |
| Заглавие: | |
Абе аз така тънко да питам, що ползваш тия загубени драйвери. То си има регистри, мааай вътре като бял човек. Аз на С-то за Пикове библиотеките за хардуера не ползвам. Само неприятности, баси. Е не знам как е при CCS, ама на MPLABC18 са пълна скръб. Или сам си пиша или направо в регистрите, кво да му се глезя. |
|
| Автор: | bateAz [ Чет Юли 07, 2005 7:58 pm ] |
| Заглавие: | |
Аз съм пробвал CCS и функциите за SPI. След като се борих няколко дена с тях като прасе с тиква, ги зае*ах. И както каза Цецо, с директен достъп до регистрите си реших проблема за 1 час. |
|
| Автор: | ¶ [ Чет Юли 07, 2005 8:16 pm ] | |||||||||
| Заглавие: | Re: I2C MSSP PIC16F87xx | |||||||||
Ами нал Ви казах, че като не поиска да заработи с моите подпрограми ( драйвери ), реших да опитам с тези на CCS, като си помислих че от 1999г. е изтекла много вода и може и да са си ги оправили, обаче надежда всяка оставете В крайна сметка и аз пиша директно по регистрите. Хубавото е, че моят I2C Мастер тръгна и на 1 MHz, обаче ся забелязвам други проблеми с PIC16F87xx , прехвърля се шум при едновременна работа от I2C шината към PWM модула и обратно ( крачетата са съседни ), трябва едновременно да работят, а пистите са от къси по-къси, кондензатори бол, сложих и 100nF, 1uF, 10uF директно на пиновете на захранванията на PIC16F87xx & 24LC515, ефект нулев, продължават шумилките. |
||||||||||
| Автор: | ToHu [ Чет Юли 07, 2005 9:02 pm ] |
| Заглавие: | |
е, е, е ... стига бе . от крче на краче ....гледа ли го с осцилоскоп ? Д а не ти кляка по захранване . въпреки кондензите, или кофти маса ...... Пробвал ли си да пуснесш писта м-у двете крачета, на земя, и от двее страни естествено ..... чак така да се смущават ..... хмммм |
|
| Автор: | ¶ [ Чет Юли 07, 2005 9:21 pm ] | |||||||||
| Заглавие: | ||||||||||
Утре ще го гледам на скопа, захранването, по-добро от това здраве му кажи, няма калпава маса, това за пистата не разбрах какво искаш да кажеш Като работи I2C-то на 50 kHz няма шум, обаче това не ме устройва, устройва ме 400 kHz и нагоре; при 400 kHz шума осезателно се усеща като неритмично бучене, чувам го на телефонна слушалка, тъй като от PWM модула се синтезира звук. |
||||||||||
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|