คำถามติดแท็ก pic

PIC เป็นแบรนด์ไมโครคอนโทรลเลอร์ RISC 8, 16 และ 32 บิตที่ผลิตโดย Microchip "PIC" เป็นตัวย่อสำหรับ "Peripheral Interface Controller"

1
การใช้ซีเนอร์ไดโอดเป็นตัวอ้างอิงแรงดันไฟฟ้า
ฉันต้องการใช้ซีเนอร์ไดโอดเป็นตัวอ้างอิงแรงดันไฟฟ้าของ PIC18F2550 เป็นอะนาล็อกอ้างอิง V + ฉันวางแผนที่จะใช้ไดโอดซีเนอร์นี้แต่ฉันไม่แน่ใจว่าจะคำนวณค่าได้อย่างไร ฉันวางแผนที่จะมีการอ้างอิงแรงดันไฟฟ้า 4.7V เพียงแค่ใช้วงจรอย่างง่ายเป็น Vcc-> ตัวต้านทาน -> ซีเนอร์ -> GND (โดยใช้ซีเนอร์ที่กลับด้านและได้รับแรงดันซีเนอร์) ดูแผ่นข้อมูลของซีเนอร์ฉันไม่เห็นเส้นโค้งซีเนอร์บนกราฟแค่แรงดันไฟฟ้าบวกที่เป็นบวก ... ทำไม? และฉันสามารถเห็นตารางที่มีเพียงค่าสำหรับกระแส 5mA เท่านั้น ฉันวางแผนที่จะใช้ตัวต้านทาน 10K แต่จากการจำลองบางอย่างฉันไม่ได้รับ 4.7V ซึ่งอาจเป็นเพราะฉันไม่ได้ให้ 5mA แต่จะคำนวณได้อย่างไร ฉันจะรู้ได้อย่างไรว่าแรงดันไฟฟ้าจะออกมาพร้อมกับตัวต้านทาน 10K?

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

3
การใช้อินเตอร์รัปต์ภายนอกหลายรายการใน PIC
ฉันใช้PIC16F877( แผ่นข้อมูล ) สำหรับหลายโครงการ สำหรับการขัดจังหวะการเปลี่ยนพินภายนอกเดียวคุณสามารถใช้PORTB0อินเตอร์รัปต์ แต่ตอนนี้ฉันต้องการสนับสนุนการขัดจังหวะการเปลี่ยนพินภายนอก 8 อิสระในวงจรเดียว ในแผ่นข้อมูลมีข้อความระบุว่ามีอินเทอร์รัปต์ 15 รายการPIC16F877แต่ฉันเดาว่าจะนับรวมการขัดจังหวะตัวจับเวลาและอื่น ๆ ... ซึ่งไร้ประโยชน์ในกรณีนี้ นี่คือสิ่งที่แผ่นข้อมูลพูดเกี่ยวกับการINTCONลงทะเบียน ฉันสามารถใช้อินเทอร์รัปต์ 4 รายการโดยใช้ bit0 ได้RBIFหรือไม่ PB7:PB4มันหมายถึงการเปลี่ยนแปลงใน ฉันจะระบุพินที่เปลี่ยนแปลงได้อย่างไรโดยการอ่านค่าพอร์ตในรูทีนการขัดจังหวะ แม้ว่าฉันจะได้รับคำตอบในเชิงบวกจากข้างต้น แต่ฉันต้องการการขัดจังหวะ 8 ครั้ง แน่นอนฉันยังคงสามารถใช้INTEสำหรับPORTB0การเปลี่ยนแปลง ถ้าอย่างนั้น4 + 1 = 5อีก 3 คนล่ะ? (อย่างไรก็ตามการที่อินเตอร์รัปต์ทั้ง 8 เหตุการณ์นั้นเป็นประเภทเดียวกัน4 + 1 + 3 = 8สิ่งที่ดูน่าเกลียดใช่มั้ย) ไม่มีงานหนักอื่น ๆ ที่คาดหวังจากตัวควบคุมไมโครอื่น ๆ ที่ตรวจสอบ 8 พิน …

