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

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

2
เหตุใดหน่วยความจำ SPI Flash จึงมีขนาด จำกัด และมีราคาแพงกว่า (ต่อ MB) มากกว่าหน่วยความจำแฟลช SD
ตัวอย่างเช่น: SPI Flash ขนาดใหญ่ที่สุดคือ 512MB ที่ $ 9 / ea: ราคาแฟลช SPI VS 2GB microSD $ 3 / ea (บางอันมีการจัดส่ง $ 1): ราคา microSD
16 spi  flash  sd  microsd 

1
V-USB จะขันสกรู SPI ในตัวของ ATmega328p ได้อย่างไร
ฉันกำลังทำงานในโครงการ V-USB ที่แสดงเป็นแป้นพิมพ์โดยใช้ ATmega328p ส่วน USB ใช้งานได้ดี (ไม่ใช่โครงการ V-USB ครั้งแรกของฉัน) แต่หลังจากที่ฉันเริ่มต้น V-USB สแต็กด้วยการusbInit()โทรไปยังไลบรารีการ์ด SD ทั้งหมดล้มเหลว ถ้าฉันเรียกฟังก์ชั่นเดิมมาก่อนusbInit()ทุกอย่างจะทำงานได้อย่างสมบูรณ์ ฉันใช้ Arduino โคลนที่เรียกว่า Diavolino แต่ไม่มีโครงร่าง Arduino / เดินสาย ฉันมี USB ที่เชื่อมต่อกับ I / O ดิจิตอล 2 และ 3 และการ์ด SD ถึง 10-13 (สาย SPI ในตัว) ฉันดูในห้องสมุดการ์ด SD และพบว่าไม่มีสัญญาณของมันโดยใช้การขัดจังหวะหรือการลงทะเบียนใด ๆ นอกเหนือSPxxจาก ฉันยังgrepต้องใช้รหัส V-USB ด้วยซ้ำ แต่มันไม่ได้แตะที่SPxxรีจิสเตอร์ …
14 avr  atmega  spi  usb-device  sd 

4
วิธีการย้อนกลับโปรโตคอล I2C และ SPI วิศวกร
หากฉันมีอุปกรณ์ที่ไม่เป็นที่รู้จักซึ่งพูดถึง I2C หรือ SPI ฉันจะทำวิศวกรรมย้อนกลับโปรโตคอลได้อย่างไร โดยทั่วไปฉันกำลังมองหาบางสิ่งบางอย่างที่คล้ายกันเป็นสอดแนมหรือtcpdump สำหรับซอฟต์แวร์ที่เป็นที่ต้องการของ Mac แต่ยังสามารถเรียกใช้พีซีภายใต้แนวขนานได้

4
Optoisolate 2MHz SPI การสื่อสาร
ฉันต้องแยกการสื่อสาร SPI ระหว่างสองชิป คอขวดของการสื่อสารอยู่บนทาสซึ่งเห็นได้ชัดว่าสามารถจัดการได้ถึง2MHzความถี่สัญญาณนาฬิกา SPI ความคิดของฉันคือทำแยกนี้โดยใช้ optocouplers ในความพยายามครั้งแรกนี้ฉันใช้ 4n35 มันไม่ทำงานดังนั้นฉันจึงดูแผ่นข้อมูลและฉันเห็นว่าชิปใช้เวลา10 usเพิ่มขึ้นและ10 usลดสัญญาณ (ในกรณีที่แย่ที่สุด) ทำให้การใช้งานไม่มีจุดหมาย ใครช่วยแนะนำ optocoupler ที่สามารถ: จงเร็วพอสำหรับจุดประสงค์นี้ (2MHz แต่ก็ยอมรับได้ 1MHz) ซื้อง่ายและไม่แพง ฉันค้นหาออปโตคัปเปลอร์ที่ผ่านข้อกำหนดทางอินเทอร์เน็ต แต่ฉันไม่พบสิ่งที่แนะนำได้มากที่สุด ฉันเปิดให้คำแนะนำเกี่ยวกับวิธีการที่จะแยกการสื่อสารในทางที่แตกต่างกันถ้าเป็นในทางปฏิบัติ

