ชิป dsPIC ทำงานที่ความเร็วปกติ


9

ฉันมี PCB สองแผ่น หนึ่งมี dsPIC30F6012a และอีกหนึ่ง dsPIC30F6015 ทั้งสองถูกโปรแกรมจากโครงการ HEX แยกต่างหากใน MPLAB X โดยใช้ PICkit 3 เฟิร์มแวร์ทั้งสองถูกนำไปใช้กับหลายสิบหน่วยก่อนถึงจุดนี้โดยไม่ยาก ปัจจุบันเฟิร์มแวร์ทำงานอย่างถูกต้องเมื่อตั้งโปรแกรมจากพีซีทุกเครื่อง แต่มีหนึ่งเครื่อง ในพีซีหนึ่งเครื่องที่เริ่มเมื่อวานนี้ทั้งโปรแกรมเฟิร์มแวร์ไม่มีข้อผิดพลาดที่เห็นได้ชัด แต่รันด้วยความเร็วปกติประมาณ 1/20 ก่อนหน้านี้เมื่อวานพีซีนั้นก็ตั้งโปรแกรมบอร์ดเหล่านี้โดยไม่มีปัญหา

หน้าจอ Splash ใช้เวลาสองนาทีแทนที่จะเป็นห้าวินาทีไฟกระพริบช้ามากและนอกจากนี้ทุกอย่างทำงานได้อย่างถูกต้อง มันเกือบจะเหมือนกับว่าบิตการกำหนดค่า oscillator ได้รับการเปลี่ยนแปลง แต่ฉันไม่ทราบว่าจะมีที่ไหนใน MPLAB X ที่สามารถทำได้กับโครงการแบบสแตนด์อโลน

ดังนั้นเฟิร์มแวร์ที่แตกต่างกันสองตัวบนชิปที่แตกต่างกันสองตัวในอินสแตนซ์ของการออกแบบ PCB เดียวกันหลายครั้งทำงานด้วยความเร็วที่แตกต่างกันขึ้นอยู่กับพีซีที่ใช้ในการเขียนโปรแกรมเท่านั้น จัดทำบอร์ดช้าบนพีซีที่ "ดี" ใหม่แก้ไขปัญหา ทำการตั้งโปรแกรมซ้ำอีกครั้งในบอร์ดเดียวกันบนพีซีที่ "เสีย" จะนำมันกลับมา สิ่งที่ฉันคิดได้ก็คือในพีซีเครื่องหนึ่งที่ใครบางคนกดปุ่ม "ทำให้มันช้า" แต่ฉันไม่พบสิ่งใดที่ระบุว่า (เทคโนโลยีของเรานั้นค่อนข้างสร้างสรรค์มาก) ตอนนี้ฉันกำลังถอนการติดตั้ง MPLAB X เช็ดการตั้งค่าผู้ใช้และติดตั้งเวอร์ชันที่ใหม่กว่า (เพิ่มจาก 1.3 เป็น 1.6) แต่แม้ว่าจะแก้ไขได้ แต่ฉันก็ยังไม่มีความสุขที่ไม่รู้ว่าเกิดอะไรขึ้น ไม่มีใครมีความเข้าใจในปัญหานี้หรือไม่?


พีซีทำการตรวจสอบหลังจากเขียนโปรแกรมหรือไม่? คุณสามารถตรวจสอบบิตการกำหนดค่าได้เนื่องจากดูเหมือนว่าเป็นปัญหา

ยืนยันว่าทำงานแล้วใช่ ไม่มีข้อผิดพลาดเกิดขึ้นดังนั้นฉันจึงสันนิษฐานว่ามีบิตการกำหนดค่า แต่ฉันไม่ได้ตรวจสอบด้วยตนเอง น่าจะเป็นไปได้สำหรับข้อมูลเพิ่มเติม แต่ฉันถูกกดเป็นเวลาและตรงไปสำหรับการถอนการติดตั้ง / ติดตั้งโซลูชั่น รอคำต่อไปว่ามันใช้ได้หรือไม่!
Stephen Collings

บอร์ดจะตั้งโปรแกรมโดยพีซีที่ใช้ความเร็วต่ำจะตรวจสอบบนพีซีที่ "ดี" หรือไม่?
Chris Stratton