2
ต้องการความช่วยเหลือในการทำความเข้าใจแผนที่หน่วยความจำ PIC
พื้นหลังบางส่วน ฉันใช้ MPLABx กับ PicKit2 เพื่อตั้งโปรแกรมรูปภาพประเภทต่างๆ ในขณะนี้มันคือ 16F887 ฉันพยายามที่จะยึดติดกับห่วงโซ่เครื่องมือ Hi-Tech PICC Lite แต่ฉันไม่พอใจมากขึ้นกับการประกอบบางสิ่ง การดำเนินการที่น่าจะเร็วอย่างรวดเร็ว (พิจารณาวงจรการเรียนการสอน 500ns ที่ 8Mhz) กำลังดำเนินการจนเสร็จสิ้น 20us ดังนั้นฉันจึงเริ่มใส่รหัส ASM ของฉันเองเพื่อจัดการกับมัน อย่างไรก็ตามฉันมีปัญหาในการทำความเข้าใจแผนที่หน่วยความจำที่ให้ไว้ในแผ่นข้อมูลในหน้า 20 หน่วยความจำโปรแกรมเริ่มต้นที่ 0005h อย่างไรก็ตามหน้า 23 แสดงที่อยู่ไฟล์ของการลงทะเบียนเพื่อวัตถุประสงค์พิเศษเช่นพอร์ต A ที่อยู่ของพอร์ต A แสดงเป็น "05h" ฉันสับสนว่าจะแยกแยะความแตกต่างระหว่างตำแหน่งหน่วยความจำ 0005h อย่างไรและการลงทะเบียนวัตถุประสงค์พิเศษอยู่ที่ 05h ฉันจะอ้างอิงการลงทะเบียนวัตถุประสงค์พิเศษได้อย่างไร ฉันได้ทำการเขียนโปรแกรมแอสเซมเบลอร์ที่ครอบคลุมสำหรับชิป HC11 รุ่นเก่า แต่นี่เป็นการลงทุนครั้งแรกของฉันในการเข้ารหัส PIC asm ความช่วยเหลือใด ๆ ที่นี่จะได้รับการชื่นชม