1
ไดรเวอร์อุปกรณ์ลินุกซ์หมดเวลาของธุรกรรม SPI
ฉันติดอยู่ที่จุด 3 วันสุดท้าย ฉันกำลังทำงานกับไดรเวอร์อุปกรณ์ eink ด้วยชิปเซ็ต qualcomm msm8960 Scenario: ในไฟล์: เคอร์เนล / arch / arm / mach-msm / devices-8960.c ฉันไม่สามารถตรวจสอบuse of spidm_channels" and "spidm_crci"และรายการที่เกี่ยวข้อง (msm8960 pro) (คัดลอกมาจากรหัสอ้างอิงบางส่วน) วิธีการตรวจสอบว่าค่าที่สอดคล้องกันstart and endถูกต้องหรือไม่? ฉันมีแผ่นข้อมูลสำหรับ msm แต่ไม่พบการอ้างอิงใด ๆ ฉันได้เพิ่มรหัสต่อไปนี้เพื่อสร้างทรัพยากร gsbi ใหม่ในไฟล์เป็น: static struct resource resources_qup_spi_gsbi9[] = { { .name = "spi_base", .start = MSM_GSBI9_QUP_PHYS, …
11 spi  driver  linux 

1
accelerometer BMA180 มันจะจัดการแบ่งปันพินระหว่าง I2C และ SPI ได้อย่างไร
accelerometer BMA180 สามารถเป็น SPI slave หรือ I 2 C slave ก็ได้ พินสำหรับรถโดยสารทั้งสองนั้นใช้ร่วมกัน SPI mode I2C mode --------------------------------------------------- SDI input SDA bidirectional (!) SDO output ADDR address bit, input SCLK input SCL input CSB chip select, input I2C mode select, input ตามแผ่นข้อมูล (ดูบทที่ 8)การเลือกระหว่างรถเมล์จะทำผ่านพิน CSB เมื่อ CSB ต่ำอุปกรณ์จะเป็นทาส SPI เมื่อ CSB …
11 spi  i2c 

4
ตัวเหนี่ยวนำตัวแปรที่ตั้งโปรแกรมได้
ฉันกำลังใช้เหนี่ยวนำตัวแปรเช่นนี้ ฉันกำลังพยายามหาวิธีในการปรับการควบคุมแบบโปรแกรมแบบโพเทนชิออมิเตอร์ อุปกรณ์ดังกล่าวมีอยู่จริงหรือมีวิธีการอื่นที่ดีในการบรรลุเป้าหมายนี้หรือไม่? มันถูกใช้สำหรับจับคู่กำทอนกับอุปกรณ์ที่ไม่สมบูรณ์ซึ่งเป็นสาเหตุที่ไม่สามารถแก้ไขค่าได้ แก้ไข # 1 เพิ่มแผนผัง

4
ทำไมรูปคลื่นของฉันเริ่มต้นก่อนที่จะเรียก?
ฉันกำลังเรียนรู้วิธีวิเคราะห์นาฬิกาและข้อมูลบัส SPI โดยใช้ออสซิลโลสโคปดิจิตอลระดับเริ่มต้น ฉันใช้BK Precision 2542Bเพื่อวัดเอาต์พุตของนาฬิกาและสาย MOSI จากNetduinoที่ใช้ไมโครคอนโทรลเลอร์ ARM ในภาพนี้ฉันมีนาฬิกาที่ช่อง 1 (สีเหลือง) และ MOSI ที่ช่อง 2 (สีน้ำเงิน) ทริกเกอร์ถูกตั้งค่าให้ใช้แชนเนล 1 โดยใช้ทริกเกอร์ขอบเพิ่มขึ้นที่ 1.44V ความกว้างของคลื่นสี่เหลี่ยมของนาฬิกาเป็นประมาณ 3.3V ตัวบ่งชี้ทริกเกอร์อยู่ที่กึ่งกลางของจอแสดงผลในแนวนอน แต่ฉันมีพัลส์ไปทางซ้าย ฉันคาดหวังว่าชีพจรแรกของนาฬิกาจะเริ่มที่ตำแหน่งทริกเกอร์ ฉันรู้ว่าออสซิลโลสโคปแบบดิจิตัลช่วยให้คุณเห็นเหตุการณ์ก่อนและหลังทริกเกอร์ แต่ฉันสับสนว่าทำไมชีพจรแรกไม่ใช่ที่ที่ฉันคิดว่ามันจะเป็น ความเข้าใจของฉันเกี่ยวกับการเรียกที่ไม่ถูกต้องหรือฉันแค่ใช้ขอบเขตแปลก ๆ ? แก้ไข:รถไฟพัลส์มีความกว้าง 300 μsทำซ้ำในช่วงเวลา 2ms และฉันมีทริกเกอร์ระงับมูลค่า 500 μs การปรับการระงับไม่ได้เปลี่ยนความจริงที่ว่าพัลส์หนึ่งนำหน้าทริกเกอร์ แก้ไข 2: หลังจากวิเคราะห์สัญญาณเพิ่มขึ้นรวมถึงการใช้ analog oscilloscope ฉันคิดว่าฉันคิดว่าบางครั้งระยะเวลาการเต้นของชีพจรประมาณ350μsแทนที่จะเป็น300μs นี่อาจเป็นความผิดพลาดในการสร้างรหัสเฟรม ฉันค้นพบว่าเวลาที่หยุดค้างไว้ที่352μsจะให้ผลลัพธ์ที่คาดหวัง แต่ทุก ๆ ครั้งจากนั้นพัลส์พิเศษนำหน้าทริกเกอร์ …