น่าเสียดาย (ฮ่า!) การติดตั้งใหม่แก้ไขปัญหาได้ดังนั้นฉันจึงไม่สามารถรวบรวมข้อมูลเพิ่มเติมได้ ... ทำให้ยากที่จะรับคำตอบที่ชัดเจน!
Stephen Collings

คำถามนี้อ่านเหมือนบางสิ่งบางอย่างออกมาจากเทคโนโลยีแกนหัวหอม
เควินเฉิน

คำตอบ:


1

ใน MPLAB X ไม่สามารถตั้งค่าบิตการตั้งค่าแยกต่างหากจากรหัส (เช่น MPLAB 8 ที่ใช้เพื่อให้คุณทำ) วิธีเดียวที่บิตการกำหนดค่าอาจผิดปกติคือถ้ามีคนแก้ไขรหัส เนื่องจากคุณใช้โครงการไฟล์ HEX แบบสแตนด์อโลนจึงไม่น่าเป็นไปได้

คุณยังไม่ได้พูดว่าถ้าการเขียนโปรแกรมซ้ำบอร์ดที่ไม่ดีบนพีซีที่ใช้งานอยู่จะช่วยแก้ปัญหาได้ ลองดูสิ

อีกสิ่งที่คุณสามารถทำได้ (หากคุณไม่ได้ใช้การป้องกันรหัส) คืออ่านไฟล์ HEX จากการตั้งค่า 'การทำงาน' และแฟลชที่เข้าสู่บอร์ดที่ทำงานผิดปกติอย่างใดอย่างหนึ่ง สิ่งนี้ควรกำจัดการเปลี่ยนรหัสเป็นหนึ่งในความไม่แน่นอน

อีกสถานการณ์ที่ไม่น่าเป็นไปได้คือสต็อค dsPIC ของคุณครอบคลุมการแก้ไขหลาย ๆ ครั้งและการเปลี่ยนแปลงแบบก้าวย่างทำให้รหัสของคุณไม่ถูกต้อง ตรวจสอบให้แน่ใจว่าหมายเลขชิ้นส่วน IC นั้นถูกต้องและเมื่อ PICkit3 เชื่อมต่อคุณควรเห็นรหัสการแก้ไขที่คุณสามารถอ้างอิงข้ามไปยังการแก้ไขด้วยซิลิคอนได้

แก้ไข: ถึงเวลาแล้วที่จะต้องตรวจสอบให้แน่ใจว่าการติดตั้ง MPLAB X ที่หลากหลายนั้นเข้ากันกับพีซีทุกเครื่อง - พวกมันเป็นการแก้ไขแบบเดียวกันหรือไม่? พวกเขาเป็นรุ่นล่าสุดหรือไม่

เมื่อใดก็ตามที่มี MPLAB X เวอร์ชันใหม่เฟิร์มแวร์ PICkit3 มีแนวโน้มที่จะได้รับการอัพเกรด - อาจมีข้อผิดพลาดหรือไม่เข้ากันกับเฟิร์มแวร์ PICkit3 รุ่นเก่าและไฟล์ HEX ของคุณ

ฉันมีสถานการณ์ที่คล้ายกันเมื่อเร็ว ๆ นี้ (ตอนนี้เพิ่งจะเกิดขึ้นกับฉัน - duh) ที่ไฟล์ HEX ที่ฉันสร้างขึ้นในเครื่องของฉันด้วย MPLAB X และ XC16 จะเขียนโปรแกรมอย่างถูกต้องบนเครื่องของฉัน แต่จะไม่ใช้เครื่องอื่น 50 - รหัสดูเหมือนว่าจะทำงานช้าลง (การเตรียมใช้งาน LEDs ดูเหมือนจะช้า) เมื่อพีซีนั้นได้รับการอัพเดตด้วย MPLAB 8 v8.88 โดยใช้โปรแกรมเมอร์เดียวกันและไฟล์ HEX เดียวกันสิ่งต่าง ๆ ก็เริ่มทำงานอีกครั้ง แปลก.


ฉันทำ reprogram บอร์ดเดิมบนพีซี "ดี" และ "ไม่ดี" และปัญหาก็เกิดขึ้นและไปตามพีซีที่ใช้ในการเขียนโปรแกรมบอร์ด ฉันได้แก้ไขคำถามเพื่อสะท้อนสิ่งนี้
Stephen Collings
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.