এমপি 430 এ এসপিআই মনে হচ্ছে


9

আমি একটি বাস পাইরেট থেকে বুদ্ধিমান বিটগুলি পাওয়ার জন্য চেষ্টা করছি একটি লঞ্চপ্যাড বোর্ডের দিকে ঝুঁকে পড়ে ...)। আমার কাছে সিএস হুক আপ নেই, যেহেতু আমি কেবল পাইরেট ব্যবহার করছি কিছু নিরীক্ষণের জন্য।

বাস পাইরেট এসপিআই, 125KHz, ক্লক পোলারিটি আইডল লো, আউটপুট ক্লক এজটি অ্যাক্টিভেট, ইনপুট স্যাম্পল ফেজ মিডিল, / সিএস, আউটপুট স্বাভাবিক রয়েছে output

লঞ্চপ্যাডে, আমার কাছে একটি এমএসপি ৪৩০ জি ২২২১ রয়েছে যাতে কোনও বাহ্যিক স্ফটিক নেই। কোড সুরকার স্টুডিও ব্যবহার করে, আমার কাছে নিম্নলিখিতগুলি রয়েছে:

#include  "msp430g2231.h"
volatile unsigned char value=0;

#pragma vector=USI_VECTOR
__interrupt void universal_serial_interface(void)
{
    value+=1;
    USISRL=value;
    USICNT=8;
}
void main(void){
    WDTCTL = WDTPW + WDTHOLD;

    BCSCTL1 = CALBC1_1MHZ;                    // Set range
    DCOCTL = CALDCO_1MHZ;
    BCSCTL2 &= ~(DIVS_3);

    USICTL0 |= USIPE7 +  USIPE6 + USIPE5 + USIMST + USIOE;
    USICTL1 |= USIIE;
    USICKCTL = USIDIV_3 + USISSEL_2;
    USICTL0 &= ~USISWRST;
    USISRL=value;
    USICNT = 8;

    __bis_SR_register(LPM0_bits+ GIE);  
}

এর বেশিরভাগটি বিভিন্ন নমুনা থেকে একসাথে আবদ্ধ। ডেটা শীটটি অনেক পড়ার পরে, দেখে মনে হচ্ছে যে ইউএসআই ঘড়িটি 125KHz (1MHz এর এসএমসিএলকে, 8 দ্বারা বিভক্ত) এ চালানো হবে, যদিও আমার এটি পরিমাপ করার সুযোগ নেই।

দৌড়ানোর সময়, বাস পাইরেট থেকে মূলত আবর্জনা যা আছে তা পেয়েছি। পি ইউএসআই বিঘ্নিত ভেক্টরের প্রথম লাইনে একটি ব্রেকপয়েন্ট রেখেছিল, এবং এটিটি তিনবার পেরিয়েছিল, তাই বাসের জলদস্যু থেকে আমার 0, 1, 2 পাওয়া উচিত ছিল

0x00(0x00)0x00(0x00)][0x40(0x00)]

এবং এটিকে বিনামূল্যে চালাতে দেওয়া, আমি কেবল এই জাতীয় জিনিস পাই:

[0xFF(0x00)][0x3F(0x00)][0x7F(0x00)][0xBF(0x00)][0xC0(0x00)0x00(0x00)][0x40(0x00)0x80(0x00)]

যা এখনও আমি প্রত্যাশা করছি তার মতো কিছুই দেখায় না।

আমি সন্ধ্যার বেশিরভাগ সময় চিপের জন্য ব্যবহারকারীদের গাইডের মধ্য দিয়ে কাটিয়েছি এবং আমি এখনও স্টাম্পড আছি।

এটি লেখার সময়, আমি আবিষ্কার করেছি যে আমি বাস পাইরেটকে একটি লজিক বিশ্লেষক (লজিকস্নিফার ব্যবহার করে) হিসাবে ব্যবহার করতে পারি এবং এটি করার জন্য এটি সেট আপ করতে পারি। আর প্রোগ্রাম 0x55 লিখতে পরিবর্তিত USISRL, এবং পরিবর্তন USIDIVকরার জন্য USIDIV_4একটি বিট আরো মন্দীভূত জিনিস, এবং এখানে ফলাফল আছে: এখানে চিত্র বর্ণনা লিখুন

ঘড়ির সংকেতটি দেখতে দুর্দান্ত লাগছে, লজিকস্পাইফার জানিয়েছে যে এটি প্রায় 285KHz ... এবং মোশি ... বিশেষ। আমি একটি সুন্দর বিকল্প প্যাটার্ন আশা করব, যেহেতু আমি 0x55 লিখছি, এবং এটি কিছু নয়।

আমি ভুল করছি বলে কারও কি কোন চিন্তা আছে? ত্রুটিযুক্ত চিপ? অন্যকিছু?

সম্পাদনা: ঠিক আছে, আমার পক্ষ থেকে অল্প পরিমাণে বুদ্ধিমান। ইন্টারপেটে এসপিআইতে লেখা মানটি আমি পরিবর্তন করি নি। প্রত্যাশিত প্যাটার্নে এই ফলাফলগুলি করা:

এখানে চিত্র বর্ণনা লিখুন

যাইহোক, বর্ধিত বাইট লেখার চেষ্টা করতে ফিরে যাওয়া আমার আবর্জনা পেয়ে যায়: এখানে চিত্র বর্ণনা লিখুন