1
มีปัญหาในการเข้าถึงการ์ด microSD ผ่าน SPI เมื่อมีอุปกรณ์ SPI แบบทาสอื่น ๆ หรือไม่?
ฉันกำลังออกแบบที่มี CPU พร้อมพอร์ต SPI เพียงพอร์ตเดียว ฉันมีทาสหลายตัว (3) เชื่อมต่อกับพอร์ตนี้หนึ่งในนั้นคือการ์ด microSD นี่คือรายงานจากวิศวกรผู้หนึ่งที่กล่าวว่าการ์ด SD ได้รับการออกแบบมาให้ทำงานเป็นทาสตัวเดียวของ SPI มีใครอีกบ้างที่สามารถใช้ microSD ตามทาส SPI อื่น ๆ บนรถบัสเดียวกันได้หรือไม่? บางทีรายงานนี้อาจมาจากการ์ด miniSD ที่เป็นปัญหาหรือไม่ ใครบ้างแนะนำให้ gating บรรทัด SPI CLK ด้วย Slave Select line ที่ไปยังการ์ด miniSD เพื่อความปลอดภัย?
10 spi  sd  microsd 

2
รูปแบบ Quad SPI PCB
ฉันพยายามสร้างเลย์เอาต์ที่ดีสำหรับหน่วยความจำแฟลช Quad SPI NOR MT25QL256ABA1EW9-0SIT ด้วย STM32 MCU ปัญหาของฉันคือฉันพบว่าชิปหน่วยความจำ pinout ค่อนข้างไม่สะดวก ฉันจัดการเพื่อสลับพินที่ด้าน MCU วิธีที่สัญญาณอยู่ติดกัน แต่ก็ยังคงเป็นเรื่องยาก ทำตามคำแนะนำเลย์เอาต์ Micron Quad spi ที่ฉันจัดการ: ไม่แยกระนาบกราวด์ต้นแบบ (นี่คือ PCB แบบ 2 เลเยอร์) ทำให้สัญญาณนาฬิกาสั้นและอาจโค้งงอน้อยที่สุด ไม่ใช้ VIAS สำหรับการกำหนดเส้นทางสัญญาณ อย่างไรก็ตามฉันไม่ได้จัดการ: เก็บอิมพีแดนซ์ที่เหมาะสมโดยการคำนวณสไตรไลน์ (มีพื้นที่ไม่มากและมีสัญญาณมาก) รักษาความยาวของสัญญาณที่คล้ายกัน นี่คือเค้าโครง: หลังจากขยายภาพจะเห็นชื่อเน็ตบนแผ่นชิปหน่วยความจำ ฉันต้องการถามคุณในความเห็นของคุณว่าการออกแบบนี้เพียงพอสำหรับการถ่ายโอนสัญญาณนาฬิกามากถึง 80 Mhz เพื่อวัตถุประสงค์ในการเปรียบเทียบรูปร่างสีชมพูที่ชิปอยู่ภายในมีขนาด 18 x 8 มม. เทรูปหลายเหลี่ยมของ GND ถูกวางไว้เพื่อให้มองเห็นได้ ฉันขอขอบคุณความช่วยเหลือทั้งหมด
10 pcb  stm32  spi  layout  high-speed 

