امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
خطا در انتقال اطلاعات با USART
نویسنده پیام
mohammadjp آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 4
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 7
( 4 تشکر در 1 ارسال )
ارسال: #1
خطا در انتقال اطلاعات با USART
من یک برد با atmega64 ساختم و تمام اجزاء را از قطعات SMD استفاده کرده ام. من می خواستم که از Usart0 بخونم و نتایج را در Usart1 تکرار کنم ولی داده هائی که تکرار میشد صحیح نبود لذا برنامه را تغییر دادم به این صورت که در یک حلقه اعداد 0-255 را به پورت سریال 1 بفرستد ولی نتایج اعداد تصادفی و عجیب غریب بود.
تنظیمات پورت سریال و باد ریت را مطمئنم که درست انجام دادم ولی سر از این عیب سخت افزاری در نیاوردم.
۱۲-اسفند-۱۳۸۷, ۱۸:۰۴:۴۱
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #2
RE: خطا در انتقال اطلاعات با USART
برنامتون رو می ذارین ؟؟
۱۲-اسفند-۱۳۸۷, ۱۸:۵۱:۴۴
ارسال‌ها
پاسخ
mohammadjp آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 4
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 7
( 4 تشکر در 1 ارسال )
ارسال: #3
RE: خطا در انتقال اطلاعات با USART
#include <mega64.h>
#include <stdio.h>
#include <delay.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
void main(void)
{
// USART1 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART1 Receiver: On
// USART1 Transmitter: On
// USART1 Mode: Asynchronous
// USART1 Baud Rate: 2400
UCSR1A=0x00;
UCSR1B=0x98;
UCSR1C=0x06;
UBRR1H=0x01;
UBRR1L=0x7F;
while (1)
{
while (!(UCSR1A & DATA_REGISTER_EMPTY));
UDR1=100;
}
}
۱۴-اسفند-۱۳۸۷, ۱۲:۳۵:۵۹
ارسال‌ها
پاسخ
mohammadjp آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 4
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 7
( 4 تشکر در 1 ارسال )
ارسال: #4
RE: خطا در انتقال اطلاعات با USART
برنامه فوق ساده ترین برنامه ای است که بطور پیوسته کاراکتر d را باید روی پورت سریال 1 ایجاد کند که هر وقت من کابل این پورت را قطع و وصل می کردم نتایج تغییر میکرد یا هر وقت من کابل سریال دیکری را همزمان به پورت سریال 0 وصل میکردم کاارکترهای متفاوتی روی چورت سریال 1 بجای کاراکتر d ایجاد میشد
۱۴-اسفند-۱۳۸۷, ۱۲:۴۰:۰۰
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #5
RE: خطا در انتقال اطلاعات با USART
مهندس قطع و وصل کردن خوب باعث می شه اطلاعات ناقص ارسال شه .

خوب یه کابل دیگه هم باعث می شه اطلاعات قاطی بشن و نامفهموم در میان .

ولی در حالت معمول باید کد اسکی 100 ( همون حرف دی ) رو مدام بفرسته !!

نمی دونم ایرادتون کجاست .
۱۴-اسفند-۱۳۸۷, ۱۵:۱۹:۵۰
ارسال‌ها
پاسخ
تشکر شده توسط : 1nafar
mohammadjp آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 4
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 7
( 4 تشکر در 1 ارسال )
ارسال: #6
RE: خطا در انتقال اطلاعات با USART
البته من فکر میکنم که هنگام قطع و وصل سیم حداقل یکی دو بایت از اطلاعات را از دست بدهم ولی در این برد تا زمانیکه کابل راقطع و وصل نمیکردم همه کاراکترها مثل هم بود ولی کد 100 نبود
کابل دوم را هم من به USART صفر متصل میکردم که در برنامه برای آن دستور العملی ننوشته بودم.
آیا ممکن است یک ایسی تمام بخشهایش به خوبی کارکند و در یک بخش بطور ذاتی مشکل داشته باشد
ایا استفاده از قطعات SMD باعث میشود که نویز یا عامل دیگری نتیجه کار را خراب کند
۱۴-اسفند-۱۳۸۷, ۱۵:۵۶:۱۰
ارسال‌ها
پاسخ
1nafar غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,195
موضوع‌ها: 91
تاریخ عضویت: فروردین ۱۳۸۷