1
การจำลองม้านั่งทดสอบอย่างง่ายด้วยแกน ROM สังเคราะห์
ฉันใหม่กับโลกของ FPGA อย่างสมบูรณ์และคิดว่าฉันจะเริ่มต้นด้วยโครงการที่ง่ายมาก: ตัวถอดรหัส 7 บิตแบบ 4 บิต รุ่นแรกที่ฉันเขียนอย่างหมดจดใน VHDL (โดยทั่วไปเป็น combinatorial เดียวselectไม่จำเป็นต้องใช้นาฬิกา) และดูเหมือนว่าจะทำงานได้ แต่ฉันก็อยากจะทดลองกับ "IP Cores" ใน Xilinx ISE ดังนั้นตอนนี้ฉันใช้ GUI "ISE Project Explorer" และฉันสร้างโครงการใหม่ด้วย ROM core รหัส VHDL ที่สร้างขึ้นคือ: LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- synthesis translate_off LIBRARY XilinxCoreLib; -- synthesis translate_on ENTITY SSROM IS PORT ( clka : …

1
ใช้ LED 7 ส่วน 4 หลัก
ฉันมีจอแสดงผล 7 ส่วนที่มีตัวเลข 4 หลัก ฉันจะต้องใช้อะไรกับสิ่งนี้ ไมโครคอนโทรลเลอร์ตัวเดียวสามารถจัดการการทำงานได้หรือไม่? ฉันหมายถึงPIC16F690 ... ฉันเห็นชิป MAXIM ที่ขับเคลื่อนจอแสดงผลประเภทนี้ ... จำเป็นหรือไม่ นี่คือรูปภาพจากแผ่นข้อมูลฉันไม่รู้ว่าทำไมถึงมีไดอะแกรม 2 ขา นี่คือลิงค์ไปยังแผ่นข้อมูล

2
บลูทู ธ ออสซิลโลสโคปอย่างง่าย
ฉันกำลังคิดที่จะสร้างออสซิลโลสโคปแบบง่ายๆที่สามารถวัดสัญญาณอย่างน้อย 2MHz ซึ่งก็เพียงพอแล้วและมันจะเชื่อมต่อกับพีซีหรืออุปกรณ์ Android ก่อนอื่นฉันควรใช้ USB เพื่อเชื่อมต่อ "oscilloscope" กับอุปกรณ์ที่มีความสามารถ PC หรือ Android USB Host ที่จะให้ความเร็วในการถ่ายโอนประมาณ 12Mbps แต่ฉันอยากจะใช้ Bluetooth เล็กน้อยหรือใช้วิธี RF อื่น ฉันพูดบางโมดูล Bluetooth-UART และพวกเขามีความสามารถในการถ่ายโอนความเร็ว 2Mbps และโมดูล Wi-Fi เพียงประมาณ 300Kbps ฉันมีหน่วยความจำ RAM 512K สำหรับบัฟเฟอร์ตัวอย่างจาก 12MSPS ADC ของฉันดังนั้นที่ 2Mbps มันจะใช้เวลา: 512000 K b yt e s2000000 M b p s / 8 …

2
จะเกิดอะไรขึ้นเมื่อข้อมูลถูกเขียนไปยัง LATCH
นี่คือสิ่งที่ฉันพบในแผ่นข้อมูล PIC16F1947: การอ่านการลงทะเบียน PORTB จะอ่านสถานะของหมุดในขณะที่การเขียนลงไปจะเป็นการเขียนไปยังสลัก PORT การดำเนินการเขียนทั้งหมดเป็นการดำเนินการอ่าน - แก้ไข - เขียน ดังนั้นการเขียนไปยังพอร์ตหมายความว่าอ่านพอร์ตของหมุดแล้วค่านี้จะถูกปรับเปลี่ยนแล้วเขียนไปยัง PORT data latch (LATB) ฉันเป็นนักพัฒนาเฟิร์มแวร์และพื้นหลังของฉันคือวิทยาศาสตร์คอมพิวเตอร์ ฉันยังคงพยายามทำความเข้าใจเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์และตรรกะในระดับฮาร์ดแวร์ ฉันมีความรู้พื้นฐานเท่านั้น ดังนั้นฉันต้องการที่จะเข้าใจว่าเกิดอะไรขึ้นเมื่อมีการเขียนข้อมูลลงในระดับฮาร์ดแวร์ ขอบคุณ.

2
ไมโครคอนโทรลเลอร์ avr และวิธีเริ่มใช้งานการเข้ารหัส init หรือลูปหลักหรือตัวจับเวลาหรืออินเตอร์รัปต์
ฉันได้ทำการดัดแปลงโค้ด AVR และ PIC ไมโครคอนโทรลเลอร์เป็นเวลาสองสามปีเพื่อทำงาน แต่ไม่เคยเขียนอะไรเลยตั้งแต่ต้นฉันเข้าใจดีทีเดียว ฉันเริ่มเขียนรหัสของตัวเองตอนนี้และมีปัญหาในการเริ่มต้น ฉันสงสัยว่าคนอื่น ๆ เริ่มเขียนโค้ดได้อย่างไรและถ้ามีหนังสือหรือแบบฝึกหัดที่คนอยากจะแนะนำในเรื่องนี้ คุณเริ่มต้นด้วยการเขียนรหัสฟังก์ชั่นการเริ่มต้นของคุณแล้วขัดจังหวะแล้วตัวนับแล้วในขณะที่หลัก (1) วน ... ฉันสงสัยว่าวิธีที่ดีที่สุดในการเริ่มต้นคือ ขอบคุณ
9 avr  pic 

7
ฉันควรใช้ PIC อะไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับการแลกเปลี่ยนกองวิศวกรรมไฟฟ้า ปิดให้บริการใน4 ปีที่แล้ว PIC ที่ดีที่สุดในการเริ่มเรียนรู้คืออะไร ฉันต้องการ PIC ที่มี 8 พินและอินพุตแบบอะนาล็อก ฉันมี 16F628A แต่ฉันคิดว่า 16F684 น่าจะดีกว่า PIC16F648 และ 684A แตกต่างกันอย่างไร? อันไหนดีที่สุด?

5
PIC 16F เริ่มต้น .. ความแตกต่างของไวยากรณ์ของโปรแกรมเมื่อใช้คอมไพเลอร์ต่างกัน
อย่างที่ฉันได้พูดไปฉันเพิ่งเริ่มเขียนโปรแกรม pic16f877a ตอนนี้ฉันสามารถทำงานกับจอแสดงผล 7 ส่วน ในปัจจุบันฉันใช้คอมไพเลอร์ ccs ไม่มีอะไรผิดปกติกับที่ แต่ฉันชอบที่จะเป็นโปรแกรมเมอร์อิสระคอมไพเลอร์ ดังนั้นฉันจึงต้องการทำงานในคอมไพเลอร์อื่นเช่น IAR หรือ Hitechc ฉันต้องการที่จะรู้ว่า "ประกาศคำสั่งโปรแกรมในคอมไพเลอร์" นอกเหนือจาก ccs จะแตกต่างกันอย่างไร โปรดแนะนำฉันเกี่ยวกับวิธีการเข้าถึงสิ่งนี้ ฉันยินดีรับข้อเสนอแนะทุกรูปแบบ ขอบคุณล่วงหน้า.
9 pic  compiler 

2
การวัดแรงดัน PIC
ฉันกำลังใช้อุปกรณ์ที่ใช้แบตเตอรี่และต้องการให้ไมโครคอนโทรลเลอร์ (PIC) ของฉันรายงานแรงดันไฟฟ้า นี่คือสิ่งที่ฉันสามารถกำหนดจำนวนแบตเตอรี่ที่ใช้ในการจัดหาและสถานะการชาร์จของแบตเตอรี่ แหล่งจ่ายแรงดันมีตั้งแต่ 4xD (1.2V NiMH เล็กน้อยหรือ 1.5V Alkalines ทำประมาณ 6V) ถึง 12xAA (1.2V NiMH สำหรับ 14.4V หรือ 1.5V Alkaline สำหรับ 18V) PIC ของฉันกำลังวิ่งออกจากแหล่งจ่ายไฟ 5V ที่ได้รับการควบคุม ฉันวางแผนที่จะใช้หนึ่งในพอร์ต ADC เพื่อวัดแรงดันไฟฟ้าและดังนั้นจึงเชื่อว่าฉันควรแมป 18V fsd กับช่วง 0-5V ดังนั้นฉันต้องแบ่งแรงดันไฟฟ้าอินพุตเป็น 3 โดยประมาณ ฉันเคยได้ยินว่าใช้ตัวแบ่งแรงดันตัวต้านทาน แต่รู้ว่ามันสิ้นเปลืองในแง่ของการใช้พลังงาน สงสัยว่ามีวิธีที่ดีกว่าในการบรรลุการแบ่งแรงดันไฟฟ้านี้โดยไม่สูญเสียพลังงาน / การสิ้นเปลืองมากเกินไปหรือไม่? ขอบคุณ

5
เป็นไปได้ไหมที่จะเขียนโค้ดใน C ++ สำหรับไมโครคอนโทรลเลอร์ PIC ในอนาคต?
เป็นไปได้ไหมที่จะใช้ C ++ สำหรับการเข้ารหัส PICs? มีข้อ จำกัด ด้านฮาร์ดแวร์ใด ๆ ที่ทำให้เราไม่สามารถใช้ C ++ ได้หรือไม่? ขนาดของไฟล์. hex ที่สร้างขึ้นและเวลาในการทำงานของโปรแกรมเพิ่มขึ้นเท่าใดเมื่อเราใช้ C ++ แทน C? เป็นไปได้หรือไม่ที่จะใช้ C ++ สำหรับ PIC ปัจจุบัน มีแผนในอนาคตหรือการพัฒนาอย่างต่อเนื่องในเรื่องนี้หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.