SIM800L standart bod tezligini o'zgartiradi

SIMM-800L moduli bilan ichki soat (8 MGts) bo'lgan ATmega328P-dan foydalanayapman. SIM800L-ning standart bod tezligi 115,200 baud va men ularni bir-birlari bilan to'g'ri gaplasha olmayman. Men 9600 baud bod tezligida ularni juda oson gapirishga qodir bo'lsam ham. Lekin endi yangi SIM800L bilan ishlay olmayman.

Savol:

SIM800L standart bod tezligini qanday o'zgartirish mumkin? ATmega328P ning 115,200 baud bod tezligida ishlashi mumkinmi?

Oldindan rahmat!

EDIT:

Men atmega328pni turli kristalli 115200 ning bod tezligida ishlashim mumkinligini bilaman, lekin ichki kristalni ishlatish mumkin.

2

5 javoblar

Adafruit ning pdf spetsifikatsiyasi SIM800 + Series_Serial + Port_Application + Note_V1.01.pdf , SIM800 boshlanganida avtomatik bodga o'rnatiladi:

SIM800 seriyali sukut bo'yicha autobauding rejimida ishlab chiqilgan. Autobauding, SIM800 seriyasidagi uy egasi qurilmaning bod tezligini avtomatik ravishda aniqlash imkonini beradi. Dasturda uy egasi qurilmasi bod tezligini SIM800 seriyali bilan sinxronlashtirishga to'g'ri keladi. Asosiy kompyuter birinchi navbatda bod tezligini sinxronizatsiya qilish uchun "AT" yoki "at" belgilarni yuborishlari kerak. Uy egasi "OK" javobini qabul qilgunga qadar "AT" ni yuborish tavsiya etiladi, ya'ni uy egasi va SIM800 seriyali to'g'ri sinxronlashtiriladi. Bud tezligi sinxronlashtirilgandan so'ng, "AT + IPR" komandasini ishlatish tavsiya etiladi, bunda SIM800 seriyali bod tezligini uy egasi bod tezligiga ko'ra sozlash mumkin. ...

Ya'ni, dasturiy ta'minotni 9600 bps ga harakat qilishingiz mumkin. Agar siz u darajadagi o'q bilan bog'lansangiz, uni ishlatishingiz yoki "AT + IPR" orqali yuqori chastotaga o'tkazishingiz mumkin. [Men aslida autobaudingning har doim yoqilganligini yoki qandaydir o'chirilgan bo'lishi mumkinligini bilish uchun spec-jadvalni o'qimagansan.]

Ketma-ket ma'lumotlar bps ko'tarilganda, soatning aniqligi talabga ega bo'ladi. Agar er-xotin foizdagi xato 9600 bpsda o'q bo'lishi mumkin bo'lsa, foiz stavkasi 115200 bpsga to'g'ri keladi.

Bir necha kengashlarda taxminan 2% gacha RC osilator chastotasi xatolarini o'lchagan edim, bu esa UART chastotalari qanchalik muhim? yuqori tezlikda ketma-ket aloqa o'rnatish uchun etarli bo'lishi mumkin yoki bo'lmasligi mumkin.

Agar siz ATmega328P-ning RC osilator chastotasini o'lchashingiz mumkin bo'lsa, siz boshlash paytida tuzatish faktorini qo'llashingiz mumkin. Maxsus varaqda (masalan, Atmel-8271J-AVR-ATmega-Datasheet_11/2015), 9.12.1 ga qarang, OSCCAL - Oscillator Calibration Register .

Sizning dasturingiz RC osilator bilan fabrika qiymatidan foydalanishi mumkin va undan so'ng o'zingizning kalibrlash qiymatini RC chastotasini 115200 bps seriyali ma'lumot uchun o'qi qilish uchun kerakli tarzda o'zgartirish uchun Oscillator Calibration Register-ga yuklashingiz mumkin. Yoki o'zingizning raqamingiz bilan zavodda o'rnatilgan qiymatni (EEPROM sigortasida yoki imzo maydonida) yozib qo'yishingiz mumkin.

Shakllari 32-37, ATmega48PA: Kalibrlangan 8MHz RC Osilator chastotasi va boshqalar OSCCAL qiymati , turli Osilatör kalibrlash Register qiymatlari uchun odatda chastotalar ko'rsatadi. Soat chastotasini yaqinlashtirish uchun ketma-ket aloqa aloqa yaxshi ishlaydi.

144 dan 160 gacha bo'lgan yuqori bayt qiymatlari odatda 7,4 MGts dan 8 MGts gacha bo'lgan chastotani (85 ℃) o'zgartiradi. Ushbu diapazonda har bir soniya soat chastotasini taxminan 0,5% ga o'zgartiradi. Tafsilotlar uchun rasmga qarang. Misol uchun, agar 158 qiymati taxminan 7820 KHz RC chastotasini keltirsa, 159 qiymati RC chastotasini taxminan 7860 KHzga ko'tarishi mumkin.

