Pemrograman Nordic Semiconductor nRF51822

Apa itu Chip NRF51822 BLE?

nRF51822 adalah SoC yang kuat, fleksibel, dan mendukung berbagai protokol, yang ideal untuk aplikasi nirkabel Bluetooth Low Energy dan 2,4 GHz ultra-low energy. Chip ini dibangun berdasarkan CPU ARM® Cortex™ M0 32-bit dengan memori flash 256 kB + RAM 16 kB. Transceiver 2,4 GHz yang terintegrasi mendukung operasi Bluetooth Low Energy dan 2,4 GHz, di mana mode 2,4 GHz kompatibel secara nirkabel dengan keluarga produk nRF24L dari Nordic Semiconductor.

Fitur NRF51822

  • Perangkat multi-protokol 2,4 GHz berkemampuan tinggi dalam satu chip;
  • inti CPU ARM Cortex-M0 32-bit;
  • 256 KB flash dan 16 KB RAM;
  • Mendukung tumpukan protokol Bluetooth Low Energy S110;
  • S110 memerlukan ruang memori sebesar 80 kB;
  • Keamanan benang dan perlindungan runtime;
  • Antarmuka Pemrograman Aplikasi (API) berbasis peristiwa;
  • Kompatibel nirkabel dengan seri nRF24L;
  • 3 kecepatan data (2 Mbps/1 Mbps/250 kbps);
  • daya keluaran +4 dBm;
  • Sensitivitas -92,5 dBm, Bluetooth Low Energy;
  • Pemetaan I/O yang dapat dikonfigurasi untuk I/O analog dan digital;
  • Sistem PPI untuk memaksimalkan efisiensi energi aplikasi dan penyederhanaan kode;
  • Sistem manajemen energi yang fleksibel dengan manajemen energi otomatis untuk setiap produk periferal;

Konfigurasi pin nRF51822

Konfigurasi pin nRF51822 terdiri dari 36 pin, dan setiap pin memiliki fungsi khusus. Pin-pin tersebut dapat dibagi menjadi empat kategori utama: GPIO, ADC, I2C, dan PWM. Pin GPIO dapat digunakan untuk I/O digital dan dapat dikonfigurasi sebagai input atau output. Pin ADC dapat digunakan untuk input analog, sedangkan pin I2C dan PWM dapat digunakan untuk komunikasi dan pengendalian PWM.

83853322 c9d08e80 a71d 11ea 8fd2 7abbc8d507dd

Selain pin-pin yang disebutkan di atas, nRF51822 juga dilengkapi dengan dua pin reset, dua pin Chip Enable, dua pin VTREF, empat pin catu daya, dan beberapa pin lainnya. Pin reset digunakan untuk mereset perangkat, pin Chip Enable digunakan untuk mengaktifkan perangkat, sedangkan pin VTREF digunakan sebagai tegangan referensi analog.

Bagaimana Cara Memprogram NRF51822?

Pemrograman NRF51822 BLE merupakan tugas yang agak rumit; berikut ini langkah-langkahnya.

Pengaturan Lingkungan dan Penggunaan GPIO

Langkah 1. Alat Pengembangan

MDK Microcontroller Development Kit
MDK Microcontroller Development Kit
v12.2.0 NRF51 SDK Development Kits
v12.2.0 NRF51 SDK Development Kits

Langkah 2. Menyiapkan Lingkungan Pengembangan

Buat folder baru, di mana folder `component` berisi file yang telah diekstrak dari paket terkompresi SDK. Di dalam folder `config` terdapat berkas `sdk_config.h`, yang disalin dari contoh-contoh yang ada di dalam SDK. Folder `users` adalah tempat penyimpanan proyek MDK.

Create a new folder nRF51822 development

Buka MDK dan penginstal paket. Kemudian cari dan pilih chip nRF51822 untuk menginstal paket-paket yang diperlukan.

install packs for nRF51822 in MDK
install packs for nRF51822 in MDK

Seperti yang ditunjukkan pada gambar, pilih berkas CORE dan berkas Startup.

Select the CORE and Startup in software component for nRF51822
Select the CORE and Startup in software component for nRF51822

Langkah 3. Menulis Program GPIO

Terdapat penjelasan terperinci mengenai GPIO dalam berkas pustaka nrf_gpio.h, dan beberapa fungsi utamanya tercantum di bawah ini.

				
					//input Output
