CH340 ইউএসবি-সিরিয়াল ডিভাইসে সিরিয়াল নম্বর সেট করা হচ্ছে


9

Http://playground.arduino.cc/Linux/Udev পড়ার মাধ্যমে একটি এফটিডিডিআই ইউএসবি-সিরিয়াল ইপ্রোমকে একটি নির্দিষ্ট সিরিয়াল নাম্বার সেট করার জন্য লিখিতভাবে একটি উপায় বলে মনে হয়, যা আপনাকে বিশেষভাবে এটি পরিচালনা করতে একটি ন্যানো / অন্যান্য আরডুইনো সনাক্ত করতে দেয় ইউডিইভিতে

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

বর্তমানে ডিভাইসটি এর সাথে নিজেকে চিহ্নিত করে:

[ 6850.608080] usb 2-1.2: new full-speed USB device number 7 using ehci-pci
[ 6850.701496] usb 2-1.2: New USB device found, idVendor=1a86, idProduct=7523
[ 6850.701505] usb 2-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 6850.701510] usb 2-1.2: Product: USB2.0-Serial
[ 6850.702201] ch341 2-1.2:1.0: ch341-uart converter detected
[ 6850.704210] usb 2-1.2: ch341-uart converter now attached to ttyUSB0

যা মূলত অকেজো, কারণ আমি প্রদত্ত বোর্ডটিকে সংযুক্ত করতে পারি না (যখন আমি দুটি সংযুক্ত করি তখন তাদের বিশদ একই থাকে)।



1
দুর্ভাগ্যক্রমে, এটি সত্যই কোনওটির উত্তর নয়: প্রশ্নটি (যেমনটি এফটিডিআই চিপসের জন্য নতুন সিরিয়াল নম্বর নির্ধারণের উপায় আছে কিনা তা উত্তর দেয় না), বা সমস্যাটি সমাধান করুন (উদেব সিরিয়াল হিসাবে) এই সমস্ত বোর্ডের জন্য, লিওনার্দোর মতো 0, তাই
উদেব

আমার লিঙ্কটি আমার উত্তরে যা প্রতিটি ডিভাইসের জন্য ইউদেব বিধি তৈরি করার বিষয়ে কথা বলে।
ফিলিএনজে

1
আপনি যদি চীনা পড়তে পারেন (আমি পারছি না) এই পৃষ্ঠায় সহায়তা করতে পারে: wch.cn/products.php?page=procontent&id=40
ক্রেগ

3
দুর্ভাগ্যক্রমে @ ফিল ভ্যালোন ইস্যুটি হ'ল উদেবের মাধ্যমে ডিভাইস সনাক্ত করার জন্য কোনও অনন্য সিরিয়াল নেই। একটি অনন্য ডিভাইস সনাক্ত এবং সনাক্ত করতে আপনার এগুলি আলাদা করার জন্য আপনার কিছু অনন্য প্রয়োজন। এই ডিভাইসগুলির একই আইশ্যারিয়াল রয়েছে, সুতরাং আপনি সেগুলিতে সেগুলি পৃথক করতে পারবেন না এবং তারা একই পণ্য এবং বিক্রেতার আইডি ভাগ করে - তাই কোনও ডিফারিয়েটার নেই ... আপনার সহায়তার জন্য ধন্যবাদ, দুর্ভাগ্যক্রমে এটি এই সমস্যার সমাধান করে না un !
jvc26

উত্তর:


3

