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

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

6
อะไรคือความแตกต่างระหว่าง DSP และไมโครคอนโทรลเลอร์มาตรฐาน?
ฉันเข้าใจว่า DSP ได้รับการปรับให้เหมาะสำหรับการประมวลผลสัญญาณดิจิตอล แต่ฉันไม่แน่ใจว่าสิ่งนั้นส่งผลต่องานการเลือก IC เกือบทุกอย่างที่ฉันทำกับไมโครคอนโทรลเลอร์เกี่ยวข้องกับการประมวลผลสัญญาณดิจิตอล! ตัวอย่างเช่นลองเปรียบเทียบ Microchip dsPIC30 หรือ 33 DSP ยอดนิยมและข้อเสนอ 16 บิตอื่น ๆ ของพวกเขานั่นคือไมโครคอนโทรลเลอร์ PIC24 สำหรับใช้งานทั่วไป dsPIC และ PIC สามารถกำหนดค่าให้มีหน่วยความจำและความเร็วเท่ากันมีชุดอุปกรณ์ต่อพ่วงที่คล้ายกันความสามารถ A / D ที่คล้ายกันจำนวนพินการจับกระแสในปัจจุบันและอื่น ๆ ความแตกต่างที่สำคัญที่ปรากฏในรายการของ Digikey คือตำแหน่งของ ออสซิล ฉันไม่สามารถบอกความแตกต่างได้โดยดูที่ราคา (หรือสาขาอื่น ๆ สำหรับเรื่องนั้น) ถ้าฉันต้องการทำงานกับเซ็นเซอร์ภายนอกสองตัวโดยใช้โปรโตคอลต่าง ๆ (I2C, SPI, ฯลฯ ) ทำการแปลง A / D เก็บข้อมูลบางส่วนบนแฟลชอนุกรมบางตัวตอบสนองต่อปุ่มบางปุ่มและส่งข้อมูลไปที่ตัวอักษร LCD และ FT232 …

11
ทุกคนสามารถใช้ไมโครคอนโทรลเลอร์ที่มีหน่วยความจำของโปรแกรมเพียง 384 ไบต์ได้อย่างไร
ยกตัวอย่างเช่นPIC10F200T รหัสใด ๆ ที่คุณเขียนจะมีขนาดใหญ่กว่านั้นยกเว้นว่าเป็นชิปวัตถุประสงค์เดียว มีวิธีใดบ้างที่จะโหลดหน่วยความจำโปรแกรมเพิ่มเติมจากที่เก็บข้อมูลภายนอก ฉันแค่อยากรู้อยากเห็นฉันไม่เห็นว่าสิ่งนี้จะมีประโยชน์มาก ... แต่มันต้องเป็น

9
RTOS สำหรับระบบฝังตัว
ฉันได้เห็นบทความมากมายที่บอกฉันว่าฉันควรใช้ RTOS สำหรับการจัดการเวลาและการจัดการทรัพยากร เวลาของฉันไม่ได้รับอนุญาตให้ทำการวิจัยของฉันเองดังนั้นฉันจึงไปหาชิปเพื่อขอคำแนะนำ ฉันใช้ไมโครคอนโทรลเลอร์ทรัพยากรต่ำ (MSP430, PIC) และกำลังมองหา RTOS ที่ฉันสามารถใช้ได้ ตรงประเด็น: ต้นทุนทรัพยากรของระบบ ข้อดีของระบบ ข้อเสียของระบบ เคล็ดลับการใช้งาน สถานการณ์ที่ RTOS ควร / ไม่ควรใช้ ฉันไม่ได้ใช้ระบบเช่น arduino โครงการที่ฉันทำงานด้วยไม่สามารถรองรับค่าใช้จ่ายของระบบดังกล่าวได้

7
ฉันจะวัดแรงดันลบด้วย ADC ได้อย่างไร
ฉันทำงานกับ PIC micro-controller พร้อม inbuilt ADbit 10 บิตและต้องการวัดแรงดันไฟฟ้าในช่วง -1 ถึง -3Volts ฉันคิดว่าจะใช้ op-amp ในโหมด inverting เพื่อสร้างแรงดันไฟฟ้าเป็นบวกแล้วป้อนไปยัง adc ของไมโครคอนโทรลเลอร์ แต่ที่นี่ฉันจะต้องจ่ายไฟให้ opamp ด้วยแหล่งจ่ายไฟเชิงลบใช่ไหม ฉันไม่ต้องการใช้แหล่งจ่ายไฟเชิงลบในขณะนี้และสงสัยว่ามันเป็นไปได้หรือไม่ที่จะบรรลุการกำหนดค่านี้ คุณจะช่วยได้ไหม

