Quectel MC60 GSM/GPRS/GNSS MODÜL TASARIMI VE ÇALIŞTIRILMASI
Merhaba arkadaşlar, bu yazımda size staj süresince üzerinde çalışmış olduğum proje hakkında bilgi vereceğim.
İlk olarak size Quectel firmasının üretmiş olduğu MC60 modülün ne işe yaradığından bahsedeceğim MC60 GSM/GPRS/GNSS modül; GSM üzerinden arama yapma, SMS gönderip alma, GPRS ile veri gönderip almaya yarayan kullanıma hazır bir iletişim, uzaktan kumanda ve data transferi modülüdür. MC60 modülünün yukarıdaki özelliklerinin işleve geçebilmesi için gereken kartın tasarımı ve çalışması üzerine, çalışmalar yaptım.
GSM NEDİR?
Global System for Mobile Communications veya kısaca GSM (Mobil İletişim İçin Küresel Sistem), bir cep telefonu iletişim protokolüdür. 212 ülkede 2 milyardan fazla insan tarafından kullanılmaktadır.
GPRS NEDİR?
GPRS (General Packet Radio Service), mevcut 2G cep telefonları şebekesi üzerinden paket anahtarlamalı olarak veri iletimi sağlayan teknoloji. Genellikle cep telefonları ve İnternet arasında, küçük veri paketlerinin alışverişi amacıyla kullanılır.
GNSS NEDiR?
GNSS Global Navigation Satellite Systems(Küresel uydu seyrüsefer sistemi) uydu konum belirleme sistemleri için kullanılan bir terimdir. Küresel konum belirleme sistemleri aracılığıyla uzaydan yollanan dalgalarla yeryüzünde sabit bir biçimde duran elektronik alıcılar bulundukları noktanın ve yakın çevresinin enlem, boylam ve yüksekliğini ve bulunduğu noktada yerel saatin kaç olduğunu tam olarak hesaplayabilir. Bilimsel çalışma ve deneylerde bu veriler büyük kolaylıklar sağlamaktadır.
MC60 GSM/GPRS/GNSS ÖZELLİKLERİ
- Çoklu navigasyon kullanımı: GPS / GLONASS/QZSS
- GSM quad-band: 850/ 900/ 1800/ 1900MHz
- GNSS özellikleri; GPS L1 Band Receiver (1575.42MHz) ,GLONASS L1 Band Receiver (1601.71MHz):
- Çalışma sıcaklığı: -40°C ila + 85°C
- Besleme gerilimi aralığı: 3.3~4.6V
- Boyutlar: 18.7×16.0x2.1 mm
- GPRS mobil istasyon sınıfı B
- GPRS sınıfı 12 (85.6kbps Dowlink, 85.6kbps Uplink)
- Çoklu internet protokolleri: TCP / UDP / FTP / PPP / HTTP / NITZ / NTP / PING / HTTPS / TCP / SSL
SERİ HABERLEŞME PROTOKOLÜ
Projemde kullandığım MC60 modülü seri haberleşme protokolü olarak UART haberleşme protokolünü kullanmaktadır ve veri taşıma hızı olarak 4800bps’den 115200bps’e kadar desteklemektedir.
UART: (Universal Asynchronous Receiver Transmitter), bilgisayar ve mikrokontroller veya mikrokontroller ve çevre birimler arasında haberleşmeyi sağlayan haberleşme protokolüdür. Asenkron olarak çalıştığı için herhangi bir “clock” ihtiyacı duymaz. Baudrate (veri taşıma hızı) çok çeşitli aralıklarda olabir genel olarak yaygın olarak kullanılan baudrate’ler 4800-9600-57600-115200bps değerindedir. Baudrate bizim verimizin saniyede ne kadarlık byte’ını taşıyacağını belirlememize yarar.
PROJE DETAYLARI
Projem 2 ana kısımdan oluşmaktadır. 1. kısım; MC60 modülün lehimlendiği kart, 2.kısım; modül hariç diğer devre elemanlarını üzerinde bulunduran kart. Modülü ayrı bir karta lehimlememin sebebi asıl kartıma lehimleseydim herhangi bir sorundan dolayı modülü sökmem gerekebilirdi, mc60 modülünün pin sayısı fazla ve alt kısımında da pinler olduğu için lehimlemesi zor ve sökülürken de zarar verilebilir bu yüzden ayrı bir karta lehimledim.
1.KISIM
MC60 modülünün Lehimleneceği kartın şematik ve pcb çizimi;
2.KISIM
Şimdi sizlere detaylı bir şekilde asıl kartımda önemli olan kısımların şematik çizim üstünden açıklamasını yapacağım.
1-) Power Supply:
Bu kısımda devrenin girişine 5 volt gelmektedir, MC60 modülü ise 3.3-4.6 volt aralığında çalışmaktadır tavsiye edilen gerilim ise 4 volttur. Gelen 5 voltu 4 volta düşürmek için mpm3830adj adlı regülatörü kullandım. Adjustable(ayarlanabilir) olduğu için feedback pinine bağlı dirençleri 4v çıkaracak şekilde ayarlamam gerekiyordu, regülatörün datasheet’ini kullanarak hesaplamasına baktım ve 4 voltun çıkışı için 150k ve 26.7k direnç kulandım. Gnss için ise tlv70033ddcr adlı 5 volttan 3.3 volta düşüren regülatörü kullandım.
2-) Serial Interface:
Arduino’dan modülün bacaklarına giden pinlerin gerilimi 5 volttur ama modüle gelemsi gerek gerilim 2.8 volttur, modülden çıkan gerilim 2.8 volttur ve arduinoya gitmesi gereken gerilim ise 5 volttur. Bu çift yönlü gidiş geliş voltajını çeviren devre elemanı ise 6 Bit Çift Yönlü Voltaj Seviye Çeviricisi olan txb0106pwr’dır. anahtar kullanma nedenim ise All-in-on ve Stand-alone özelliklerinin anahtar ile kontrol edilmesi içindir.
3-) Sim Card:
Sim kart konnektörü olarak 115u-A000 nano sim kart konnektörünü kullandım. Anlık voltaj dalgalanması engellemek için ise tvs diyot kullandım.
4-) GSM/GNSS Anten:
İki adet anten konnektörü ve iki adet kablolu anten konnektörü kullandım dirençler ve kondansatörler takılacak antene göre ayarlandığından 0R direnç ve kondansatörleri nm olarak ayarladım.
5-) SD Card:
Anlık konum bilgilerini ve gelen sms verilerinin daha fazla depolanabilmesi için Sd card ekledim. Sd Card olarak 5008730806 adlı sd card konnektörünü kullandım.
6-)Earphone Design:
Datasheette iletişim bölümünde; Sadece ses iletimi için mikrofon, Sadece ses alımı için kulaklık ve her ikisinide yapabilen 3.5mm jack girişi dizaynları vardı. Ben hem karşıdan ses almak ve hem de karşıya ses iletmek için olan Jack girişi dizaynını tercih ettim.
7-)Şematik Ve Pcb Çizimi:
Pcb Çizimlerin 3D Görünümü
Modülün Kontrol edilmesi
Her GSM/GPRS modülü gibi MC60 modülü de AT komutlarıyla kontrol edilir. AT komutlarının kullanımı için farklı yollar vardır genel olarak Aduino, Stm32 ve Qnavigatör kullanılır. Benim tercihim ise örnek sayısının fazla olması ve hızlı bir şekilde test etme imkanı sağlayan arduino oldu. Yazdığım programdaki AT komutlarını ise üretici firmanın paylaşmış olduğu MC60 AT Commands adlı datasheet ‘den aldım.
AT komutları: “ATtention” kelimesinin kısaltması olan AT komutları bir modemi kontrol etmek amacıyla kullanılır. Tüm komutlar “AT” veya “at” ile başlar. Bu komutların çoğu modemi kontrol etmek için kullanılsa da GSM/GPRS modüllerini ve mobil telefonlarını da kontrol etmek için kullanılır.
#include <SoftwareSerial.h>//ARAMA YAPMA SoftwareSerial mySerial(3, 2); void setup() { Serial.begin(9600); mySerial.begin(9600); Serial.println("Initializing..."); delay(1000); mySerial.println("AT"); updateSerial(); mySerial.println("ATD+90XXXXXXXXXX;"); updateSerial(); delay(9000); mySerial.println("ATH"); updateSerial(); } void loop() { } void updateSerial() { delay(100); while (Serial.available()) { mySerial.write(Serial.read()); } while(mySerial.available()) { Serial.write(mySerial.read()); } }
#include <SoftwareSerial.h> //SMS Atma SoftwareSerial mySerial(3, 2); void setup() { Serial.begin(9600); mySerial.begin(9600); Serial.println("Initializing..."); delay(1000); mySerial.println("AT+CFUN=1"); updateSerial(); mySerial.println("AT"); updateSerial(); mySerial.println("AT+CMGF=1"); updateSerial(); mySerial.println("AT+CMGS=\"+90XXXXXXXXXX\""); updateSerial(); mySerial.print("test"); updateSerial(); mySerial.write(26); } void loop() { } void updateSerial() { delay(500); while (Serial.available()) { mySerial.write(Serial.read()); } while (mySerial.available()) { Serial.write(mySerial.read()); } }
SMS ATMA
ARAMA YAPMA
Salih Işıkcı
Konya Teknik Üniversitesi
Süper emeğinize sağlık.
Merhaba.
Elinize sağlık. Detaylı bir yazı olmuş. Aynı modülü bende daha önce pcb çizip kullandım. Başarılı bir tasarım olmuş fakat yeniden tasarlasaydım şurayı değiştirirdim diyebileceğim birkaç önerim olacak.
1) GSM, GNSS ve Bluetooth antenleri header yardımıyla taşımak çok doğru bir yöntem değil. Üstteki pcb alanını biraz genişletip MCx konnektörleri üstteki pcbye almak daha mantıklı. Alternatif olarak Üstteki pcbye u.fl konnektör takıp burayta takılabilecek anten çeşidi artırılabilir. Çünkü GNSS ve GSM antenlerin çok fazla konnektör yapısı ve çeşidi var.
‘) montajınız genel olarak iyi, MC60 kenarındaki yollardaki kalaydan dolayı havya ile montaj yaptığınızı düşünüyorum. Plastik elek ve krem lehim hem hata riskini hem de malzemelerin daha kolay lehimlenmesi açısından büyük kolaylık.
3) Bu kadar uğraştıktan sonra pcbyi çin kaynaklı pcbwayi jlcpcb vb yerlerde yaptırmak daha mantıklı. Çünkü hem vialardan dolayı yasarım daha kolay oluyor hem de daha profesyonel görünüyor. Hata ve kopuk yol olayı da nerdeyse sıfır.
Açıklamalar sizinki kadar detaylı değil ama beneki tasarıma ait blog sayfamı paylaşıyorum.
http://fidenetgaraj.blogspot.com/2018/05/omega2-gelistirme-bordu-yapalm.html
Elinize sağlık. Çlışmalarınızda başarılar dilerim.
Merhaba.
Elinize sağlık. Detaylı bir yazı olmuş. Aynı modülü bende daha önce pcb çizip kullandım. Başarılı bir tasarım olmuş fakat yeniden tasarlasaydım şurayı değiştirirdim diyebileceğim birkaç önerim olacak.
1) GSM, GNSS ve Bluetooth antenleri header yardımıyla taşımak çok doğru bir yöntem değil. Üstteki pcb alanını biraz genişletip MCx konnektörleri üstteki pcbye almak daha mantıklı. Alternatif olarak Üstteki pcbye u.fl konnektör takıp burayta takılabilecek anten çeşidi artırılabilir. Çünkü GNSS ve GSM antenlerin çok fazla konnektör yapısı ve çeşidi var.
‘) montajınız genel olarak iyi, MC60 kenarındaki yollardaki kalaydan dolayı havya ile montaj yaptığınızı düşünüyorum. Plastik elek ve krem lehim hem hata riskini hem de malzemelerin daha kolay lehimlenmesi açısından büyük kolaylık.
3) Bu kadar uğraştıktan sonra pcbyi çin kaynaklı pcbwayi jlcpcb vb yerlerde yaptırmak daha mantıklı. Çünkü hem vialardan dolayı yasarım daha kolay oluyor hem de daha profesyonel görünüyor. Hata ve kopuk yol olayı da nerdeyse sıfır.
Açıklamalar sizinki kadar detaylı değil ama beneki tasarıma ait blog sayfamı paylaşıyorum.
http://fidenetgaraj.blogspot.com/2018/05/omega2-gelistirme-bordu-yapalm.html
Elinize sağlık. Çlışmalarınızda başarılar dilerim.