CH340 এবং ইউআআরটির পরিবারগুলিতে কোনও স্টোরেজ নেই যেখানে আপনি একটি অনন্য আইডি রাখতে পারেন। এটি PL2303 প্রকারের জন্যও সমস্যা। আমি এই সমস্যার সমাধান খুঁজতে চেষ্টা করেছি। প্রথম এবং সবচেয়ে সহজ ইউএসবি বাসে ডিভাইসের অবস্থান। এটি প্রতিটি ডিভাইসের জন্য অনন্য হবে। আপনি যদি লিনাক্স ব্যবহার করে থাকেন তবে প্রতিটি ডিভাইস / dev / সিরিয়াল / বাই-পাথের অধীনে পাবেন। একটি / ডিভ / সিরিয়াল / বাই-আইডি রয়েছে তবে এই ডিভাইসের জন্য সেখানে কেবলমাত্র একটি প্রবেশ থাকবে কারণ এটি সর্বশেষটি সংযুক্ত দেখায়। এফটিডিআই চিপগুলির প্রতিটি এখানে অনন্য প্রবেশ থাকবে। সস্তা চিপগুলি তা করবে না তবে তাদের প্রত্যেকের / dev / সিরিয়াল / বাই-পাথের নীচে প্রবেশ রয়েছে। এই অবস্থানটি এবং ডিভাইসের নামগুলি পুনরায় বুটগুলি জুড়ে থাকা উচিত। আপনার ইউএসবি ডিভাইসগুলিতে যদি প্রচুর পরিবর্তন হয় তবে সমস্ত CH340 ডিভাইসকে একই হাবটিতে প্লাগ করুন, তারপরে এটিকে প্লাগ করুন। ডিভাইসগুলি ক্রমে ক্রমান্বয়ে গণনা করা হবে যে সেগুলি হাবটিতে প্লাগ ইন করা হয়েছে। এই ওয়ান-হাব ট্রিকটি ম্যাকওএস এবং উইন্ডোজের জন্যও কাজ করা উচিত, সেগুলি একই ক্রমে উপস্থিত হওয়া উচিত।

কঠোর পদ্ধতি- udev নিয়ম। এফটিডিআই এর মতো কোনও অনন্য আইডি সহ ডিভাইসগুলির জন্য আপনি একটি ইউদেব বিধি সেট করতে পারেন যা এটির সিরিয়াল নম্বরটি দেখে এবং তারপরে সেই ডিভাইসে একটি সিমিলিংক তৈরি করে, এটি সোজা।

একই বা কোনও সিরিয়াল নম্বরযুক্ত ডিভাইসগুলির জন্য, এটি অনেক বেশি জটিল। আমি একটি ইউদেব নিয়ম তৈরি করেছি যা দেখতে এইরকম দেখাচ্ছে:

SUBSYSTEM == "tty", এটিটিআরএস {পণ্য} == "ইউএসবি ২.০-সিরিয়াল", রুন + = "/ ইউএসআর / স্থানীয় / বিন / সস্তারদুইন.পি% কে", এটিটিআরএস {আইডিভেন্ডার} == "1a86", এটিটিআরএস { আইডিপ্রডাক্ট} == "7523", ENV {ID_MM_DEVICE_IGNORE} = "1"

যখন ডিভাইসটি সস্তা আরডুইনোর পণ্য এবং বিক্রেতার সাথে মিলে যায়, এটি ডিভাইসটির সাথে 'সস্তারদুইন.পি' স্ক্রিপ্টটি আর্গুমেন্ট হিসাবে চালায়, উদাহরণস্বরূপ

সস্তাduino.py ttyUSB0

তারপরে সস্তাদুইনো স্ক্রিপ্টটি সিরিয়ালে ডিভাইসে সংযুক্ত হয়ে স্ট্রিং 'আইডি' প্রেরণ করে এবং ডিভাইসের সফ্টওয়্যারটি ডিভিডি = THX1138 বা যে কোনও কিছুতে সাড়া দেয়। স্ক্রিপ্টটি তখন একটি সিমিলিংক / dev / THX1138 তৈরি করে যা / dev / ttyUSB0 এ নির্দেশ করে

এই পদ্ধতিতে প্রচুর ত্রুটি রয়েছে। সস্তাদুইনের সফ্টওয়্যার উত্তর না দিলে স্ক্রিপ্টটি অবশ্যই শেষ হয়ে যাবে। এছাড়াও এটি উদেবের SYMLINK ফাংশন ব্যবহার করছে না তাই এটি সংযোগ বিচ্ছিন্ন করার কারণে মৃত লিঙ্কগুলি পরিষ্কার করবে না, তবে এটি পুনরায় সংযোগে তাদের ওভাররাইট করে দেবে। আপনার সমস্ত সস্তাডিনোগুলির অবশ্যই তাদের সফ্টওয়্যারটিতে বিভিন্ন ডিভাইস আইডি সেট সহ এই কার্যকারিতা থাকতে হবে। আপনি যদি খুব দীর্ঘ সময় ব্যয় করেন এমন কোনও জটিল স্ক্রিপ্ট না লিখতে চান তবে সেগুলি অবশ্যই স্ক্রিপ্টের মতো একই বাউড রেট ব্যবহার করতে হবে। শেষ অবধি, এই পদ্ধতিটি উচ্চ বাউড রেটের চেয়ে কম বাউড রেটে আরও বেশি ভাল কাজ করে, যা সময় মত কারণে প্রতিবার সফল হতে পারে না। (সস্তারডিনো সস্তা!) 9600 115200 এর থেকে অনেক বেশি ভাল কাজ করে যা বেশ কয়েকটি চেষ্টার পরে কাজ করে। তবে যেহেতু আপনার সমস্ত CH340 আরডুইনো অবশ্যই এই পদ্ধতির সাথে একই গতিযুক্ত হওয়া উচিত, আপনি কেবল আপনার দ্রুততম ডিভাইসের মতো ধীর গতিতে যেতে পারেন।

এই পদ্ধতিটি যদিও কাজ করে, এবং এটি আমি ব্যবহার করছি কারণ আমি এই সস্তা জিনিসগুলির অনেকগুলি কিনেছি।

শেষ পর্যন্ত, জেনুইন আরডুইনোস বা এফটিডিআই চিপস সহ কমপক্ষে একটি কিনুন বা অন্য কোনও ডিভাইস আইডি প্রেরণ করে।

= রিচ


2

আপনি যদি চান তবে 2 টি ডিভাইস যা মূলত অভিন্ন, তা আলাদা করে জানানো আপনার কাছে দুটি উপায় রয়েছে:

  • সর্বদা এগুলিকে একই পোর্টে প্লাগ করুন এবং তাদের আলাদা করতে ইউএসবি ট্রি ব্যবহার করুন
  • একটি হ্যান্ডশেক প্রোটোকল তৈরি করুন, যেখানে প্রতিটি আরডুইনো এমন একটি কোড ব্যবহার করে যা আপনি আগে তাদের নিজ নিজ EEPROM- এ সংরক্ষণ করেছেন। এমনকি ইউডিইভি-র জন্য কোনও সহায়ক ফাংশন রচনা করাও সম্ভব হতে পারে, যাতে সাহায্যকারী ফাংশনটি হ্যান্ডশেক করে এবং ইউডিইভি কে প্রতিটি EEPROM এ সঞ্চিত সিরিয়ালটি বলে tells এটি আপনার ডিভাইসগুলির জন্য একটি ইউডিইভি বিধি লিখতে দেয়।

2

CH340B (G নয়) এর একটি EEPROM রয়েছে যেখানে আপনি সিরিয়াল নম্বরটি সঞ্চয় করতে পারেন।

https://www.mpja.com/download/35227cpdata.pdf

এটি পড়ার / লেখার জন্য উইন্ডোজের একটি সরঞ্জাম রয়েছে:

http://www.downxia.com/downinfo/196126.html

জি সংস্করণটি কীভাবে আচরণ করে তা ইনস্টল করার চেষ্টা করবে ...


আপনি কি আমাকে বলতে পারেন যে সেই সরঞ্জামটি ডাউনলোড করতে সেই চাইনিজ স্টাফটিতে ক্লিক করতে হবে? আমি একটি আরএআর ফাইলের সাথে কিছু লিঙ্ক খুঁজে পেয়েছি তবে সেগুলির সময় শেষ হয়ে গেছে।
এলমিউ

1

