PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : چطور از rs485 استفاده کنم؟



gbg
05-09-2013, 13:57
سلام
می خوام از RS485 تو میکروی sam7s64 استفاده کنم
فقط می دونم باید مود UART رو بزارم روی 1
ولی نمی دونم ارسال و دریافت چطور هستش
وقتی چندتا دستگاه همزمان کار می کنن

amin1139
06-09-2013, 14:54
شما یک ای سی رابط بزاری استاندارد rs485 پیاده میشه
max 485

gbg
06-09-2013, 17:11
خب آی سی که گذاشتم
مدار هم بسته شده
روش ارسال و دریافت چطوره
وقتی چندتا دستگاه می خوان به کامپیوتر ارسال کنن یا دریافت کنن چطوره؟

gbg
07-09-2013, 16:40
من از max487 استفاده می کنم
اتصالش به میکرو چطوره؟
بعد با 3.3 کار میکنه؟
من مدارش رو بستم و برنامه رو نوشتم ولی کار نمی کنه
نمی دونم از برنامه هستش یا مدار
البته من ولتاژ 3.3 دادم بهش

esisafa
07-09-2013, 19:23
چند تا میکرو بخوان به کامپیوتر وصل بشن باید کامپیوتر مستر باشه و بقیه اسلیو. بخاطر عدم تداخل باید کامپیوتر به هر کدوم دستور بده که اطلاعات بفرسته و بقیه چیزی نفرستن

gbg
07-09-2013, 22:51
من با اسکپ چک کردم موقعی که می خوام ارسال کنم rts صفر میمونه و یک نمیشه
مگه خود میکرو اتوماتیک اینکار رو انجام نمیده؟
دستی چطور صفر یک کنم؟

یادم رفت بگم یه مقاومت 120 اهمی هم بین پایه های A و B داشتم که برداشتم.

esisafa
07-09-2013, 23:22
یکی از پایه های io رو برای انتخاب ارسال و دریافت در نظر بگیرید.

gbg
07-09-2013, 23:52
خود میکروی s64 پایه PA7 رو برای rts در نظر گرفته که من هم وصلش کردم

esisafa
08-09-2013, 00:17
خوب همین پایه ی pa7 رو با برنامه خودتون صفر و یک کنید

gbg
08-09-2013, 00:26
نشد
فکر کنم خودش اینکار رو باید انجام بده ولی نمی دونم چطور میره تو این مود

esisafa
08-09-2013, 01:24
دیتاشیت این میکرو رو نگاه کردین. در قسمت پورت سریال قطعا توضیح داده

gbg
08-09-2013, 01:42
چیز خواصی توضیح نداده


The USART features the RS485 mode to enable line driver control. While operating in RS485 mode, the USART
behaves as though in asynchronous or synchronous mode and configuration of all the parameters is possible. The
difference is that the RTS pin is driven high when the transmitter is operating. The behavior of the RTS pin is controlled
by the TXEMPTY bit. A typical connection of the USART to a RS485 bus is shown in Figure 31-28.
Figure 31-28. Typical Connection to a RS485 Bus
The USART is set in RS485 mode by programming the USART_MODE field in the Mode Register (US_MR) to the
value 0x1.
The RTS pin is at a level inverse to the TXEMPTY bit. Significantly, the RTS pin remains high when a timeguard is
programmed so that the line can remain driven after the last character completion. Figure 31-29 gives an example
of the RTS waveform during a character transmission when the timeguard is enabled.

esisafa
08-09-2013, 02:23
The behavior of the RTS pin is controlled by the TXEMPTY bit.
The USART is set in RS485 mode by programming the USART_MODE field
in the Mode Register (US_MR) to the value 0x1.

یعنی چی؟
یعنی اینکه باید مقدار رجیستر usart_mode یا us_mr رو 0x1 کنید یا بیت صفر این رجیستر رو 1 کنید. این کارو کردین؟