1
ปัญหาการสิ้นสุด SPI บัส
ฉันทำงานเกี่ยวกับโครงการที่ OMAP Linux SPI master โต้ตอบกับอุปกรณ์ต่อพ่วง 6 SPI slaves (ตัวแปลง 5x A / D และ magnetometer เดียว) ฉันสามารถตั้งค่าความถี่สัญญาณนาฬิกา SPI และทดลองกับ 50 kHz, 100 kHz และ 1MHz ฉันแนบไดอะแกรมการเดินสาย / กระดานที่แสดงความยาวจากต้นแบบ SPI และอุปกรณ์ต่อพ่วงทั้งหมด ความยาวบัส SPI (ความยาวสายทั้งหมด) อยู่ห่างจากต้นแบบคือประมาณ 970 มม. สำหรับกรณีการทดลองของฉัน ปัญหาที่ฉันพบคือการสื่อสารกับอุปกรณ์ต่อพ่วง 1 ตัวล้มเหลวเมื่อฉันเพิ่มอุปกรณ์ต่อพ่วงอื่น ๆ บนบัส แม้ว่าการสื่อสารจะผ่านไปยังเครื่องวัดสนามแม่เหล็กที่ด้านไกลของรถบัสการสื่อสารกับเครื่องแปลง A / D ในอีกด้านหนึ่งจะล้มเหลวจนกว่าจะถอดขั้วแม่เหล็กของสนามแม่เหล็กออกแล้วส่วน A / …

4
FPGA - การเขียนโปรแกรม DIY
ฉันเขียนโปรแกรมไมโครคอนโทรลเลอร์เป็นเวลาสองสามปีแล้วและฉันเพิ่งค้นพบ FPGA หลังจากเรียนวิชาออกแบบดิจิทัล หลังจากทำการค้นคว้าบางอย่างเกี่ยวกับ FPGA, บอร์ดพัฒนาและอื่น ๆ ที่แตกต่างกันฉันยังลังเลที่จะซื้อเพราะฉันไม่รู้ว่าจะทำ "ผลิตภัณฑ์ขั้นสุดท้าย" ของฉันเองได้อย่างไร ฉันใส่ PIC, SAM's, AVR และอื่น ๆ ลงใน PCB แบบกำหนดเองโดยไม่มีปัญหาดังนั้นฉันจึงไม่กังวลเกี่ยวกับสิ่งนั้น - ข้อกังวลหลักของฉันคือการเขียนโปรแกรม FPGA โดยไม่มีบอร์ดของผู้ผลิต คำถามเฉพาะของฉัน: จะมีฟังก์ชั่น FPGA หรือไม่ถ้าฉันใช้ไฟล์บิตแมปที่สร้างโดย Quartus, Vivado, iCEcube ฯลฯ เขียนไปยังชิปหน่วยความจำแฟลช SPI เริ่มต้นที่ที่อยู่ 0 (พูดผ่าน FT2232H) และเชื่อมต่อหน่วยความจำแฟลช พิน SPI ของ FPGA (พร้อมการตั้งค่า MODE ถูกต้อง)? ฉันขอโทษสำหรับบางส่วนของสมมติฐาน; ฉันค่อนข้างแน่ใจว่านั่นคือโปรแกรมเมอร์ Diamond ของ Lattice …
9 fpga  spi  programming 

