ايران ويج

نسخه‌ی کامل: نحوه چيدمان ارتباطي چند ميكرو
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
دوستان سلام
صالح جان از تلاشت براي حل اين موضوع متشكرمHappy
طبق توصيه ات ميكروها را سخت افراري پيكره بندي از فيوزبيت 4mb داخلي استفاده كردم
از آخرين پست رو 2 مدار با 2 مگا32 و يك مگا8 كار كردم اولين مدار ميكرو مستر را مگا 32 و دومي را كه فايلهاش را گذاشتم مگا 8 قرار دادم
از دو اسليو ، بايد دو عدد ثابت به صورت سري به مستر ارسال شود ولي ...Sad
* چرا فركانس پالس اسليو 1 و 2 متفاوته ؟ مگه فركانس كاريشون برابر نيست ؟
* چرا ديتاي اسليو 1 و 2 با هم قاطي ميشن ؟
تو برد هم بدتر از اينه !
کد:
http://www.4shared.com/file/_nGi4q7d/2spi.html
http://www.4shared.com/file/2PbonPmj/2spi_m.html
http://www.4shared.com/file/JTskCT7m/2spi_s_1.html
http://www.4shared.com/file/jThPPAdG/2spi_s_2.html
اين كدها در دو پست بعدي اصلاح شدند
موعد دفاعيه پروژم نزديكه و مغزم قفل كرده Confused
لطفا دوستاني كه مي تونند هم كمك كنند Clap
انگار فایل ها اشتباهی آپ شدن.Exclamation

توی نقشه مدار، lcd به مگا 32 وصل شده اما در برنامه ی مستر(مگا8) السیدی تعریف شده.

چیزی که همین جوری ذهنم رسید:

*در برنامه ی مستر قرار شده که خودمون Ss رو کنترل کنیم، پس باید Noss=1 رو در تعریف spi اضافه کنید(در هلپ بسکام توضیح داده)
الان خوابم میاد، فردا دقیق تر بررسی میکنم.
سلام ببخشيد درسته بي دقتي كردم
از دو اسليو ، بايد دو عدد ثابت به صورت سري به مستر ارسال شود ولي ...Sad
* چرا ديتاي اسليو 1 و 2 با هم قاطي ميشن ؟ مگه برنامه خط به خط اجرا نميشه و 255 و يه عدد نامربوط را نشون ميده !!
مشكل چند فركانسي هم به لطف صالح جان حل شد ولي دو اسليو دچار اختلال فاز شدند ...
تو برد هم تست كردم بجاي دو عدد ثابت 130 و 70 ، 150 را نشان ميده
دو تا ابهام هم دارم كه اگه كمك كنيد ممنون ميشم * تو يه برنامه ديدم كه تو مستر متغير a فرستاده بود ولي تو اسليو b گرفته بود و برنامه هم كار ميكرد در زماني كه بخواهيم چند متغير را بفرستيم چه بايد كرد ؟
منظور از تعداد بايتي كه بعد از متغير مي آيد چيست ؟ مثلا اگه يه متغير سينگل بخواهيم بفرستيم چطوري تعداد بايت را بدست بياريم ( رشته ام الكترونيك نيست )

لطفا يه نگاهي بندازيد ببينيد مشكلش كجاست ؟
طبق پست قبلي آقا صالح دوباره اينجا آپلود شد !
http://www.4shared.com/file/5hZdJyP-/2spi.html
http://www.4shared.com/file/LBg3Cm28/2spi_m.html
http://www.4shared.com/file/AN8Z_zLv/2spi_s_1.html
http://www.4shared.com/file/aO68GP3n/2spi_s_2.html
( هر چهار فايل را در يه فولدر بريزيد )

لطفا دوستاني كه مي تونند هم كمك كنند Clap
سلام بر همگي
يه مدار با يه مستر و دو اسليو

کد:
'master
$regfile = "m8def.dat"
$crystal = 4000000

$hwstack = 100
$swstack = 30
$framesize = 40

config portb.2 = output
config portb.1 = output
config portc = output

config lcd = 20 * 4
config lcdpin = pin , db4 = pinc.2 , db5 = pinc.3 , db6 = pinc.4 , db7 = pinc.5 , e = pinc.1 , rs = pinc.0

Config Spi = Hard , Interrupt = on , Data Order = lsb , Master = yes , Polarity = high , Phase = 0 , Clockrate = 128 , noss = 1
Spiinit
enable spi

Dim a As Byte , b as Byte , c as byte , g as Byte , h as Byte

Do
reset portb.2
a = Spimove(h)
set PORTB.2
waitms 100
reset PORTB.1
b = spimove(g)
set portB.1

decr c
cls
locate 1 , 10
lcd a
locate 2 , 10
lcd c
locate 3 , 10
lcd b
Loop
end