gbg
08-09-2013, 02:31
این رو که فکر کنم تو پست اول گفتم انجام دادم
فقط یه چیز به ذهنم رسیدش ولی اسکپ ندارم نمی تونم چک کنم
من از هدری که برای rs232 نوشته شده استفاده کردم
درسته که موقع کانفیگ مد رو میگیره ولی فکر کنم تنظیم RTS رو انجام نمیده و فقط rx و tx رو انجام میده
یعنی مقدار 0x60 میزاره این باید تغییر کنه به 0xE0 فکر کنم
حالا فردا می فهمم درست حدث زدم یانه

gbg
08-09-2013, 12:32
آره مقدارش باید تغییر کنه به 0xE0
حالا که با اسکپ میگیرم پایه RTS درست عمل میکنه
ولی عمل ارسال و دریافت درست انجام نمیشه

میشه یکی مدار بستن RS485 رو بزاره
بین A و B یه یه مقاومت 120 اهمی بود که برداشتم و به آی سی هم مقدار 3.3 ولت وصل کردم

طراحی وب سایت
08-09-2013, 13:34
من از max487 استفاده می کنم
اتصالش به میکرو چطوره؟
بعد با 3.3 کار میکنه؟
من مدارش رو بستم و برنامه رو نوشتم ولی کار نمی کنه
نمی دونم از برنامه هستش یا مدار
البته من ولتاژ 3.3 دادم بهش
من هم همین مشکل رو دارم!!!!

gbg
09-09-2013, 00:31
آقا یه جون مرد نیست کمک کنه؟
این آی سی های max485 همه 5 ولت هستن من 3.3 ولت بهش وصل کردم
این قراره تو مسافت بالا وصل بشه و استفاده بشه
اگه قرار 5 ولت بهش وصل کنم واین میکروی من 3.3 ولته مشکلی پیش نمیاد؟
تقسیم مقاومتی بزارم براش چه خاکی بریزم تو سرم
زمان هم ندارم

amin1139
10-09-2013, 21:16
اولن که این استاندارد برای بالای 100 متر حالت سرعت پایینش جواب نمیده سرعت بالاش تا ده متر فاصله باید کم بشه دوما rs485 یک استاندارد ارسال دیتاست و شما احتمالا منظورت پیاده سازی پوروتکل profi bus هست شما تو این استاندارد به جز اون مقاومت 120 باید بین یک سیم و مثبت و طرف دیگه با یک مقاومت باید وصل بشه به منفی تغذیه و پروتکل هم به این شکل هست که یک به صورت -2 ولت و صفر +12 ولت میشه
اگه پروتکل پروفی باسو بخوای باید دنبالش بگردی ولی خود استاندارد rs 485 یک پروتکل پیشفرض هم داره که بعضی کامپایلر ها پشتیبانیش میکنن شما با rs 485 حتی میتونی دیتای سریال بفرستی
ولی در مورد پروفی باس و استاندارد پیش فرض باید بگم ارتباط به صورت half dublex هست یعنی نیمه دوطرفه که یعنی یک ic مستر میشه و بقیه slave میشن و برای ارسال دیتا از مستر باید اجازه بگیرن در نتیجه مستر باید تمام آدرس slave هارو بشناسه و هر slave باید آدرس خودشو داشته باشه حالا شاید کامپایلر پروتکلو بد پیاده کرده باشه یا حتی تو اون دست برده باشه اینو من باچشم خودم دیدم که کامپایلر ccs تو پروتکل x10 دست برده بود شاید شمام با این پدیده مواجه بشی شما کامپایلرت چی هست؟
سوالی بود در خدمتم

gbg
08-07-2014, 17:47
من
profi bus رو پیدا نکردم ولی خطوط دیتا رو با 180 اهم پول آپ و پول دان کردم
سریال چطور میشه فرستاد؟

gbg
08-07-2014, 18:25
اینجا Rs485 (You can see links before reply) بیشتر توضیح دادم البته سخت افزارش رو