7
การใช้ AES เล็กที่สุดสำหรับไมโครคอนโทรลเลอร์?
ทุกคนสามารถแนะนำ AES-128 Rijndael สำหรับการใช้ไมโครคอนโทรลเลอร์ขนาดเล็กได้ฟรี เป็นการดีสำหรับ PIC18 แม้ว่าการใช้งานทั่วไปใน C จะเป็นประโยชน์ การคอมไพล์การใช้งาน axTLSสำหรับ PIC18 และการเข้ารหัส / ถอดรหัสบล็อกต้องใช้ ROM 6KB และ RAM 750b การคอมไพล์rijndael-alg-fst.cสำหรับ PIC18 และการเข้ารหัส / ถอดรหัสบล็อกต้องใช้ 28KB ROM และ 0.5KB RAM การคอมไพล์AES 8 บิตของ Brian Gladmanสำหรับ PIC18 และการเข้ารหัส / ถอดรหัสบล็อกต้องใช้ ROM ขนาด 19KB และ RAM 190 ไบต์ มีรูปแบบเฉพาะเจาะจงที่ได้รับการปรับปรุงให้ดีที่สุดหรือไม่ (ข้อกำหนด RAM ที่อัปเดตสำหรับรุ่น …
38 pic  encryption 

14
ฉันจะวัดรอบต่อนาทีของจานร่อนได้อย่างไร
ฉันต้องการสร้างอุปกรณ์เล็ก ๆ ที่ฉันสามารถติดกับFrisbeeที่สามารถวัดสถิติเช่น RPM / ความเร็วของ Frisbee เมื่อถูกโยน สิ่งนี้จะเป็นไปได้จริงไหม? ฉันกำลังมองหาการสื่อสารระยะใกล้เพื่อถ่ายโอนข้อมูลจาก Frisbee ไปยังสมาร์ทโฟน แต่มันเป็นเพียงความคิด ดูเหมือนว่ามันจะเป็นการยากที่จะทำให้บางสิ่งเล็ก ๆ น้อย ๆ พอที่จะไม่ส่งผลกระทบต่อการบินของ Frisbee มีใครคิดบ้างเกี่ยวกับเรื่องนี้?

9
การคำนวณค่าเฉลี่ยเคลื่อนที่อย่างรวดเร็วและหน่วยความจำมีประสิทธิภาพ
ฉันกำลังมองหาเวลาและโซลูชันที่มีประสิทธิภาพของหน่วยความจำในการคำนวณค่าเฉลี่ยเคลื่อนที่ใน C ฉันต้องหลีกเลี่ยงการหารเพราะฉันใช้ PIC 16 ซึ่งไม่มีหน่วยการแบ่งเฉพาะ ในขณะนี้ฉันเพียงเก็บค่าทั้งหมดไว้ในบัฟเฟอร์บัฟเฟอร์และเก็บและอัปเดตผลรวมทุกครั้งที่มีค่าใหม่มาถึง มันมีประสิทธิภาพจริงๆ แต่น่าเสียดายที่ใช้หน่วยความจำส่วนใหญ่ที่มีอยู่ของฉัน ...
33 pic  c 

2
การออกแบบการเข้ารหัส C - ตัวชี้ฟังก์ชั่น?
ฉันมีPIC18F46K22และตั้งโปรแกรมด้วยคอมไพเลอร์ XC8 ในท้ายที่สุดผมจะมีระบบเช่นเครื่องคอมพิวเตอร์ด้วยและstdin stdoutดังนั้นในลูปหลักจะมีฟังก์ชันที่ตรวจสอบว่ามีอินพุตใหม่หรือไม่ หากมีการป้อนข้อมูลฟังก์ชั่นจะถูกเรียกตาม ตัวอย่างเช่นเมื่อฉันป้อน A บนstdinPIC จะเรียกใช้ฟังก์ชันเช่นfunction_Aแทนที่จะfunction_Bเรียกว่าเมื่อฉันป้อน a เมื่อ PIC เสร็จสิ้นด้วยฟังก์ชั่นฉันต้องการให้อินพุตใหม่ถูกส่งไปยังฟังก์ชั่น ดังนั้นเมื่อกด A จะเปิดตัวส่งสัญญาณ RS232 จากช่วงเวลานั้นทุกอินพุตจะถูกส่งผ่าน RS232 ในที่สุดโครงการนี้เป็นโปรแกรมแก้ไขข้อความแบบสแตนด์อโลน ดังนั้นเมื่อกด A จะเป็นการเปิดระบบไฟล์จากช่วงเวลานั้นคุณจะไม่แก้ไขข้อความอีกต่อไป แต่ลองดูรายการไฟล์ต่างๆ นั่นหมายความว่าการกดขึ้นและลงหมายถึงสิ่งที่แตกต่างจากในสภาพแวดล้อมการแก้ไขข้อความ ฉันได้คิดมากเกี่ยวกับวิธีการเขียนโปรแกรมใน C. ฉันคิดว่าเมื่อคืนนี้และอยากจะรู้ว่าเป็นไปได้หรือไม่และถ้าเป็นเช่นนั้น สิ่งที่ฉันต้องการจะทำคือ: mainเรียกฟังก์ชันการทำงานเช่นfunction_A function_Aเปลี่ยนตัวแปรโกลบอลfunction_addrเป็นตัวชี้แอดเดรสของฟังก์ชันin_function_A จากช่วงเวลานั้นmainเรียกใช้ฟังก์ชันfunction_addrเมื่อมีอินพุตใหม่ สิ่งที่ฉันต้องการคือmainฟังก์ชั่นที่ตรวจสอบว่าfunction_addrเป็นศูนย์หรือไม่ ถ้ามันเป็นฟังก์ชั่น 'ปกติ' function_Aควรจะเรียกว่าเหมือน ถ้าไม่ใช่ฟังก์ชันที่function_addrควรจะถูกเรียก ฉันยังต้องfunction_Aซึ่งการเปลี่ยนแปลงที่จะชี้ไปยังfunction_addrin_function_A หมายเหตุ: เมื่อควรปิดฟังก์ชั่นระบบแฟ้มis_function_Aควรเปลี่ยนfunction_addrเป็น 0 ดังนั้นโดยทั่วไปคำถามของฉันคือฉันจะทำอย่างไร รับที่อยู่ของฟังก์ชั่น (และเก็บไว้ในตัวแปร) เรียกใช้ฟังก์ชันตามที่อยู่ที่ระบุ

7
หนังสือดีสำหรับการพัฒนาเฟิร์มแวร์ที่ไม่ใช่มือใหม่
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันทำงานเฟิร์มแวร์มากมายกับงานของฉัน แต่ฉันกำลังมองหาหนังสือขั้นสูงเพิ่มเติมในหัวข้อ สิ่งที่ไม่ชอบพื้นฐานของ "สิ่งที่ขัดจังหวะ" ฉันอ่านหนังสือ O'Reilly เกี่ยวกับการพัฒนาระบบฝังตัวซึ่งก็โอเค แต่ยังไม่ก้าวหน้าพอ ตัวอย่างเช่นหนังสือหายากที่จะพูดคุยเกี่ยวกับสิ่งต่างๆเช่นหน้า Flash (ซึ่งอาจมีประโยชน์จริงๆ) วิธีใส่ส่วนของรหัสในพื้นที่เฉพาะของหน่วยความจำ บางทีสิ่งที่มีเคล็ดลับและลูกเล่น ฉันทำโปรแกรม PIC เป็นหลัก

6
โปรโตคอลการ จำกัด / การซิงโครไนซ์เทคนิคแบบอนุกรม
เนื่องจากการสื่อสารแบบซีเรียลแบบอะซิงโครนัสแพร่กระจายอย่างกว้างขวางในอุปกรณ์อิเล็กทรอนิกส์ทุกวันนี้ฉันเชื่อว่าพวกเราหลายคนได้พบคำถามเช่นนี้เป็นครั้งคราว พิจารณาอุปกรณ์อิเล็กทรอนิกส์Dและคอมพิวเตอร์PCที่เชื่อมต่อกับสายอนุกรม (RS-232 หรือคล้ายกัน) และจำเป็นต้องมีการแลกเปลี่ยนข้อมูลอย่างต่อเนื่อง Ie PCกำลังส่งเฟรมคำสั่งแต่ละเฟรมX msและDกำลังตอบกลับด้วยรายงานสถานะ / เฟรม telemetry แต่ละรายการY ms(สามารถส่งรายงานเป็นการตอบสนองต่อคำขอหรือเป็นอิสระ - ไม่สำคัญเลยที่นี่) กรอบการสื่อสารสามารถมีข้อมูลไบนารีใด ๆ โดยพลการ สมมติว่าเฟรมการสื่อสารเป็นแพ็กเก็ตที่มีความยาวคงที่ ปัญหา: เนื่องจากโปรโตคอลมีความต่อเนื่องด้านการรับอาจหลุดการซิงโครไนซ์หรือเพียงแค่ "เข้าร่วม" ที่อยู่ตรงกลางของเฟรมที่ส่งต่อเนื่องดังนั้นมันจะไม่รู้ว่าจุดเริ่มต้นของเฟรม (SOF) นั้นอยู่ที่ไหน ข้อมูลมีความหมายที่แตกต่างกันไปตามตำแหน่งของ SOF ข้อมูลที่ได้รับจะเสียหายและอาจเกิดขึ้นตลอดไป ทางออกที่ต้องการ รูปแบบการลด / ประสานที่เชื่อถือได้ในการตรวจจับ SOF ด้วยเวลาการกู้คืนสั้น ๆ (เช่นไม่ควรใช้เวลามากกว่านั้นพูด 1 เฟรมเพื่อซิงโครไนซ์อีกครั้ง) เทคนิคที่มีอยู่ฉันรู้ (และใช้บางส่วน) ของ: 1) ส่วนหัว / การตรวจสอบ - SOF เป็นค่าไบต์ที่กำหนดไว้ล่วงหน้า ตรวจสอบผลรวมในตอนท้ายของเฟรม จุดเด่น:เรียบง่าย …
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

