NRF51822 BLE yongası nedir?
nRF51822, Bluetooth Low Energy ve 2,4 GHz ultra düşük enerji kablosuz uygulamaları için ideal olan güçlü, esnek ve çoklu protokol destekli bir SoC'dir. 256 kB flash + 16 kB RAM'e sahip 32 bit ARM® Cortex™ M0 CPU üzerine kurulmuştur. Yerleşik 2,4 GHz alıcı-verici, Bluetooth Düşük Enerji ve 2,4 GHz çalışmasını destekler; burada 2,4 GHz modu, Nordic Semiconductor’un nRF24L ürün ailesiyle kablosuz olarak uyumludur.
NRF51822'nin Özellikleri
- Tek yongalı, yüksek esnekliğe sahip, 2,4 GHz çoklu protokol cihaz;
- 32 bit ARM Cortex M0 CPU çekirdeği;
- 256 KB flash, 16 KB RAM;
- S110 Bluetooth Düşük Enerji protokol yığınını destekler;
- S110, 80 kB bellek alanı gerektirir;
- İş parçacığı güvenliği ve çalışma zamanı koruması;
- Olay odaklı API;
- nRF24L Serisi ile kablosuz uyumlu;
- 3 veri hızı (2Mbps/1Mbps/250kbps);
- +4dBm çıkış gücü;
- -92,5 dBm hassasiyet, Bluetooth düşük enerji;
- Analog ve dijital G/Ç için yapılandırılabilir G/Ç eşlemesi;
- Enerji verimliliği uygulamalarını en üst düzeye çıkarmak ve kodu basitleştirmek için PPI sistemi;
- Her bir çevre birimi ürünü için otomatik enerji yönetimi özelliğine sahip esnek enerji yönetim sistemi;
nRF51822'nin pin dizilişi
nRF51822 pin dizilişi 36 pinden oluşur ve her bir pin belirli bir işleve sahiptir. Pinler dört ana kategoriye ayrılabilir: GPIO, ADC, I2C ve PWM. GPIO pinleri dijital giriş/çıkış için kullanılabilir ve giriş ya da çıkış olarak yapılandırılabilir. ADC pinleri analog giriş için kullanılabilir; I2C ve PWM pinleri ise iletişim ve PWM kontrolü için kullanılabilir.

Yukarıda bahsedilen pinlere ek olarak, nRF51822'de iki adet sıfırlama pini, iki adet yonga etkinleştirme pini, iki adet VTREF pini, dört adet güç kaynağı pini ve birkaç başka pin daha bulunmaktadır. Sıfırlama pinleri cihazı sıfırlamak için, yonga etkinleştirme pinleri cihazı etkinleştirmek için ve VTREF pinleri ise analog referans gerilimi sağlamak için kullanılır.
NRF51822 Nasıl Programlanır?
NRF51822 BLE modülünü programlamak biraz karmaşık bir iştir; aşağıda adımlar yer almaktadır.
Ortam Oluşturma ve GPIO Kullanımı
1. Adım: Geliştirme Araçları
Aşağıdaki araçlar gereklidir:


2. Adım: Geliştirme Ortamının Oluşturulması
Yeni bir klasör oluşturun; burada "component", SDK sıkıştırılmış paketinin açılmış dosyasıdır. Yapılandırma dosyasının içinde, SDK'daki örneklerden kopyalanan sdk_config.h dosyası bulunur. "Users" ise MDK projesinin depolandığı klasördür.

MDK ve paket yükleyicisini açın. Ardından, gerekli paketleri yüklemek için nRF51822 yongasını bulun ve seçin.
Şekilde gösterildiği gibi, CORE dosyasını ve Startup dosyasını seçin.

3. Adım: GPIO Programı Yazma
nrf_gpio.h kütüphane dosyasında GPIO ile ilgili ayrıntılı bir giriş bulunmaktadır ve aşağıda birkaç temel işlev listelenmiştir.
//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);
Şimdi, LED'in pin üzerindeki konumunu belirlememiz gerekiyor. nRF51822'nin şematik şemasına göre, P0.07 pini LED'e bağlıdır.
#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);
}
}
Yukarıdaki kodları yazdıktan sonra, başlık dosyasının yolu bulunamadığı için bir derleme hatasıyla karşılaşacaksınız. Bu nedenle, aşağıda gösterildiği gibi başlık dosyasını içe aktarmamız gerekiyor:

Ardından, aşağıda gösterildiği gibi makro tanımını yapın:

4. Adım. Programı indirin
Geliştirme kartını ve bilgisayarı J-Link'in yazılım yöntemiyle bağlayın ve nRFgo Studio'yu açın.
- nRF5x Programming'i tıklayın;
- Hafızayı temizlemek için Erase all'ı tıklayın;
- Hex dosyasını seçin;
- nRF5x'i programlayın ve indirin.

nRF51822'nin Uygulamaları
- Bluetooth Smart Uygulaması;
- Cep telefonu aksesuarları;
- Bilgisayar çevre birimleri;
- Akıllı ev aletleri: fitness ve sağlık sensörü;
- Elektronik oyun kumandası;
- Yaklaşma ve Güvenlik Uyarı Sistemleri;
- Ev/Endüstriyel Kontrol ve Veri Toplama;
- Akıllı RF Takip ve Sosyal Etkileşim;
- TV'ler, set üstü kutular ve medya sistemleri için uzaktan kumandalar;
NRF51822 ile NRF51802 Karşılaştırması
Ayrıca, NRF51822 ile aynı seride yer alan NRF51802 yongası için, bu iki yonganın FLASH RAM kapasitesi aynıdır. Aradaki fark, hassasiyet, güç tüketimi, bekleme akımı ve dahili uyanma süresi açısından küçük farklılıklar bulunmasıdır. 51822 modelinin sunduğu genel veriler daha iyidir. Genellikle, bu iki model birbirinin yerine kullanılabilir.
Şu anda, şirketimiz NRF51822 ve NRF51802 Bluetooth yongalarının tersine analizini, şifre çözme ve analiz optimizasyonunu gerçekleştirmiştir.




