ايران ويج

نسخه‌ی کامل: اشکال در مد 2x در SPI
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با توجه به دیتا شیت وقتی بیت spi2x در ثبات spsr یک میشه باید فرکانس sck در حالت master و در هنگام ارتباط دوبرابر بشه . ولی من تو عمل نتونستم همچین کاری بکنم . کسایی که تجربه دارن لطفا کمک کنن. :roll:
بابا ایول هیچ کی به ما محل نمی ذاره :) :?:
خودت گفتی اونایی که تجربه دارن :wink:
من با spi کا رکردم اما نه مد دوبرابرش مشکل خاصی هم نداشت کار می کرد
لازم متن برنامه را قرار بدید. چون نباید مشکلی باشد.
البته نهایت پالس ساعت SPI در فرکانس 16Mhz تنها 8Mhz است.
فرکانس چقدر بود؟ در شبیه سازی جواب گرفتید؟
باید بگم که همه چیزهایی که دیدم تو پروتئوس بود.
این هم سورس
نقل قول: .include"m8def.inc"
.org 0
rjmp reset



reset:
ldi R16,low(ramend)
out spl,r16
ldi R16,high(ramend)
out sph,r16

ldi r16,0b00101101
out ddrb,r16

sbi portb,0

ldi r16,255
out ddrd,r16

ldi r16,0x50
out spcr,r16

ldi r16,1
out spsr,r16


ldi r17,23
again:
cbi portb,0
out spdr,r17
inc r17

cpi r17,150
brne wait2
clr r17
wait2:
sbis spsr,spif
rjmp wait2
sbi portb,0
rjmp again

همون طور که می بینید داره دائم از 0 تا 150 رو میفرسته
ولی تغییر ثبات spsr از 1 به صفر هیچ تغییری رو ایجاد نمی کنه. به نظرتون مشکل چیه
حق با شما بود
در شبیه ساز Proteus این یک مشکل است.
اگر مدار را ببندید مشکل حل می شود(با توجه به متن راهنمای AVR)
مشکل Proteus این نیست که فرکانس را دوبرابر کند مشکل این که بیت spi2x تغییر نمی کند. یعنی همیشه 0 است. این هم از Proteus .
:roll:
ممنون از لطفتون واقعا گیر کرده بودم . بعضی وقت ها پروتئوس هم آدم رو سر کار میذاره. Biggrin
صفحه‌ها: 1 2