3
การเชื่อมต่อบัส SPI - เพื่อวนซ้ำหรือไม่วนซ้ำ?
ฉันมีคำถามเกี่ยวกับการเชื่อมต่อทางกายภาพของบัส SPI ฉันมีต้นแบบ SPI (อุปกรณ์ PIC32) และทาสจำนวนหนึ่ง (ในกรณีนี้คืออุปกรณ์ PIC16) ฉันเขียนไปยังทาสเท่านั้นและโปรโตคอลจะดูแลสิ่งที่ทำเมื่อไหร่ดังนั้นจึงไม่มีสัญญาณ MISO หรือ SS ที่ต้องกังวลและฉันแค่ขนานข้อมูลและสายนาฬิกากับทาสทั้งหมด ความยาวรวมของบัสไม่เกินสองสามฟุต (60 ซม.) และฉันใช้ SCK ที่ 8MHz ตอนนี้ตำแหน่งทางกายภาพของอุปกรณ์สลาฟ (ซึ่งจริง ๆ แล้วเป็นโหนดเชื่อมต่อบนบอร์ดอื่น ๆ ) เป็นเช่นนั้นที่บัส SPI วนกลับไปที่ต้นแบบเพื่อให้สามารถเชื่อมต่อปลายทั้งสองของแต่ละลูปเข้ากับ MOSI และ SCK ตามลำดับ แผนภาพต่อไปนี้แสดงให้เห็นถึงสิ่งที่ฉันหมายถึง - ฉันกำลังพูดถึงการเชื่อมต่อจุดสีแดง - และคำถามคือ: มันเป็นสิ่งที่ดีที่จะทำสิ่งนี้หรือไม่? ฉันมีพลังและพื้นดินในการเดินทางที่คล้ายกันและเห็นได้ชัดว่ามีประโยชน์เพราะมันช่วยลดแรงดันไฟฟ้าตกที่เกิดจากทาส อย่างไรก็ตามฉันไม่รู้ว่ามันเป็นสิ่งที่ดีหรือไม่ดีที่จะทำเช่นเดียวกันกับสายสัญญาณเหล่านี้ ฉันควรอนุญาตให้มีการเลิกจ้างบางประเภท - ตัวต้านทานต่อกราวด์ (?) - หรืออาจเป็นตัวต้านทานแบบอนุกรมเพื่อยับยั้งการสะท้อนกลับหรืออะไร? ฉันลองทั้งที่มีและไม่มีการเชื่อมต่อจุดดังนั้นพูดและไม่มีความแตกต่างในการทำงานและไม่มีการเปลี่ยนแปลงใด ๆ …

3
FSInit () -“ CE_BAD_PARTITION” [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับการแลกเปลี่ยนกองวิศวกรรมไฟฟ้า ปิดให้บริการใน10 เดือนที่ผ่านมา ฉันใช้ PIC18F26K80 และคอมไพเลอร์ XC8 ฉันพยายามเริ่มต้นการ์ด SD และสร้างไฟล์ ฉันเพิ่งฟอร์แมตการ์ด SD บน Windows เพื่อให้มีระบบไฟล์ "FAT32" และ "ขนาดหน่วยการจัดสรร" ที่ 512 ไบต์ ความจุของการ์ด SD คือ 2GB ฉันใช้ไลบรารี MDD จากรุ่น MLA Legacy หลักของฉันคือต่อไปนี้: FSFILE * file; char sendBuffer[22] = "This is test string 1"; //************************************************** // main function …
9 pic  spi  sd  fat 

1
ดูเหมือนจะไม่สามารถเขียนไปยังแฟลช spi
ฉันติดอยู่กับเรื่องนี้มาซักพักหนึ่งแล้วประมาณ 2-3 สัปดาห์ ฉันไม่แน่ใจว่าฉันทำอะไรผิด ฉันกำลังพยายามเขียนถึงส่วนแฟลช spiนี้และตอนนี้ฉันกำลังรันรูทีนเพื่อลบเขียนและอ่านเพื่อพยายามแยกมันออก แต่ก็ไม่มีโชค แน่นอนฉันได้แก้ไขข้อบกพร่องระหว่างทาง ... อย่างไรก็ตามฉันมีสาย WP ของฉันผูกไว้บนกระดานและฉันลดความเร็วของนาฬิกาลงเหลือ 200khz จากนั้นฉันก็ใช้รูทีนการลบและดูเหมือนว่า: ก่อนอื่นฉันจะตรวจสอบ ID เพียงแค่ตรวจแก้จุดบกพร่องนั่นคือคำสั่ง 9F จากนั้นฉันตั้งค่า WREN ด้วยคำสั่ง 06, C7 คือการลบชิปทั้งหมดจากนั้นฉันตรวจสอบบิตสถานะด้วย 05 และชัดเจน เวลาลบชิปของสิ่งนี้มีเพียง 35 มิลลิวินาที ตอนนี้ฉันโหลดรหัสของฉันและลองเขียน: ครั้งแรกที่ฉันตั้งค่า WREN กับ 06 ตรวจสอบสถานะเพื่อดูว่า WREN ถูกตั้งค่าเป็น 05 มันคือจากนั้นส่งคำสั่งโปรแกรมหน้า 02 ไปยังที่อยู่ 0x000000 คุณสามารถเห็นฉันเขียน deadcafe เป็นบิตแรก ๆ ยังไม่ได้วาดภาพที่นี่หลังจากเขียนเสร็จ (หนึ่งหน้าหรือ 256 ไบต์) …
9 pic  spi  flash 

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