ايران ويج

نسخه‌ی کامل: برد آموزش گیتهای منطقی وچند نکته در طراحی برد
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام و عرض ادب خدمت اعضای انجمن

خواستم بعد چند سال نوری عضویت توی اینجا یه تاپیک ارسال کرده باشم و از رکود بیرون بیام^_^ و ...
چند وقت پیش یه برد آموزشی ساده و اولیه واسه گیتهای منطقی طراحی کردم که بیشتر واسه افراد مبتدی کاربرد داره گفتم اینجا بزارمش شاید بدرد کسی دیگه بخوره
و در کنارش چون توی بعضی از طراحی ها یه سری مورد دیدم (البته از آدمای مبتدی مثل خودم)چندتا نکته ساده توی طراحی مدار وفیبر هم به تاپیک پیوست کردم (پست بعدی)
اشکالات توی برنامه نویسی و شماتیک رو هم به بزرگواری خودتون ببخشید و خوشحال میشم اگه اشکال یا نکته ای توش هست بهم بگید
این برنامه مدار که به زبان بیسیک هست:

کد:
$regfile "m8def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.5 , E = Portb.4 , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.0
Config Timer1 = Counter , Edge = Falling
Config Portd.3 = Output

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Dim A As Bit
Dim B As Bit
Dim C As Word
Dim N As Bit
Dim M As Bit

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Deflcdchar 1 , 32 , 32 , 14 , 21 , 31 , 21 , 14 , 32        ';KAREKTER ALAMAT XOR

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Cls
Lcd "^_^"
Cursor Off
Wait 1
Cls

Lcd "1NOT 2AND 3NAND"
Lowerline
Lcd "4OR5NOR 6XOR7XNR"

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Do
If Pind.0 = 0 Then
Counter1 = 0
Cls

Do

A = Pind.1
B = Pind.2
C = Counter1

If C = 8 Then
Counter1 = 0
End If

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Select Case C

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Case 1                                                      'NOT
Locate 1 , 1
Lcd "NOT "
Locate 1 , 9
Lcd "     "
Locate 2 , 1
Lcd "RABETE "
Locate 2 , 8
Lcd "F=A'    "
Locate 1 , 5
Lcd " A="
Locate 1 , 8
Lcd A
N = Not A
Locate 1 , 14
Lcd "F="
Locate 1 , 16
Lcd N
Portd.3 = N

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Case 2                                                      'AND
Locate 1 , 1
Lcd "AND "
Locate 2 , 1
Lcd "RABETE "
Locate 2 , 8
Lcd "F=(A.B) "
Locate 1 , 5
Lcd " A="
Locate 1 , 10
Lcd "B="
Locate 1 , 8
Lcd A
Locate 1 , 12
Lcd B
M = A And B
Locate 1 , 14
Lcd "F="
Locate 1 , 16
Lcd M
Portd.3 = M

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Case 3                                                      'NAND
Locate 1 , 1
Lcd "NAND"
Locate 2 , 1
Lcd "RABETE "
Locate 2 , 8
Lcd "F=(A.B)'"
Locate 1 , 5
Lcd " A="
Locate 1 , 10
Lcd "B="
Locate 1 , 8
Lcd A
Locate 1 , 12
Lcd B
M = A And B
N = Not M
Locate 1 , 14
Lcd "F="
Locate 1 , 16
Lcd N
Portd.3 = N

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Case 4                                                      'OR
Locate 1 , 1
Lcd "OR  "
Locate 2 , 1
Lcd "RABETE "
Locate 2 , 8
Lcd "F=(A+B) "
Locate 1 , 5
Lcd " A="
Locate 1 , 10
Lcd "B="
Locate 1 , 8
Lcd A
Locate 1 , 12
Lcd B
M = A Or B
Locate 1 , 14
Lcd "F="
Locate 1 , 16
Lcd M
Portd.3 = M

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Case 5                                                      'NOR
Locate 1 , 1
Lcd "NOR "
Locate 2 , 1
Lcd "RABETE "
Locate 2 , 8
Lcd "F=(A+B)'"
Locate 1 , 5
Lcd " A="
Locate 1 , 10
Lcd "B="
Locate 1 , 8
Lcd A
Locate 1 , 12
Lcd B
M = A Or B
N = Not M
Locate 1 , 14
Lcd "F="
Locate 1 , 16
Lcd N
Portd.3 = N

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Case 6                                                      'XOR
Locate 1 , 1
Lcd "XOR "
Locate 2 , 1
Lcd "RABETE "
Locate 1 , 5
Lcd " A="
Locate 2 , 8
Lcd "F=(A"
Locate 2 , 12
Lcd Chr(1)
Locate 2 , 13
Lcd "B) "
Locate 1 , 10
Lcd "B="
Locate 1 , 8
Lcd A
Locate 1 , 12
Lcd B
M = A Xor B
Locate 1 , 14
Lcd "F="
Locate 1 , 16
Lcd M
Portd.3 = M

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Case 7                                                      'XNOR
Locate 1 , 1
Lcd "XNOR"
Locate 2 , 1
Lcd "RABETE "
Locate 2 , 8
Lcd "F=(A"
Locate 2 , 12
Lcd Chr(1)
Locate 2 , 13
Lcd "B)'"
Locate 1 , 5
Lcd " A="
Locate 1 , 10
Lcd "B="
Locate 1 , 8
Lcd A
Locate 1 , 12
Lcd B
M = A Xor B
N = Not M
Locate 1 , 14
Lcd "F="
Locate 1 , 16
Lcd N
Portd.3 = N

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Case Else
Locate 1 , 1
Lcd "BARAI SHORO   OK"
Locate 2 , 1
Lcd "RA FESHAR DAHID "
End Select

'^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^

Loop
End If
Loop
End