typedef enum
{
     NRF_GPIO_PIN_DIR_INPUT = GPIO_PIN_CNF_DIR_Input, ///< Input.
     NRF_GPIO_PIN_DIR_OUTPUT = GPIO_PIN_CNF_DIR_Output ///< Output.
} nrf_gpio_pin_dir_t;

// pull up and pull down
typedef enum
{
     NRF_GPIO_PIN_NOPULL = GPIO_PIN_CNF_PULL_Disabled, ///< Pin pull-up resistor disabled.
     NRF_GPIO_PIN_PULLDOWN = GPIO_PIN_CNF_PULL_Pulldown, ///< Pin pull-down resistor enabled.
     NRF_GPIO_PIN_PULLUP = GPIO_PIN_CNF_PULL_Pullup, ///< Pin pull-up resistor enabled.
} nrf_gpio_pin_pull_t;

//Input and output initialization configuration
void nrf_gpio_cfg_output(uint32_t pin_number);
void nrf_gpio_cfg_input(uint32_t pin_number, nrf_gpio_pin_pull_t pull_config);

//Output high and low/flip level
void nrf_gpio_pin_set(uint32_t pin_number);
void nrf_gpio_pin_clear(uint32_t pin_number);
void nrf_gpio_pin_toggle(uint32_t pin_number);

// read input and output levels
uint32_t nrf_gpio_pin_read(uint32_t pin_number);
uint32_t nrf_gpio_pin_out_read(uint32_t pin_number);
				
			

Selanjutnya, kita perlu menentukan posisi LED pada pin. Berdasarkan diagram skematik nRF51822, pin P0.07 terhubung ke LED.

				
					#include "nrf_delay.h"
#include "nrf_gpio.h"

#define LED 7

int main(){
  
   nrf_gpio_cfg_output(LED);
  
   nrf_gpio_pin_clear(LED); //Output low level
  
   while (1) {
    

      
     nrf_gpio_pin_toggle(LED); // flip level
    
     nrf_delay_ms(1000);
    
    
   }
}
				
			

Setelah menulis kode di atas, Anda akan mendapati adanya kesalahan kompilasi karena jalur berkas header tidak ditemukan. Oleh karena itu, kita perlu mengimpor jalur berkas header tersebut, seperti yang ditunjukkan di bawah ini:

Setup compiler include paths
Setup compiler include paths

Kemudian atur definisi makro, seperti yang ditunjukkan di bawah ini:

Setting macro definition for nRF51822 and compile
Setting macro definition for nRF51822 and compile

Langkah 4. Unduh programnya

Hubungkan papan pengembangan dan PC menggunakan metode perangkat lunak J-Link, lalu buka nRFgo Studio.

  • Klik nRF5x Programming;
  • Klik "Erase all" untuk menghapus memori;
  • Pilih berkas hex;
  • Program nRF5x dan unduh.
Executing nRF5x Programming in nRFgo Studio
Executing nRF5x Programming in nRFgo Studio

Aplikasi nRF51822

  • Aplikasi Bluetooth Smart;
  • Aksesori ponsel;
  • Periferal komputer;
  • Perangkat rumah pintar: sensor kebugaran dan kesehatan;
  • Pengontrol permainan elektronik;
  • Sistem Peringatan Pendekatan dan Keselamatan;
  • Pengendalian Rumah/Industri dan Akuisisi Data;
  • Pelacakan RF Cerdas dan Interaksi Sosial;
  • Remote control untuk TV, set-top box, dan sistem media;

NRF51822 vs NRF51802

Selain itu, untuk chip NRF51802 yang termasuk dalam seri yang sama dengan NRF51822, kapasitas FLASH RAM kedua chip ini sama. Perbedaannya terletak pada adanya perbedaan kecil dalam hal sensitivitas, konsumsi daya, arus siaga, dan waktu bangun internal. Data komprehensif yang ditampilkan oleh NRF51822 lebih baik. Biasanya, kedua model ini dapat digunakan secara bergantian.

Saat ini, perusahaan kami telah berhasil melakukan analisis terbalik, dekripsi, dan optimasi analisis terhadap chip Bluetooth NRF51822 dan NRF51802.

Bagikan ke:

Scroll to Top

Instant Quote