Bagikan melalui


Tes Verifikasi Frekuensi Jam WinRT SPI (Diperlukan LPC1768 mbed)

Pengujian SPI melakukan pengujian fungsional dan stres pengontrol SPI yang terekspos ke usermode melalui API Windows.Devices.Spi WinRT. Cakupan pengujian meliputi:

  • Verifikasi bahwa pengontrol SPI dengan nama ramah tertentu dapat diakses dari usermode.
  • Verifikasi bahwa data dikirim dan diterima dengan benar selama rentang mode SPI, frekuensi jam, panjang bit data, dan panjang transfer.
  • Verifikasi tidak ada celah antara byte dalam transfer. Beberapa perangkat seperti strip LED dan analog ke konverter digital memerlukan sinyal jam yang tidak terganggu.
  • Verifikasi bahwa kecepatan jam aktual yang digunakan berada dalam 15% dari nilai yang diminta.
  • Verifikasi bahwa ketika transfer dicoba dengan panjang buffer yang bukan kelipatan langkah, transfer gagal dengan STATUS_INVALID_PARAMETER dan tidak ada aktivitas yang dihasilkan di bus. Langkah ditentukan oleh DataBitLength sebagai berikut:
   
DataBitLength Langkahnya
4 - 8 1
9 - 16 2
17 - 32 4

Pengujian berjalan terhadap LPC1768 mbed yang terhubung secara eksternal. Mbed LPC1768 adalah platform prototipe mikrokontroler populer yang dapat dibeli dari berbagai pengecer online termasuk Sparkfun, Digikey, dan Adafruit. Memprogram mbed dengan gambar firmware pengujian semederhana menyeret dan menjatuhkan gambar firmware ke perangkat penyimpanan massal. Kode sumber firmware tersedia di github. Instruksi terperinci tentang menyiapkan mbed dan menjalankan pengujian disediakan di bawah ini.

Detail pengujian

   
Spesifikasi
  • Device.BusController.SPI.WinRT.Discretional