کد:
' slave 1
$regfile = "m32def.dat"
$crystal = 4000000

$hwstack = 200
$swstack = 40
$framesize = 50

config portb.4 = input

Config Spi = Hard , Interrupt = on , Data Order = lsb , Master = No , Polarity = high , Phase = 0 , Clockrate = 128 , noss = 0


Dim a As Byte , h as Byte

Do
waitms 400
Spiinit
enable spi
a = spimove(h )
decr h
Loop
end

کد:
slave 2
$regfile = "m32def.dat"
$crystal = 4000000

$hwstack = 200
$swstack = 40
$framesize = 50

config PORTB.4 = input

Config Spi = Hard , Interrupt = on , Data Order = lsb , Master = No , Polarity = High , Phase = 0 , Clockrate = 128 , noss = 0

Dim B As Byte , g as Byte

Do
waitms 400
Spiinit
enable spi
b = Spimove(g)
incr g
Loop
end

دوستان خواهش ميكنم به مدار نگاهي بندازيد
تو پروتئوس تقريبا خوبه ولي تو مدار عدد ارسالي هر اسليو درسته ولي با صفر همراهه يعني مثلا 100 ميلي ثانيه عدد را نشون ميده و بقيه زمان تا عدد بعدي صفر را
چرا تو پروتئوس اين همه خطا ميده مربوط به سرعته كه نوشته اطلاعات از دست ميره يا بخاطر lcd هست ؟
برای پروتئوس و بسکام اول برنامه از این استفاده کنید
کد:
$Sim
درود بر دوستان و تشكر از صالح جان و رضاجان
كل مدار را با كليه امكانات مونتاژ كردم ( پست دوم ) و سعي در تكميل برنامه نوشته شده براي آنها دارم
براي برقراري ارتباط بين مستر و اسليو ، هنگامي كه مستر براي اولين بار به خط زير ميرسه متوقف ميشه يعني رو lcd اعداد متوقف ميشن و به خط بعدي نمي رود
کد:
reset ss1
y=spimove(x) ميكرو مستر در اين خط متوقف ميشه
set ss1
يعني وقتي خط وسطي را پاك ميكنم ss1 بين 0و1 چرخش ميكنه و ادامه برنامه ...
رجيسترهاي interrupt = , DATA ORDER , POLARITY را هم تك به تك و در مستر و در اسليو تغيير داده ام اما نشد!!
از sim$ هم استفاده كردم اما با توجه به
کد:
: $SIM >دستور
هنگامی که اين دستور را در برنامه به کار ببريد ، کليه دستورات تاخير غير فعال ميشوند ، اين دستور هنگامی که از شبيه ساز داخلی
بسکام استفاده ميکنيد کار برد دارد ، هنگامی که ميخواهيد برنامه را روی ميکرو بريزيد يا ان را با پروتوس شبيه سازی کنيد اين
دستور را پاک کنيد.
روي برد موجب شد كه ميكرو از كار بيفته و lcd دو خط ممتد مشكي را نشان دهد
هر ترفندي كه به نظرم ميومد اجرا كردم
مدار در برد را هم چك كردم و حتي پايه هاي spi را هم جدا كردم و ...
به نظرتان گير برنامه چيه ؟
(۲۹-تير-۱۳۹۰, ۱۴:۱۸:۴۰)rdscience نوشته است: [ -> ]درود بر دوستان و تشكر از صالح جان و رضاجان
كل مدار را با كليه امكانات مونتاژ كردم ( پست دوم ) و سعي در تكميل برنامه نوشته شده براي آنها دارم
براي برقراري ارتباط بين مستر و اسليو ، هنگامي كه مستر براي اولين بار به خط زير ميرسه متوقف ميشه يعني رو lcd اعداد متوقف ميشن و به خط بعدي نمي

روی مدار؟ یا روی پروتئوس؟

شما ی بار هم با spi نرم افزاری امتحان کنید.
کلا بیسیک اینه دیگه!
spi را نرم افزاري پيكره بندي كردم درست شد !! Clap
فعلا برنامه را تو مدار تست ميكنم چون تايمر تو پروتئوس خطا داره
كسي تابحال اين اتفاق در پست قبليم براش افتاده ؟ آيا راه حلي هم براش پيدا كرده ؟ چون تمام ميكروها را سخت افزاري پيكره بندي كردم مايلم در مستر هم اين روال پيش بره
ببخشيد دوباره اين سوال را مي پرسم ، چون هنوز برام مبهمه:
منظور از تعداد بايتي كه بعد از متغير در spi مي آيد چيست ؟ مثلا اگه يه متغير سينگل بخواهيم بفرستيم چطوري تعداد بايت را بدست بياريم و بنويسيم ؟
سلام و درود
مشکل این هست که b.4 هم در پینهای lcd بکار رفته و هم در spi
صفحه‌ها: 1 2