2
การป้องกันเฟิร์มแวร์บนตัวควบคุม AVR และ PIC
บางคนสามารถแตกไฟล์ HEX ที่ฉันเขียนในไมโครคอนโทรลเลอร์ที่ฉันให้มาได้หรือไม่ หากเป็นไปได้ผู้อื่นจะมั่นใจได้อย่างไรว่ารหัสของพวกเขาปลอดภัยในระบบฝังตัว ในกรณีของไมโครคอนโทรลเลอร์ PIC และ AVR เราจะป้องกันเฟิร์มแวร์ของตนจากการทำซ้ำได้อย่างไร?
23 pic  avr  embedded  firmware 

6
ออสซิลเลเตอร์ภายในหรือภายนอก
ฉันมักจะใช้ออสซิลเลเตอร์ภายในที่รูปนั้นมีเพราะฉันไม่เคยพบว่าจำเป็นต้องทำงานอะไรที่ความถี่สูงกว่า 8 MHz (ซึ่งเป็นรูปที่เร็วที่สุดที่ฉันใช้มักจะเป็นไปได้) มีเหตุผลใดบ้างที่นอกเหนือไปจาก 8 เมกะเฮิรตซ์นั่นหมายความว่าฉันควรใช้ออสซิลเลเตอร์ภายนอก? ดูเหมือนว่าจะมีอะไรอีกมากที่จะผิดกับฉัน แต่ฉันสนใจที่จะฟังสิ่งที่คนอื่นทำ

4
จะทำความสะอาดสัญญาณที่มีเสียงดังได้อย่างไร?
ฉันควบคุมพัดลมพีซี PWM 4 พินจาก PIC16F684 ด้วยความเร็วพัดลมที่ขับเคลื่อนด้วยการอ่าน ADC ของเซ็นเซอร์ความใกล้ชิด ทั้งหมดนี้ใช้งานได้ดี ตอนแรกฉันไม่ได้วางแผนที่จะใช้เอาต์พุต tachometer จากพัดลม แต่เนื่องจากฉันพร้อมใช้งานฉันได้ตรวจสอบด้วยขอบเขต 'ของฉันเพื่อดูว่าการแมประหว่างความใกล้ชิดและความเร็วของพัดลมทำงาน ตอนนี้สิ่งที่ฉันสังเกตเห็นคือเมื่อ PWM ทำงานพัดลมที่ 100% สัญญาณ tach (ซึ่งเป็นท่อระบายน้ำเปิดโล่งที่ดึงขึ้นผ่านตัวต้านทาน 10K) ดีและสะอาด: อย่างไรก็ตามเมื่อฉันวิ่งที่น้อยกว่า 100% มันมีเสียงดัง: การซูมเข้าที่จุดรบกวน: ฉันเดาว่ามันได้รับผลกระทบจากสัญญาณ PWM แต่ฉันอยากจะเข้าใจว่าทำไมและอย่างไรเพื่อที่ฉันจะได้ทำความสะอาดถ้าจำเป็นในอนาคต จริง ๆ แล้วฉันสนใจในสิ่งที่คุณควรทำเมื่อคุณเห็นเสียงรบกวนเช่นนี้คุณจะหาสาเหตุได้อย่างไรและคุณจะ "แก้ไข" อย่างไร ขอบเขตจัดการเพื่อทริกเกอร์ตกลงดังนั้นฉันสงสัยว่าถ้าฉันป้อนมันไปที่ขาขัดจังหวะภายนอกบน PIC (RA2) ซึ่งเป็นอินพุตชมิตต์ที่มีระดับ CMOS แล้วฉันจะไม่ "เห็น" เสียงรบกวนและฉัน เช่นสามารถสะท้อนสัญญาณที่สะอาดออกจากพินอื่นเพื่อทำให้ LED จางลงหรืออะไรบางอย่าง ดังนั้นใครบางคนสามารถอธิบายในแง่ทั่วไปว่าจะรับรู้และแก้ไขสัญญาณรบกวนอย่างไร หรือถ้ามันกว้างเกินไปอาจเป็นแค่ปัญหานี้? นอกจากนี้หากมีอะไรผิดปกติกับวงจรของฉันมันก็คงจะดีที่ได้รู้เช่นกัน ในแผนผังด้านล่างสัญญาณที่ฉันแสดงคืออินพุต …
19 pic  pwm  noise 