تشکرها : 1577
( 4273 تشکر در 953 ارسال )
ارسال: #7
RE: خطا در انتقال اطلاعات با USART
سلام
دوست عزیز تا حالا هر کسی توی ارتباط سریال مشکل داشته یکی از موارد زیر رو رعایت نکرده :
1- جای پایه های txd و rxd رو اشتباه زده (پایه rxd ( گیرنده داده سریال ) به پایه txd (فرستنده داده سریال )متصل میشه
2- فرکانس کاری میکرو که توی برنامه نوشته میشه با فرکانس کریستالی که میکرو به اون متصل هست یکی نیست ، همه میگن ما یه کریستال به همون اندازه به میکرو متصل کردیم ، در حالی که باید فیوز بیت کریستال رو هم برنامه ریزی کنن ، در این حالت اگه کریستال رو از میکرو جدا کنید ، میکرو خاموش میشه
3- با استفاده از کریستال های 1.8432-3.6864-7.3728-11.0592-14.7456 مگا هرتز انتقال داده بدون هیچ خطایی انجام میشه ، بقیه کریستال ها .16 درصد خطا داره و این مقدار در هنگام استفاده از کریستال داخلی به 1 تا 20 درصد میرسه ، پس بهتر که از کریستال خارجی استفاده بشه و کریستال یکی از موارد یاد شده باشه
4-در صورتی که برنامه داده رو به پورت سریال میفرسته بهترین مقدار برای خازن 2.2 میکرو فاراد هست .
5-در ارتباط سیم گراند حتما باید وجود داشته باشه
6-
و در نهایت یه نکته مشکوک توی برنامه شما (البته من به c زیاد وارد نیستم)
شما برای دریافت سریال باید از تابعgetchar( ) و برای ارسال از تابع () putchar استفاده کنید که من این دو تا تابع رو توی برنامه شما نمیبینم
و شما توی اولین پست گفتید که اطلاعات را از یک پورت به پورت دیگه میدید ، در حالی توی برنامه فقط USART1 راه اندازی شده
و در ضمن من جایی ندیم که کاکتری به نام d معرفی شده باشه و ارسال بشه

و در اخر شما توابع رو برای چی میفرستید ؟

و پاسخ سوال ها :
نقل قول: البته من فکر میکنم که هنگام قطع و وصل سیم حداقل یکی دو بایت از اطلاعات را از دست بدهم ولی در این برد تا زمانیکه کابل راقطع و وصل نمیکردم همه کاراکترها مثل هم بود ولی کد 100 نبود
هنگامی که شما کابل رو قطع میکنید کلیه اطلاعات از بین میره ، توی n کیلو بایت اطلاعات ، اگه بیت هم از بین بره کل اطلاعات از دست رفته ، برای ارتباط سریال خطای کم تر از .2 درصد مورد قبول هست ، در صورتی که خطا از این حد بیشتر بشه ، هیچ داده ای نمایش داده نمیشه .
نقل قول: آیا ممکن است یک ایسی تمام بخشهایش به خوبی کارکند و در یک بخش بطور ذاتی مشکل داشته باشد
این احتمال بسیار کم هست ، معمولا توی یه سری از میکرو های جدید ، فقط سیستم ریست و کریستال (بالای 15 مگا هرتز )کار نمیکرد
نقل قول: ایا استفاده از قطعات SMD باعث میشود که نویز یا عامل دیگری نتیجه کار را خراب کند
ایا شما در کنار منبع نویز هستید ؟
معمولا این قطعات در صورتی که نویز زیاد باشد درست کار نمیکنند (همه قسمت ها از کار میافتد ) در صورتی که کابل شما بلند باشد (بیشتر از 5 متر ) و فاقد شیلد باشد (روکشی از جنس الومنیم یا مس که دور سیم میپیچند و شما باید ان را به زمین مدار متصل کنید ، معمولا کلیه کابل های که برای این منظور ساخته میشن دارای شیلد هستند ) و سیم زمین درست ممتصل نشده باشد ، ممکن است دتسگاه ها به خوبی کار نکنند
(آخرین ویرایش در این ارسال: ۱۴-اسفند-۱۳۸۷, ۱۶:۱۳:۲۲، توسط 1nafar.)
۱۴-اسفند-۱۳۸۷, ۱۶:۰۱:۳۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, mohammadjp
mohammadjp آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 4
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 7
( 4 تشکر در 1 ارسال )
ارسال: #8
RE: خطا در انتقال اطلاعات با USART
با سلام و تشكر فراوان بخاطر توضيحات مبسوط جنابعالي
من از كريستال 14.7456 استفاده كردم و هنگام پروگرام ار پروگرامر STK400 استفاده ميكنم كه از طريق منو نرمافزار ان را روي high external frequency قرار دادم ساير موارد را نيز رعايت كرده ام.
۱۷-اسفند-۱۳۸۷, ۱۰:۱۸:۲۵
ارسال‌ها
پاسخ
1nafar غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,195
موضوع‌ها: 91
تاریخ عضویت: فروردین ۱۳۸۷

تشکرها : 1577
( 4273 تشکر در 953 ارسال )
ارسال: #9
RE: خطا در انتقال اطلاعات با USART
سلام
اگه میشه کل برنامه رو بذارید
۱۷-اسفند-۱۳۸۷, ۱۷:۴۹:۰۵
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  استفاده از SIM900 برای انتقال دیتا از طریق GPRS amirtebyan 12 12,379 ۳۰-آذر-۱۳۹۸, ۱۰:۵۶:۳۷
آخرین ارسال: hadikh73
  انتقال داده از طریق اترنت (Network) iman-63 36 33,755 ۲۰-آذر-۱۳۹۶, ۲۰:۲۹:۳۱
آخرین ارسال: اکبرو
  مشکل در ارتباط بیسیم با پروتکل USART cortex-m3 5 6,012 ۰۷-آبان-۱۳۹۵, ۰۰:۱۷:۳۶
آخرین ارسال: milad15m
  ارسال و دريافت اطلاعات از پايه هاي AVR-ATMEGA32 mahdi321 1 2,470 ۱۹-مهر-۱۳۹۴, ۲۰:۵۳:۰۶
آخرین ارسال: milad15m
  مشکل در دریافت اطلاعات صحیح در گیرنده با پروتکل USART cortex-m3 0 2,051 ۱۹-اردیبهشت-۱۳۹۴, ۲۲:۵۴:۳۸
آخرین ارسال: cortex-m3
  [سوال] رتباط سریال usart hosseinip 6 3,882 ۱۱-فروردین-۱۳۹۴, ۰۲:۰۰:۴۳
آخرین ارسال: hosseinip
  رمز داردار کردن اطلاعات ارسالی با ماژول های hm s.h.h 3 2,205 ۲۴-مهر-۱۳۹۳, ۱۵:۵۸:۲۰
آخرین ارسال: omid_phoenix
  خواندن اطلاعات از LCD گرافیکی؟ m.reza.a 9 6,829 ۲۵-اسفند-۱۳۹۲, ۲۳:۰۷:۱۴
آخرین ارسال: robojalal
Rolleyes خواندن و نوشتن اطلاعات برروی کارت تلفن. SMNsoft 38 34,737 ۱۴-اسفند-۱۳۹۲, ۱۶:۴۰:۵۸
آخرین ارسال: skiboys
  شمارش و نمایش بایت های دریافت شده از USART persibal 0 2,223 ۱۹-شهریور-۱۳۹۲, ۱۱:۱۹:۴۲
آخرین ارسال: persibal

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS