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

SPI เป็นอินเตอร์เฟสบัสบัสแบบ Wire wire ระดับต่ำ 3 หรือ 4 พร้อมนาฬิกา (SCLK), data in (MISO) และ data out (MOSI) สายที่สี่คือ Slave Select เพื่อเลือกอุปกรณ์เฉพาะบนรถบัส สัญญาณนี้มักจะใช้งานต่ำ Slave Select, Chip Select, CS #, SS # หมายถึงฟังก์ชั่นเดียวกันโดยทั่วไป ตรวจสอบให้แน่ใจว่าได้ตรวจสอบแผ่นข้อมูลแล้ว SPI บัสเป็นมาตรฐาน * โดยพฤตินัย * ขาดข้อกำหนดอย่างเป็นทางการ

1
การ์ด SD ในโหมด SPI เกี่ยวข้องกับชิปที่เลือกหรือเลือกทาสหรือไม่? ดูเหมือนจะรีเซ็ตในแอปพลิเคชันของฉัน
ฉันมีแอปพลิเคชันที่ฉันมีไมโครคอนโทรลเลอร์ (NXP LPC1343 ) ซึ่งเชื่อมต่อกับFPGAผ่าน SPI 16 บิต นอกจากนี้ยังมีการ์ด SD ที่ใช้พอร์ต SPI เดียวกัน (MISO / MOSI) แต่มีขา CS / SS ที่แตกต่างกัน (ทั้งคู่มีสถานะแอ็คทีฟต่ำ สิ่งหนึ่งที่ฉันต้องทำคือเขียนข้อมูลจาก FPGA ลงในไฟล์บนการ์ด SD โดยใช้FAT32และนี่คืองานของไมโครคอนโทรลเลอร์ ไมโครคอนโทรลเลอร์ใช้FatFSซึ่งฉันทำงานได้อย่างน่าเชื่อถือ เนื่องจากไมโครคอนโทรลเลอร์มี RAM เพียงเล็กน้อยเท่านั้นจึงสามารถบัฟเฟอร์ข้อมูลเพียงเล็กน้อยได้ในครั้งเดียว ดังนั้นไมโครต้องอ่านบัฟเฟอร์จาก FPGA เปลี่ยนโหมด SPI เป็น 8 บิตแล้วเขียนข้อมูลนั้นไปยัง FATFS โปรดจำไว้ว่าในการกำหนดค่าการ์ด SD สำหรับโหมด SPI คำสั่งจะต้องส่งในขณะที่บัส SPI ทำงานที่ 400 kHz และการรอคอยจำนวนหนึ่งจะต้องเกิดขึ้น ดังนั้นฉันต้องการที่จะดำเนินการเริ่มต้นเพียงครั้งเดียว …
9 fpga  spi  sd  nxp 

2
วิธีจัดการกับตัวต้านทานแบบดึงขึ้นหลายตัวในโมดูล
ฉันกำลังคิดที่จะทำโมดูลสำหรับคณะกรรมการพัฒนาที่ฉันทำเมื่อไม่กี่วันที่ผ่านมาซึ่งจะรวมถึงอินเตอร์เฟส spi / i2c ปัญหาคือฉันไม่ได้รวมตัวต้านทานแบบดึงขึ้นในหมุด MCU ในกระดานหลักและคิดที่จะเพิ่มพวกเขาในโมดูลเพื่อให้พวกเขา "ทั่วไป" มากขึ้นเพื่อให้ผู้ใช้ทุกคนสามารถใช้พวกเขาโดยไม่ต้องเพิ่มตัวต้านทานพิเศษใน บอร์ดต้นแบบ แต่แล้วฉันก็ประสบปัญหาต่อไป ถ้าฉันเพิ่มตัวต้านทานแบบดึงขึ้นในโมดูลพิเศษและฉันเชื่อมต่อตัวอย่างสองโมดูลขึ้นไปในบัสเดียวกันฉันจะได้ตัวต้านทานเหล่านั้นขนานกันดังนั้นความต้านทานจะลดลงและจะไม่ทำหน้าที่ของมันให้สำเร็จ แต่ถ้าฉันเพิ่มตัวต้านทานแบบดึงขึ้นลงในกระดานหลักฉันจะมีหมุดเหล่านั้นใน MCU อยู่ตลอดเวลาที่ใช้งานต่ำ ดังนั้นคำถามหลักคือ: วิธีการเชื่อมต่อโมดูลหลายตัวกับบัสเดียวกันที่มีตัวต้านทานแบบดึงขึ้นแต่ละตัว แต่ไม่ได้ต่อขนานกันเมื่อคุณมีมากกว่าหนึ่งโมดูล เป็นไปได้ไหม หรือทางออกที่ดีที่สุดที่นี่คือเปิดใช้งานตัวต้านทานแบบดึงขึ้นใน MCU และไม่รวมไว้ในโมดูลหรือไม่ Thanks.-

1
AVR จับเวลาเพิ่มความเร็วใน ATmega328
เมื่อทำงานที่ Prescaler นาฬิกา 64 ใน ATmega328 หนึ่งในตัวจับเวลาของฉันเร็วขึ้นด้วยสาเหตุที่ไม่ทราบเวลาในการดำเนินการ ฉันใช้ตัวจับเวลาสองตัวบน ATmega328 เพื่อสร้างการตอกบัตรที่ต้องการโดยTLC5940 (ดูด้านล่างว่าทำไมเพราะนี่คือสิ่งสำคัญสำหรับคำถาม) TIMER0สร้างสัญญาณนาฬิกาโดยใช้ Fast PWM OC0Bและตั้งค่าดังนี้: TCCR0A = 0 |(0<<COM0A1) // Bits 7:6 – COM0A1:0: Compare Match Output A Mode |(0<<COM0A0) // |(1<<COM0B1) // Bits 5:4 – COM0B1:0: Compare Match Output B Mode |(0<<COM0B0) |(1<<WGM01) // Bits 1:0 – WGM01:0: Waveform …
9 avr  atmega  spi  timer 

3
สัญญาณนาฬิกา 30MHz ผ่านหลายบอร์ด
ฉันใช้ไดรเวอร์ LED TLC5945 ไมโครคอนโทรลเลอร์ (ฉันใช้LPC1343 ) ต้องจัดเตรียมนาฬิกาสำหรับตัวจับเวลา PWM / ตัวนับภายใน ความเร็วสัญญาณนาฬิกาสูงสุดที่อนุญาตคือ 30MHz ฉันจะมีบอร์ดหลายบอร์ดที่มี TLC5945 ไดเซชเชน บอร์ดจะเชื่อมต่อผ่านทางตัวเชื่อมต่อระหว่างบอร์ดหรือสายริบบอนแบบสั้นความกว้างของบอร์ดหนึ่งตัวคือ 10 ซม. ฉันจะเชื่อมต่อได้สูงสุด 4 คนในซีรีส์ อาจเป็นไปได้ว่าฉันจะไม่ใช้ 30MHz เต็มรูปแบบ แต่อย่างไรก็ตามฉันต้องการทำถูกต้อง - ฉันจะกำหนดเส้นทาง / สภาพสัญญาณนาฬิกาให้อยู่ในสภาพสมบูรณ์ได้อย่างไร ถ้าฉันเพิ่มบัฟเฟอร์เช่น 74HC245 ในผลลัพธ์ของบอร์ดทุกบอร์ดฉันจะได้รับความล่าช้า 10ns หลังจากบัฟเฟอร์ทุกครั้งฉันไม่ต้องการมัน ฉันควรใช้บัฟเฟอร์นาฬิกาแบบพิเศษ "zero delay" หรือไม่? ฉันควรใช้รูปแบบการเลิกจ้างแบบใด

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 : …

4
ทำไมสัญญาณบางอย่างของฉัน 'สั่น' (มีความกระวนกระวายใจ)
ฉันมีบัส SPI 2 MHz แต่สิ่งหนึ่งที่ฉันสังเกตเห็นคือสัญญาณบางอย่างของฉันมักจะ 'สั่น' ใช่ทริกเกอร์ของฉันติดตั้งอย่างถูกต้องดังนั้นฉันไม่คิดว่าปัญหาจะอยู่ที่นั่น คุณสามารถเห็นสิ่งที่ฉันหมายถึงที่นี่: (นี่คือด้วยโหมดการติดตาอยู่บน) นี่คือนาฬิกาของบัส SPI ของฉัน SPI ทำงานได้ดี ฉันถ่ายโอนเมกะไบต์หลายร้อยบนหลายกระดานและยังไม่พบปัญหา แต่ฉันก็ยังสนใจที่จะรู้ว่าอาจมีปัญหาอะไรที่นี่ นอกจากนี้ฉันควรจะซ่อมมันได้ไหม การวัดถูกถ่ายที่แหล่งกำเนิดด้วยคลิปกราวด์ขนาดเล็กมาก นี่เป็นวงจรที่เรียบง่ายของวงจรของฉัน แน่นอนว่าบอร์ดมีอุปกรณ์ SPI มากกว่านี้ แต่สำหรับวัตถุประสงค์ของคำถามนี้มีความถูกต้องเพราะบอร์ดยังไม่ได้ทำการบัดกรีใด ๆ ยกเว้น uC และการ์ด SD Master (AVR Mega 128) กำลังทำงานอยู่มันเป็น RC oscillator ภายใน - ฉันไม่รู้ว่ามันจะเกี่ยวข้องหรือไม่ แต่เนื่องจากสัญญาณมีการเปลี่ยนแปลงในเวลาที่เป็นไปได้ที่ jitter ของ RC oscillator จะสิ้นสุดใน SPI บัสด้วย แค่คิดว่าฉันจะพูดถึงมัน มันเกิดขึ้นกับฉันด้วยว่าในระหว่างการวัดเหล่านี้ฉันวิ่งคอนโทรลเลอร์ในวงวนไม่สิ้นสุด นี่คือรหัส: while(1) …

1
SPI ดูเหมือนอ่านไม่ออกบน MSP430
ฉันกำลังพยายามดึงบิตที่เหมาะสมออกจาก Bus Pirate ติดกับบอร์ด Launchpad (การใช้สาย Sparkfun: สีส้มไปที่ P1.6, สีเหลืองถึง P1.5 สิ่งนี้ควรถูกต้องเว้นแต่ฉันจะสับสนกับ MOSI และ MISO ... ) ฉันไม่มี CS ติดยาเสพติดเนื่องจากฉันเพิ่งใช้โจรสลัดรถบัสเพื่อตรวจสอบอะไร โจรสลัดบัสถูกตั้งค่าไว้สำหรับ SPI, 125KHz, ขั้วสัญญาณนาฬิกาไม่ได้ใช้งานต่ำ, ขอบนาฬิกาเอาต์พุตใช้งานไม่ได้ทำงาน, เฟสอินพุตตัวอย่างตรงกลาง, / CS, เอาต์พุตปกติ บน Launchpad ฉันมี MSP430G2231 ที่ไม่มีคริสตัลภายนอก การใช้ Code Composer Studio ฉันมีดังต่อไปนี้: #include "msp430g2231.h" volatile unsigned char value=0; #pragma vector=USI_VECTOR __interrupt void universal_serial_interface(void) …
9 spi  msp430 

1
มันสำคัญแค่ไหนที่ฉันข้ามสัญญาณนาฬิกา 2 MHz SPI บนกระดานสองชั้น?
พื้นหลัง ขณะนี้ฉันกำลังทำงานกับบอร์ดฝ่าวงล้อมซึ่งทำให้ฉันสามารถเชื่อมต่อบอร์ดภายนอกจำนวนมาก (สัญญาณอะนาล็อกและสัญญาณผสม) กับ Arduino Micro โดยใช้ตัวเชื่อมต่อที่หลากหลาย บอร์ดฝ่าวงล้อมนั้นถูก จำกัด ไว้ที่สองชั้นและต้องจัดการกับสัญญาณเซ็นเซอร์แบบอะนาล็อกเก้าตัวรวมถึงสัญญาณดิจิตอล (SPI) เจ็ดสัญญาณ ได้แก่ นาฬิกา (SCK), MISO, MOSI และสัญญาณเลือกชิปสี่ตัว (CS) Arduino ได้รับการกำหนดค่าสำหรับความถี่สัญญาณนาฬิกา 2 MHz SPI แต่ฉันไม่สามารถหาข้อมูลเกี่ยวกับเวลาที่เพิ่มขึ้นตามปกติได้ ปัญหาคือฉันไม่แน่ใจว่าวิธีที่ดีที่สุดในการกำหนดเส้นทางสัญญาณดิจิตอลบนกระดานฝ่าวงล้อมของฉันคืออะไร เนื่องจากคำถามของฉันค่อนข้างเรียบง่ายฉันจึงรวบรวมตัวอย่างเล็ก ๆ น้อย ๆ ที่อธิบายไว้ด้านล่าง ปัญหาที่เข้าใจง่าย ในตัวอย่างที่เรียบง่ายนี้ฉันมีระนาบกราวน์, สัญญาณนาฬิกา SPI (SCK), สัญญาณเลือกชิป (CS), และ "พื้นที่เก็บของ" ที่ค่อนข้างใหญ่ดังแสดงในรูปด้านล่าง โปรดทราบว่าตัวอย่างไม่ได้ปรับขนาด: ความยาวการติดตามจริงจะมากกว่า 10 ซม ไม่สามารถแก้ไขการกำหนดพินในตัวเชื่อมต่อได้และฉันจะไม่สามารถย้าย / หมุนตัวเชื่อมต่อหรือพื้นที่ Keepout ได้ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.