Platform
    Rilis yang Didukung
    • Windows 10
    • Windows 10 versi 1511
    • Windows 10, version 1607
    • Windows 10, versi 1703
    • Windows 10 versi 1709
    • Windows 10, versi 1803
    • Windows 10, version 1809
    • Windows 10, versi 1903
    • Pembaruan berikutnya ke Windows 10
    Durasi yang diharapkan (dalam menit) 15
    Kategori Pengembangan
    Waktu habis (dalam menit) 30
    Memerlukan boot ulang salah
    Memerlukan konfigurasi khusus TRUE
    Jenis automatic

     

    Dokumentasi tambahan

    Pengujian di area fitur ini mungkin memiliki dokumentasi tambahan, termasuk prasyarat, penyiapan, dan informasi pemecahan masalah, yang dapat ditemukan dalam topik berikut:

    Menjalankan pengujian

    Anda akan memerlukan perangkat keras berikut untuk menjalankan pengujian:

    Pertama, Anda harus memuat firmware pengujian ke mbed:

    1. Colokkan LPC1768 mbed melalui USB ke PC Anda. Ini akan muncul sebagai drive yang dapat dilepas di PC Anda.
    2. Buka drive di file explorer
    3. Salin c:\Program Files (x86)\Windows Kits\10\Hardware Lab Kit\Tests\x86\iot\busses-tester-mbed_LPC1768.bin ke drive
    4. Tekan tombol pada mbed untuk mengatur ulang mikrokontroler

    Selanjutnya, kawat mbed ke pengontrol SPI Anda yang sedang diuji. Untuk menyalakan mbed, Anda dapat menyambungkannya melalui USB ke perangkat Anda di bawah pengujian atau menyambungkan pin VIN dan GND langsung ke pin daya pada perangkat Anda saat pengujian. Buat koneksi berikut antara perangkat Anda di bawah pengujian dan mbed: (pinout mbed),

    1. Sambungkan pin mbed 13 (P0.15/SCK0) ke pin SCK pada perangkat Anda saat pengujian
    2. Sambungkan pin mbed 30 (P0.4/CAP2.0) ke pin SCK pada perangkat Anda di bawah pengujian (pin ini digunakan untuk pengukuran jam yang tepat)
    3. Sambungkan pin mbed 11 (P0.18/MOSI0) ke pin MOSI pada perangkat Anda saat pengujian
    4. Sambungkan pin mbed 12 (P0.17/MISO0) ke pin MISO pada perangkat Anda saat pengujian
    5. Sambungkan pin mbed 14 (P0.16/SSEL0) ke pin Chip Select pada perangkat Anda saat pengujian
    6. Menyambungkan mbed GND ke pin GND di perangkat Anda saat pengujian

    Anda sekarang dapat menjadwalkan pengujian di studio HLK.

    Pemecahan masalah

    Untuk pemecahan masalah umum kegagalan pengujian HLK, lihat Memecahkan Masalah Kegagalan Pengujian Windows HLK.

    Sebaiknya jalankan pengujian pada baris perintah untuk mendapatkan wawasan tentang kegagalan dan melakukan iterasi dengan cepat pada solusi. Kami juga merekomendasikan untuk menghubungkan penganalisis logika seperti salae. Mungkin sulit atau tidak mungkin untuk menentukan penyebab kegagalan tanpa kemampuan untuk memeriksa lalu lintas bus.

    Berikut cara menjalankan pengujian pada baris perintah:

    1. Salin %programfiles(x86)%\Windows Kits\10\Testing\Runtimes\TAEF\<arch>\MinTe ke c:\data\minte

    2. Salin Windows.Devices.LowLevel.UnitTests.dll dari %programfiles(x86)%\Windows Kits\10\Hardware Lab Kit\Tests\<arch>\iot ke c:\data di perangkat Anda.

    3. Telnet atau ssh ke perangkat Anda

    4. Ubah direktori menjadi c:\data

    5. Jalankan pengujian:

      minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlk*
      

    Penggunaan pengujian baris perintah:

    minte\te windows.devices.lowlevel.unittests.dll [/name:test_name] [/p:SpiFriendlyName=friendly_name] [/p:ClockFrequency=clock_frequency] [/p:DataBitLength=data_bit_length] [/p:SpiMode=0|1|2|3] [/p:Length=length] [/p:WriteLength=write_length] [/p:ReadLength=read_length] [/p:ExtraClocks=extra_clocks] [/p:Verbose=true]
    
    • test_name - nama pengujian yang akan dijalankan yang mungkin menyertakan kartubebas. Contoh: /name:SpiHlk*, /name:SpiHlkTests::VerifyClockFrequency#metadataSet0
    • friendly_name - nama pengontrol SPI yang mudah diuji. Jika dihilangkan, pengontrol enumerasi pertama digunakan. Contoh: /p:SpiFriendlyName=SPI1
    • clock_frequency - paksa pengujian untuk menggunakan frekuensi jam yang ditentukan. Secara default, frekuensi jam berasal dari data pengujian, yang dirancang untuk memberikan cakupan atas berbagai frekuensi. Parameter ini harus dihilangkan dalam keadaan normal. Contoh: /p:ClockFrequency=1500000
    • data_bit_length - paksa pengujian untuk menggunakan panjang bit data yang ditentukan. Contoh: /p:DataBitLength=9
    • SpiMode - memaksa pengujian untuk menggunakan mode SPI yang ditentukan. Contoh: /p:SpiMode=2
    • length - memaksa pengujian untuk menggunakan panjang buffer yang ditentukan untuk transfer. Contoh: /p:length=128
    • write_length - paksa pengujian TransferSequential untuk menggunakan panjang buffer yang ditentukan untuk bagian tulis transfer. Contoh: /p:WriteLength=8
    • read_length - paksa pengujian TransferSequential untuk menggunakan panjang buffer yang ditentukan untuk bagian baca transfer. Contoh: /p:ReadLength=16
    • extra_clocks - tentukan penyesuaian jumlah jam per byte yang digunakan pengujian saat menghitung waktu aktif jam yang diharapkan untuk pengukuran performa, deteksi kesenjangan, dan validasi frekuensi jam. Misalnya, pengontrol SPI BCM2836 menunggu siklus jam tambahan setelah setiap byte, jadi untuk mengimbangi perilaku ini pengukuran harus disesuaikan. Contoh: /p:ExtraClocks=1.5
    • /p:Verbose=true - aktifkan output verbose. Ini akan menyebabkan seluruh buffer dicadangkan ke konsol ketika kegagalan terjadi. Secara default, hanya byte pertama yang tidak cocok yang ditampilkan.

    Contoh:

    Mencantumkan pengujian yang tersedia:

    minte\te windows.devices.lowlevel.unittests.dll /list
    

    Jalankan pengujian validasi IO:

    minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkIoTests*
    

    Jalankan pengujian deteksi kesenjangan:

    minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkGapTests*
    

    Jalankan validasi frekuensi jam dan tes stride:

    minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkTests*
    

    Jalankan pengujian tertentu terhadap instans pengontrol SPI tertentu:

    minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkIoTests#2::VerifyTransferSequential#metadataSet9 /p:SpiFriendlyName=SPI1
    

    Alat yang dapat membantu pemecahan masalah manual adalah SpiTestTool. SpiTestTool adalah utilitas sederhana untuk berinteraksi dengan SPI dari baris perintah.

    Informasi selengkapnya

    Parameter

    Nama parameter Deskripsi parameter
    SpiFriendlyName Nama yang mudah diingat dari pengontrol SPI yang sedang diuji (misalnya SPI0).