۰۹-آبان-۱۳۹۳, ۱۰:۴۲:۰۵
پس وقتی فقط یه اسلیو با مستر در ارتباط هست مشکلی در ارسال و دریافت نیست ، اما وقتی چندتا اسلیو و یک مستر باشن ، حتی اگر فقط یکی از اسلیوها اطلاعات رو بفرسته ، بعضی وقت ها به مستر نمی رسه درسته؟
پیشنهاد دیگه ای که دارم ، کلا بافرهایی که روی یه باس کار می کنن ( برای گذاشتن و برداشتن اطلاعات روی باس ) بایستی 3 حالته باشن و در زمان بیکاری ، باید High Impedance باشن ( پایه ی مربوطه به صورت ورودی و با مقدار 0 مقدار دهی بشه ) و در هر زمان یک بافر مجاز هست که High Impedance نباشه و مقدار 0 و 1 داشته باشه و اطلاعاتش رو بفرسته و بعد از اون مجدد High Impedance بشه.
حالا برای پروتکل USART نمی دونم در حالت بیکاری ، پایه ها چیکارهه هستن (در دیتاشیت میکرو می شه چک کرد)، اما اگر High Impedance نباشن احتمال وقوع چنین مشکلی پیش می یاد که می تونید در برنامه ای که نوشتید قبل از ارسال دیتا USART رو کانفیگ کنید و بعد از اتمام ارسال high Impedance اش کنید ( حداقل فقط پایه ی TX اسلیو ها رو ) یا می تونید با USART نرم افزاری این کار رو انجام بدید ، شاید بهتر باشه.
مورد دیگه ممکنه باس مشترکی که ایجاد کردید در اتصالاتش به باس به صورت سخت افزاری دچار مشکل باشه.
این موارد هم در نظر بگیرید.
موفق باشید.
پیشنهاد دیگه ای که دارم ، کلا بافرهایی که روی یه باس کار می کنن ( برای گذاشتن و برداشتن اطلاعات روی باس ) بایستی 3 حالته باشن و در زمان بیکاری ، باید High Impedance باشن ( پایه ی مربوطه به صورت ورودی و با مقدار 0 مقدار دهی بشه ) و در هر زمان یک بافر مجاز هست که High Impedance نباشه و مقدار 0 و 1 داشته باشه و اطلاعاتش رو بفرسته و بعد از اون مجدد High Impedance بشه.
حالا برای پروتکل USART نمی دونم در حالت بیکاری ، پایه ها چیکارهه هستن (در دیتاشیت میکرو می شه چک کرد)، اما اگر High Impedance نباشن احتمال وقوع چنین مشکلی پیش می یاد که می تونید در برنامه ای که نوشتید قبل از ارسال دیتا USART رو کانفیگ کنید و بعد از اتمام ارسال high Impedance اش کنید ( حداقل فقط پایه ی TX اسلیو ها رو ) یا می تونید با USART نرم افزاری این کار رو انجام بدید ، شاید بهتر باشه.
مورد دیگه ممکنه باس مشترکی که ایجاد کردید در اتصالاتش به باس به صورت سخت افزاری دچار مشکل باشه.
این موارد هم در نظر بگیرید.
موفق باشید.