יש לי 3 חיישני קירבה אינדוקטיביים עם אספן פתוח NPN-NO:
החיישנים מממשקים ל- PIC16F690 באמצעות סיכה RA0, RA1 ו- RA2, הנה המעגל עבור פין RA0, זהה עבור פין RA1 ו- RA2:
כאשר החיישן מופעל, הנגד למשוך למעלה 10K מקורקע כדי לקרוא את ההיגיון הנדרש.
בעיה:
ממשק זה עובד היטב עבור החיישנים בסיכה RA1 ו- RA2, לעומת זאת, כאשר אחד החיישנים נמצא בממשק עם הפין RA0 וכשאני מפעיל את הכוח, ה- PIC לא יתחיל עד שאלחץ על כפתור MCLR חיצוני. גם לאחר מכן, אם אני מכבה את החשמל ואז מופעל שוב, הבעיה חוזרת ומופיעה והיא לא נעלמת עד שאכין MCLR חיצוני נוסף.
שים לב שכאשר החיישן בסיכה RA0 מוסר מהמעגלים, הכל תקין, ה- PIC מתחיל כרגיל, אין צורך ב- MCLR, והחיישנים הנותרים בסיכה RA1 ו- RA2 עובדים גם כצפוי. מה ניסיתי עד כה: ציפיתי, בנוסף, חשדתי לבעיה במעגל PCB שלי, אז הסרתי את כל החיישנים ושיניתי אותם באמצעות מתג כפתור כדי להבהיר 3 נוריות כדי להבטיח שהכל בסדר עם התוכנית וה- PCB. אין בעיה כאן.
לפני לחיצה על כפתור MCLR, כדי לדעת אם ה- PIC חסום חלקית או חסום לחלוטין, שיניתי את התוכנית כדי להדליק נורית LED כאשר החיישנים ב- RA0 מופעל, אז ניגשתי לפלטת מתכת מהחיישן המודאג, הנורית נדלקת וכשאני מסיר את לוח המתכת מהחיישן (החיישן לא מופעל) הנורית נשארת דולקת.
נראה שהבעיה ספציפית רק לסיכה RA0 של ה- PIC16F690 ורק כאשר היא מממשקת לחיישן קירבה אינדוקטיבי, היא עובדת היטב כאשר משתמשים בלחצן כפתור.
נתיכים משומשים בתוכנית: XT, PUT, NOWDT, NOPROTECT, BROWNOUT, MCLR
XT הוא קריסטל קוורץ 4Mhz עם קבלים 22pF.
השבתתי ADC, CCP, SPI, ו- Comparator.
מגליון הנתונים של PIC16F690, RA0 יכול להיות:
קלט / פלט למטרות כלליות, ADC, משווה אנלוגי, אות נתונים ICSP, קלט ULPW אנלוגי.
אני זקוק לעזרתך, בבקשה.
תודה