96 dan 112 gacha bo'lgan past masofali yozuvlar 7,5 MGts dan 8,5 MGts gacha chastotalarni ko'chiradi. Ushbu ketma-ketlik eng yaxshi Kalibrlash registri qiymatini qidirishda kerak past darajali va yuqori oraliq qiymatlarni sinashni talab qiladi.

E'tibor bering, yuqorida tavsiya etilgan kalibrlashni ta'minlaydigan ossillator chastotalarini aniq o'lchash uchun ebayda arzon cymometers (chastota taymerlari) mavjud.

2
qo'shib qo'ydi

Aytganingizdek, SIM800L standart bod tezligi 115200 ni tashkil qiladi. Shunday qilib, siz bud stavkasini arduino tomonga o'rnatishingiz kerak. Va ha, ATmega328P ni 115200 baud bod tezligida ishlatish mumkin.

SoftwareSerial kutubxonasidan foydalanishingiz va o'zingizning tx va rx pinlarini belgilashingiz va bod tezligini sizning ehtiyojingiz bo'yicha o'rnatishingiz mumkin.

#include   //SoftwareSerial library
SoftwareSerial mySerial(2,3);//RX, TX for your module

void setup()
{
   mySerial.begin(115200);     //Set your buad rate
}

Va bu kutubxona holda ham qilishingiz mumkin.

void setup()
{
  Serial.begin(115200);       //Set your baud rate
}
2
qo'shib qo'ydi
Kechirasiz, lekin haqiqatga to'g'ri kelmasa, siz SIM800-ning bod tezligini AT (AT-IPR) muvofiq AT buyrug'i bilan o'zgartirishingiz mumkin (boshqa javobda aytib o'tilganidek).
qo'shib qo'ydi muallif alancalvitti, manba
@BenceKaulics Ushbu ma'lumot uchun tashakkur.
qo'shib qo'ydi muallif FirstLastname, manba

Xo'sh, standart bod tezligi 115200 deb o'ylamayman. Standart sozlamalari 115200 boudratni qo'llab-quvvatlamaydigan autobaud. Ma'lumot sahifasidan .

serial port properties

Buni yuqorida qayd etilgan AT + IPR buyrug'i bilan o'zgartirishingiz mumkin. AT qo'llanmasida , shuningdek, standart sozlamalari autobaud va tanlangan bod tezligi.

Eslatma: Foydalanuvchi "AT + IPR = x" buyrug'i bilan sobit bod tezligini o'rnatish uchun foydalanishi mumkin va sozlama avtomatik ravishda doimiy bo'lmagan flesh xotiraga saqlanadi.

AT+IPR command

Agar siz 57600 dan foydalansangiz, siz ehtimoldan xoli bo'lamiz va hatto ushbu qiymat qo'llab-quvvatlanadigan bod tezligi parametrlarini o'zgartirishingiz shart emas.

1
qo'shib qo'ydi

Bud tezligini 9600 raqamiga SIM800L da o'zgartirish mumkin.

AT+IPR=9600

Keyinchalik, buni saqlab qolish uchun (yuklash davrlarini o'rtasida davom etish uchun) quyidagi buyruqni bering:

AT&W

Saqlangan parametrlarni ko'rish uchun quyidagi buyruqni bajaring:

AT&V 
0
qo'shib qo'ydi

Hozirgacha o'qiganimdan, muammolar quyidagilardan iboratki, 8,6 gigagertsli osilatatordan 57,600 dan yuqori tezlikda budjetning bashorat darajasini oshirish uchun yaxshi bo'luvchi yo'q. Ichki osilatorni ishlatish ham harorat bilan o'zgarishga moyil bo'ladi, shuning uchun ko'p ilovalarda ham yomon yechim ko'rinadi. Muammo shundaki, u bir MPU ustida ishlashi mumkin, ammo keyinchalik emas.

Men shuni ayta olamanki, eng yaxshi yechim - 7.372800 MHz osilatordan foydalanish. Bu protsessor bir oz sekinroq ishlaydi, lekin u ham bodning tezligi bo'linmalari deyarli barcha standart va mashhur bodlar stavkalari bo'yicha aniqlanadi, natijada siz kamida 921,000 baudga ishlating.

Agar kimdir yaxshiroq yechim topsa, men uni eshitishni xoxlayman, chunki men turli xil muhitda ishlab chiqarishni rejalashtirmoqchi bo'lgan narsada shunga o'xshash muammoga duch kelmoqdaman.

0
qo'shib qo'ydi