সুতরাং, আমার এখনও একটি সমস্যা রয়েছে, আমি যতটা ভেবেছিলাম তার চেয়ে বড় নয় ...

সম্পাদনা 2: নীচের মন্তব্যের জন্য ধন্যবাদ, আমি বাস পাইরেট কেবলটি বন্ধ করে দিয়েছিলাম, যা পূর্বে সংযুক্ত ছিল না, আমার বিদ্যুৎ সরবরাহ বন্ধ করে দিয়েছিল (স্পার্কফুনের ব্রেডবোর্ড বিদ্যুৎ সরবরাহ)। পূর্বে, তারা ভাগ করে নেওয়া নিকটতম স্থলটি ইউএসবি হাবটিতে ছিল আমি এই সমস্ত সরঞ্জাম বন্ধ করে দিচ্ছি।

এটি কাউন্টার প্রোগ্রাম চলাকালীন এমওএসআই-তে থাকা বিচলনাকে সরিয়ে ফেলেছে এবং লজিকস্নিফার এখন নিজেরাই বাইটগুলি সঠিকভাবে ডিকোড করতে পারে: এখানে চিত্র বর্ণনা লিখুন

মনিটরের মোডে থাকা বাস জলদস্যু এখনও বিজোড় ফলাফলের প্রতিবেদন করে:

[0x00(0x00)][0x04(0x00)][0x06(0x00)][0x10(0x00)][0x10(0x00)][0x10(0x00)][0x12(0x00)][0x18(0x00)]

এটি লেখার প্রান্তটি সনাক্ত করতে আরও ভাল সক্ষম বলে মনে হচ্ছে (আমি বোধন করছি বর্গাকার বন্ধনীগুলি এটিই সীমাবদ্ধ করে তোলে) তবে ডেটা ডিকোডগুলি এখনও বন্ধ রয়েছে। তরঙ্গরূপটি আরও ভাল দেখাচ্ছে বলে আমি এখন তেমন উদ্বিগ্ন নই, তবে বাস পাইরেট কেন বিভ্রান্ত হচ্ছে তা জানতে পেরে ভাল লাগবে।


3
এই শেষ চিত্রটি দেখে মনে হচ্ছে এটিতে এমওএসআই লাইনটিতে গ্লিট রয়েছে, ক্লক থেকে ক্রসস্টালক হতে পারে। আপনি একটি অসিলোস্কোপ না? আপনার ওয়্যারিংয়ের মতো কী - আপনার কি বাসপ্রেট এবং এমএসপি 430 এর মধ্যে ভাল শক্ত শর্ট গ্রাউন্ড রয়েছে?
মার্টিন থম্পসন

2
আমি @ মার্টিনথম্পসনের সাথে একমত এমওএসআই লাইনটি গ্লাইচিং করছে এবং বাস পাইরেট বিভ্রান্ত হচ্ছে। আপনি যদি দ্বিতীয় ছবিটিতে কিছুটা স্ক্রিন্ট করেন এবং বাস পাইরেট যা দেখে মনে করে তা উপেক্ষা করে (আমি সবেমাত্র উইন্ডোজ ক্যালকুলেটরে যে বাইনারিটি দেখি তা টাইপ করে হেক্সে রূপান্তরিত হয়েছি) আপনি নিজের পছন্দমতো বাড়িয়ে 6B-6C-6D পাবেন। আপনাকে বাস পাইরেট এবং এমএসপির মধ্যে তারের পরিষ্কার করতে হবে।
embedded.kyle

while(1);এটিকে বেরিয়ে আসা এবং এলোমেলো জিনিস করা বন্ধ করতে আমি প্রধান () এর শেষে একটি বা সমমান দেখতে পাচ্ছি না ।
অলি গ্লেজার

2
@ অলিগ্লেজার, যদি আমি শীটটি ডানদিকে পড়ছি, এলপিএম 0-এ প্রবেশ করা আসলে কোনও বাধা না আসা পর্যন্ত সিপিইউ কার্যকর করা বন্ধ করে দেয়। বেশিরভাগ, টিআই-এর সমস্ত নমুনা যদি এটি ব্যবহার না করে। এগুলি বোঝা যায়, যেহেতু তারা এমএসপি ৪৩০গুলি কম পাওয়ার অংশ হিসাবে টাউট করে এবং একটি ব্যস্ত লুপ খুব পাওয়ার বান্ধব নয়।
ম্যাট সিকার

1
ওহ আমার, আমি কেবল এটি> 1 বছরের পুরানো লক্ষ্য করেছি।
আপালোপোহাপা

উত্তর:


3

এমএসপি ৪৩০ একটি সিপাহা নামকরণ কনভেনশনকে উল্টে এমন একটি এমসিইউ উদাহরণ, এটি স্ট্যান্ডার্ড এসপিআই বিবরণ থেকে সরিয়ে: টিআই এমএসপি ৪৩০ সিপিএল এর পরিবর্তে ইউসিসিপিএল নামটি ব্যবহার করে এবং এর ইউসিসিপিএইচটি সিপিএইচএর বিপরীত । দুটি চিপ একসাথে সংযুক্ত করার সময়, সঠিক সেটিংস ব্যবহারের বিষয়ে নিশ্চিত হওয়ার জন্য সাবধানতার সাথে ক্লক পর্বের সূচনা মানগুলি পরীক্ষা করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.