این هم تصویری از شماتیک


[تصویر:  MEDAR.JPG]

توی پیوست سورسش رو کامل گذاشتم میتونید دانلود کنید» 

برنامه مدار:
خیلی ساده نوشته شده اصل برنامه با کانتر و دستور  Select Case نوشته شده وخلاصه برنامه اینه که تایمر 1رو توی مد کانتر گذاشتم و مقدار حد نوشتم براش و مقدار خود تایمر رو توی یه متغیر ریختم که به ازای هر مقدار یکی از اجزای برنامه اجرا بشه و یه گیت نمایش داده بشه
شماتیک مدار:
سوکت power2 واسه متصل کردن باتری به مدار،سوکت power select میتونه یه چیزی مثل جمپر یا کلید باشه واسه انتخاب تغذیه (ورودی5ولتی یا باتری) ...
فایل شبیه سازی و طراحی برد توی پیوست هست
واسه طراحی برد تو کتابخانه پروتئوس دکمه ها فوت پرینت نداشتن و  LCD هم فوت پرینتش 14 پایه و دیپ بود که موقتا وبا عجله تغییرشون دادم یخورده بهم ریختن شاید واسه تغییرات توی مدار با اشکال مواجه بشید اگه اشکال پیش اومد بگید تا کتابخونه رو هم بزارم
ورژن پروتئوس که باهاش طراحی کردم 8.1هست
توضیحی ایرادی ...ی هست بفرمایید^_^
چند نکته ابتدايي در طراحي PCB

در طراحي مدار طوري برد را طراحي کنيد که يکي از کانکتور هاي مدار؛ به پايه هاي مورد استفاده براي پروگرم چيپ متصل باشد
مثلا در چيپ هاي مدل AVR ؛اين پين ها روي PORTB هستند و ميتوانيد حين نوشتن برنامه ،چيدمان اتصال يکي از وسايل جانبي متصل به چيپ را روي اين پين ها تعريف کنيد
براي مثال با تعريف LCD روي اين PORT ،ميتوان هم خطوط کنترلي و ديتا و هم خط تغذيه را براي پروگرم داشت و چون در اکثر مدارات داراي LCD از 4بيت اول(4پين ديتا0تا3) استفاده نميشود ميتوان يکي از اين پين هم را نيز به پايه ريست ميکرو وصل کرد
مثلا براي ميکروکنترلر MEGA8 :

کد:
$regfile "m8def.dat"
.
.
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.5 , E = Portb.4 , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.0

اين روش براي چيپ هاي SMD کاربردي تر است
فايل هاي مربوط به اين موضوع از سه نوع چيپ پيوست کردم

در طراحي PCB ،جاي که در (تراک ها) سيم کشي مثلا خم 90 درجه بوجود مي آيد بهتر است زاويه چرخش تراک نرم تر باشد بعنوان مثال همان زاويه 90 درجه را ميتوان به دو زاويه 45 درجه تقسيم کرد يا بصورت يک کمان باشد



در غالب مدارات، پرکاربرد ترين خط ، خطوط تغذيه بخصوص خط زمين است که ميتوان در طراحي برد ، آنرا دورتا دور قطعات رسم کرد تا در نزديکي قطعات زمين موجود باشد و همچنين ميتواند نقش board edge را بازي کند و................

....ادامش و عکس ها توی pdf که پیوست کردم هست
خوشحال میشم اگه نظر یا اشکالی هست بیان کنید
4. بعد layout پی سی بی rotation تمامی قطعات و پین هدر ها رو دوباره چک کنید

5. برای رگولاتور های SMD با دوختن via ها، هیت سینک درست کنید(اگر ولتاژ زیادی روش میوفته)

6.via های زیر آیسی های smd رو با چاپ سبز بپوشونین(tent کنید)(دیدم که بعد لحیم زدن مدار مشکل داشته و بعد کلی دردسر و برداشتن آیسی، زیر بدنه آیسی via ها مشکل و اتصالی داشتن)

7. موقع طراحی شماتیک اگر تونستید به فکر ESD Protecion و... هم باشید(برای IO ها)
(https://www.vishay.com/diodes/protection-tvs-esd)

8. برای ولتاژ های بالا، cut out با cnc فراموش نشه، فاصله خطوط رعایت بشه، فیوز مناسب با محل مناسب در صورت انفجارش تعبیه شده باشه.

9. دور بر ولتاژ های بالا مخصوصا AC ، صفحه گراند نذارید

10. خازن خیلی بزرگ بعد رگولاتور نذارید در شماتیکتون(تا شارژ بشه پدر رگولاتور درمیاد و بقیه مدار درست کار نمیکنه)


11.هر بار که به شرکت سازنده pcb سفارش میدید، کناره های PCB تون via ها با سایز های متفاوت رو برای تست کردن بذارید، بورد که رسید دستتون ببینید کیفیت اتصال via ها در چه حدی هست تا تخمینی داشته باشید که کوچکتر via که قابل اطمینان هست با معیار خودتون چیه.(البته خود شرکت هم میتونید بپرسید)

12. ترجیحا شماتیک اتون رو نسبتا ماژولار طراحی کنید و یه استاندارد خاصی که مخصوص خودتون هست رو در تمامی طرح هاتون رعایت کنید تا بتونید در پروژه های جدید از شماتیک های قدیمی هم بدون دردسر استفاده کنید.

13. طراحی PCB خودش یه رشته هست. اگر جدی میخواین روش کار کنید، باید قید بقیه الکترونیک رو بزنید. اگر میخواین الکترونیک کار کنید، باید قید طراحی پیشرفته PCB (فرکانس بالاو...) رو بزنید، جفتش باهم با شرایط فعلی، شدنی نیست  خنده بلد − بهینه شده برای ورژن جدید