আপনার বোর্ডে একটি ম্যাক্সিমাম ডিএস 18 এস 20 রাখুন, প্রত্যেকটির একটি স্বতন্ত্র সিরিয়াল নম্বর রয়েছে এবং এটি খুব সস্তা। এই ডিভাইসটি ব্যবহার করে ইন্টারনেটে প্রচুর সফ্টওয়্যার উদাহরণ রয়েছে। আপনি এটি ন্যানোর সাথে মৃত-বাগ করতে পারেন। এটি পরিচালনা করার জন্য একটি 4.7K রেজিস্টার +5 এবং একটি গ্রাউন্ড সংযোগের সাথে সংযুক্ত হওয়া দরকার। আপনি গ্রাউন্ডে ডিভাইসের 5V এবং গ্রাউন্ড সংযোগ উভয়ই সংযুক্ত করতে পারেন। এটি ন্যানোতে মৃত বাগটি সহজেই সহজ হবে তবে এক পিনের মাধ্যমে সাধারণ যোগাযোগের মাধ্যমে আপনি সিরিয়াল নম্বর পেতে পারেন। বিভিন্ন প্যাকেজ উপলব্ধ আছে। যত্ন সহ আপনি একটি ইনপুট পিন ব্যবহার করতে পারেন, সিরিয়ালটি পড়তে পারেন এবং ভবিষ্যতে ব্যবহারের জন্য এটি সংরক্ষণ করতে পারেন। এটি যখন ইনাইটস করে এটি এটি আবার করবে। কেবল নিশ্চিত হয়ে নিন যে প্রক্রিয়া চলাকালীন ইনপুটটি কম চালিত হয়নি।

শুভকামনা,

গিল


আপনি একবার ইউএসবি সিরিয়ালে সমস্যাটি সমাধান করছেন না, বরং এমন কোনও কিছু যা আবিষ্কার করার জন্য বোর্ডে প্রসেসরের সহযোগিতা প্রয়োজন, আপনি কেবলমাত্র সেখানে এবং অ্যাপ্লিকেশনটিতে পাঠযোগ্য একটি সিরিয়াল নম্বর রাখতে বুটলোডারটি সংশোধন করতে পারেন প্রোগ্রাম (অর্থাত্ "স্কেচ")
ক্রিস স্ট্রাটন

কি আজেবাজে কথা। ডিএস 18 এস 20 একটি ডিজিটাল থার্মোমিটার!
এলময়ে

হ্যাঁ এটি একটি থার্মোমিটার; হ্যাঁ এর একটি অনন্য সিরিয়াল নম্বর রয়েছে যা প্রতিটি বোর্ডে কোড বা ইপ্রোম পরিবর্তন করার প্রয়োজন হয় না। সস্তা এবং সহজ। মাইক্রোটি সাড়া দিতে হবে। এটি আইডিই বা কোনও ফার্মওয়্যার ইত্যাদির পরিবর্তনের সাথে কাজ করবে তবে এটির জন্য একটি পিন প্রয়োজন যা প্রয়োজনে যদি একটি mux সঙ্গে কাজ করা যায়।
গিল

1

আমি এটি বলতে ঘৃণা করি, তবে উত্তরটি হ'ল একাধিক 340 ভিত্তিক ইউএসবি-সিরিয়াল রূপান্তরকারীগুলি অনন্যভাবে চিহ্নিত করার উপায় নেই।

আমার একই সমস্যা রয়েছে, যেখানে আমার একাধিক (4+) ইউএসবি-সিরিয়াল রূপান্তরকারী রয়েছে, যে কোনও একটি যে কোনও বন্দরটিতে প্লাগ ইন করা যেতে পারে এবং সেগুলি একই সময়ে কেনা হয়েছিল এবং সেহেতু প্রতিটি উপায়ে অভিন্ন (0 এর আইরিশাল সহ)।

মূলত, আমি যদি জিনিসগুলি ঘুরে দেখি তবে কী সংযুক্ত রয়েছে তা দেখতে আমাকে হাত দিয়ে সংযোগ করতে হবে, ডেসমেজ আউটপুট ব্যবহার করতে হবে ইত্যাদি বড় ব্যথা।

টম

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