5
การเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC บน Mac OS X
ฉันจะเริ่มต้นการเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC บน Mac OS X ได้ฉันสามารถใช้ Arduino ที่เชื่อมต่อกับ Mac ของฉันมีโปรแกรมเมอร์ได้หรือไม่? หรือฉันจำเป็นต้องซื้อบอร์ดโปรแกรมเมอร์และอะแดปเตอร์แบบอนุกรมที่เฉพาะเจาะจงหรือไม่
19 pic  microcontroller  mac  os 

5
การใช้งานตัวต้านทานแบบพูลดาวน์และพูลดาวน์บนหมุด MCU หรืออินพุตหรือเอาต์พุต
ตัวต้านทานแบบดึงขึ้น - ลง (ไม่ว่าภายในหรือภายนอก) จำเป็นสำหรับพิน MCU INPUT เท่านั้นหรือไม่ ในทางตรงกันข้ามขา MCU ที่กำหนดค่าเป็น OUTPUT "รู้ระดับที่" เพราะมันใช้ในการขับรถ - ขา "MCU" ขาออกของ MCU ที่ผูกติดกับอินพุตของวงจรอื่นไม่เข้าท่าเพราะสถานะของพิน MCU สูงหรือต่ำได้ฉันมีสิทธิ์นี้หรือไม่ ในตอนนี้เมื่อการบูทหรือล้มเหลวของ MCU มันอาจเป็นประโยชน์ที่จะมีการดึงขึ้น / ลงที่เชื่อมโยงกับสาย "เอาท์พุท MCU กับอินพุต IC" เพื่อให้แน่ใจว่าอินพุตไปยัง IC บางตัวไม่เคยลอย บางทีฉันอาจตอบคำถามของฉันเองที่นี่ ... ตัวต้านทานแบบดึงขึ้น - ลงสามารถใช้ได้ทั้งขาเข้าและขาออกขึ้นอยู่กับการใช้งาน

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