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.

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
Alat-alat berikut ini diperlukan:


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.

Buka MDK dan penginstal paket. Kemudian cari dan pilih chip nRF51822 untuk menginstal paket-paket yang diperlukan.
Seperti yang ditunjukkan pada gambar, pilih berkas CORE dan berkas Startup.

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:

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

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.

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.




