কিভাবে: BOS PIRATE V1, উন্নত ইউনিভার্সাল সিরিয়াল ইন্টারফেস

আমরা একটি নতুন চিপ ইন্টারফেস বা একটি পিসিবি তৈরি না করে একটি নতুন চিপ ইন্টারফেস করতে বাস পাইরেট ব্যবহার করি। আপনার প্রতিক্রিয়ার উপর ভিত্তি করে, এবং মূল বাস পাইরেট ব্যবহার করে আমাদের অভিজ্ঞতা বিভিন্ন অংশগুলি প্রদর্শন করার জন্য, আমরা নতুন বৈশিষ্ট্য এবং আরো সাশ্রয়ী মূল্যের উপাদানগুলির সাথে নকশাটি আপডেট করেছি।

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

আমরা নকশা আপডেট এবং ইন্টারফেসটি নীচের এনালগ রূপান্তরকারী একটি ডিজিটাল কভার।

ধারণা ওভারভিউ

বাস পাইরেটটি কোড ফ্যাগমেন্টগুলির একটি সংগ্রহ হিসাবে শুরু করে আমরা সীমাহীন কম্পাইল-প্রোগ্রাম-রান ডেভেলপমেন্ট চক্র ছাড়া নতুন চিপ পরীক্ষা করতে ব্যবহৃত। আমরা আমাদের অংশে সিরিয়াল ইন্টারফেস ICs এর একটি গুচ্ছ প্রদর্শন করার জন্য এটি কীভাবে প্রকাশ করেছি তা প্রকাশ করেছি। এই পোস্টটি নতুন বৈশিষ্ট্য এবং উন্নতিগুলির একটি গুচ্ছের সাথে একটি আপডেট হওয়া নকশাটি উপস্থাপন করে।

সারফেস মাউন্ট ডিজাইন

বহিরাগত ভোল্টেজ উৎস সঙ্গে সব বাস লাইন উপর পুল আপ প্রতিরোধক

সফ্টওয়্যার resettable 3.3volt এবং 5VOLT শক্তি সরবরাহ

সমস্ত শক্তি সরবরাহ ভোল্টেজ পর্যবেক্ষণ

একটি বহিরাগত ভোল্টেজ পরিমাপ প্রোব

সস্তা অংশ

হার্ডওয়্যার

একটি পূর্ণ আকারের পরিকল্পিত চিত্রের জন্য ক্লিক করুন (PNG)। CadSoft Eagle এর বিনামূল্যের সংস্করণ ব্যবহার করে সার্কিট এবং পিসিবি তৈরি করা হয়। এই প্রকল্পের জন্য সমস্ত ফাইল নিবন্ধটির শেষে লিঙ্কযুক্ত প্রকল্প সংরক্ষণাগার অন্তর্ভুক্ত করা হয়।

মাইক্রোকন্ট্রোলার

আমরা এই প্রকল্পে একটি মাইক্রোচিপ pic24fj64ga002 28pin সোনি মাইক্রোকন্ট্রোলার (আইসি 1) ব্যবহার করেছি। পাওয়ার পিনের 0.1 ইউএফ বাইপাস ক্যাপাসিটারস (C1,2) আছে। 2.5 ভোল্ট অভ্যন্তরীণ নিয়ন্ত্রক একটি 10uf Tantalum ক্যাপাসিটরের প্রয়োজন (C20)। চিপ একটি পাঁচ পিন হেডার (ICSP) মাধ্যমে প্রোগ্রাম করা হয়। একটি 2K পুল-আপ প্রতিরোধক (R1) PIN এ MCLR ফাংশনটির জন্য 1. আমাদের PIC24F ভূমিকাটিতে এই চিপ সম্পর্কে আরও অনেক কিছু পড়ুন।

আরএস -232 ট্রান্সসিভার

একটি অর্থনৈতিক MAX3232CSE RS232 ট্রান্সসিভার (আইসি 2) একটি পিসি সিরিয়াল পোর্টে ছবিটি ইন্টারফেস করে। এই চিপটি বাস পাইরেটের পূর্ববর্তী সংস্করণে ব্যবহৃত ব্যয়বহুল মাধ্যমে-গর্ত MAX3223EEPP + প্রতিস্থাপন করে। সিরিয়াল ইন্টারফেস একটি USB-> সিরিয়াল অ্যাডাপ্টারের সাথে কাজ করবে।

বাস পুল আপ প্রতিরোধক

আসল বাস পাইরেটটিতে 3.3 টি টোল্ট পুল-আপ প্রতিরোধক রয়েছে 2 পিনের, কিন্তু আমাদের অনেকগুলি পরীক্ষার অতিরিক্ত বহিরাগত প্রতিরোধক প্রয়োজন। আপডেট করা ডিজাইনটি তিনটি প্রধান বাস সংকেতগুলিতে (ডেটা আউট, ঘড়ি) এবং চিপ নির্বাচন (সিএস) পিনের উপর আপডেট করা হয়েছে।

Jumpers (SV5) একটি সারি প্রতিটি প্রতিরোধককে VEXT টার্মিনাল (X4) এর মাধ্যমে সরবরাহিত একটি বহিরাগত ভোল্টেজের সাথে সংযুক্ত করে। পিসিবিকে ঘরে যাওয়ার জন্য পিসিবিকে অনেক সহজ করতে জুমপার-তারেরের মতো ব্যবহার করা হয়।

আমরা একটি 3.3 ভোল্ট মাইক্রোকন্ট্রোলার থেকে একটি ইচ্ছাকৃত ভোল্টেজ পুল-আপ প্রতিরোধক বিভিন্নতা নিয়ন্ত্রণ করার জন্য একটি অত্যাধুনিক উপায় খুঁজে পাচ্ছি না। যদি আপনার কোন ধারনা থাকে তবে দয়া করে মন্তব্যগুলিতে ভাগ করুন।

বিদ্যুৎ সরবরাহ

VR1 মাইক্রোকন্ট্রোলার এবং RS232 ট্রান্সসিভারের জন্য 3.3VOLT সরবরাহ। VR2 একটি 5VOLT সরবরাহ। উভয় দুই 0.1uf বাইপাস Capacitors (C3-C6) প্রয়োজন। J1 একটি সাধারণ 2.1 মিমি ডিসি ব্যারেল প্লাগ জন্য একটি পাওয়ার সাপ্লাই জ্যাক। 7-10VOLTS ডিসি সম্ভবত সর্বোত্তম শক্তি সরবরাহ পরিসীমা।

আসল বাস পাইরেটের দ্বৈত বিদ্যুৎ সরবরাহ, 3.3 ভল্টস এবং 5 ভল্টস ছিল, তাই অনেকগুলি আইসিএস অতিরিক্ত বিদ্যুৎ সরবরাহ ছাড়াই হস্তক্ষেপ করা যেতে পারে। একটি প্রধান উদ্বেগ ছিল সংযুক্ত চিপস জন্য একটি পাওয়ার রিসেট অভাব ছিল। যদি একটি ভুল কনফিগার করা আইসি বিদ্যুৎ-সাইক্লড হওয়ার প্রয়োজন হয় তবে আমাদের একটি তারের সংযোগ বিচ্ছিন্ন করতে হয়েছিল। আমরা এই রুটিন থেকে এতটা পরিধান করেছি যে আমরা আপডেটকৃত ডিজাইনে একটি সফ্টওয়্যার নিয়ন্ত্রিত রিসেট যোগ করেছি।

VR3 (3.3 VOLTS) এবং VR4 (5VOLTS) একটি সক্রিয় সুইচ সহ TI TPS796XX ভোল্টেজ নিয়ন্ত্রকদের হয়। পিন 1 একটি উচ্চ স্তরের নিয়ন্ত্রক সক্ষম করে। একটি পুল-ডাউন প্রতিরোধক (R13, R12) নিশ্চিত করে যে কোনটি সক্রিয়ভাবে লাইনটি চালানো না হয়, যেমনটি পাওয়ার-আপ প্রারম্ভিক সময়ের মতো লাইনটি চালানো হয় না। ডেটশীট ইনপুট (C23, C21) এবং আউটপুট (C24, C22, C22) PINS উপর একটি বড় ক্যাপাসিটর উল্লেখ করে, আমরা একই 10uf tantalum ব্যবহার করি আমরা সর্বত্র ব্যবহার করি। একটি অতিরিক্ত, ঐচ্ছিক, 0.1uf ক্যাপাসিটার (C12, C11) প্রবিধান উন্নত করতে পারেন।

সুইচযোগ্য নিয়ন্ত্রকদের VR2, 5 ভোল্ট সরবরাহ দ্বারা চালিত হয়। আমরা এটি করেছি কারণ VR3 এবং VR4 এর সর্বোচ্চ ইনপুট 6 ভল্টস, ডিভাইসটিকে একটি সংকীর্ণ 5.2-6 ভোল্ট পাওয়ার সাপ্লাই পরিসীমা দিয়ে যাচ্ছি। VR2 10VOLTS উপরে ভাল কাজ করবে, এবং অন্যান্য নিয়ন্ত্রকদের জন্য উপযুক্ত সরবরাহ সরবরাহ করবে।

VR3 (3.3 ভল্টস) 5 ভল্ট সরবরাহ থেকে কাজ করার জন্য হেডরুমে প্রচুর আছে। VR4 (5 ভল্টস) প্রায় 0.2 ভল্ট হারাবে, কিন্তু 4.8 ভল্টগুলি 5 ভোল্ট চিপসের জন্য গ্রহণযোগ্য পরিসরের মধ্যে ভাল থাকে। অনুশীলনে, এবং হালকা লোডের অধীনে, আমরা VR4 থেকে 0.1 কোটি ড্রপ-আউটের চেয়ে কম দেখি।

ভোল্টেজ মনিটরিং

ভোল্টেজ মনিটরিং একটি নতুন বৈশিষ্ট্য যা আমরা সত্যিই আনন্দিত। আপনার প্রকল্পটি কি কখনও একটি দুর্ঘটনাজনিত শর্ট সার্কিটের কারণে প্রতিক্রিয়া বন্ধ করে দিয়েছে? বাস পাইরেটের পাওয়ার সাপ্লাই ভোল্টেজ পর্যবেক্ষণের সাথে সজ্জিত রয়েছে যা পাওয়ার পর্যায়ে একটি পরিবর্তন আবিষ্কার করতে পারে।

প্রতিটি নজরদারি সংকেত একটি প্রতিরোধক ভোল্টেজ ডিভাইডার মাধ্যমে ডিজিটাল কনভার্টার (এডিসি) একটি এনালগের সাথে সংযুক্ত করা হয়। দুই 10K resistors (R10,R11 above) divide the input voltage in half, making it possible to measure up to 6.6volts with the 3.3volt photo microcontroller.

The Bus Pirate has four voltage monitors. The 3.3volt and 5volt power supplies are monitored, as is the external voltage fed to the pull-up resistors. A fourth monitor is connected to pin 9 of the output header to make a voltage probe.

PCB

Click for a full size placement diagram (PNG). The board is a supposedly single-sided design, we etched ours in the lab on a single-sided photo-resist PCB. At the top, near C13, two jumper wires meet at a single via; we soldered one jumper wire to the other on the back of the board.

অংশ তালিকা

অংশ
Value

IC1
PIC24FJ64GA002 (SOIC)

IC2
MAX3232CSE (SOIC-N)

VR1
LD1117S33 3.3volt regulator (SOT223)

VR2
LD1117s50 5volt regulator (SOT223)

VR3
TPS79633 3.3volt regulator (SOT223-6)

VR4
TPS79650 5volt regulator (SOT223-6)

C1-13
0.1uF capacitor (0805)

C20-24
10uF tantalum capacitor (SMC A)

R1
2000 ohm resistor (0805)

R2,3
390 ohm resistor (0805)

R4-13
10000 ohm resistor (0805)

R20-23
2.2K–10K ohm resistor (through-hole)

LED1,2
LED (0805)

J1
2.1mm power jack

X2,X4
screw clamp (2 terminals) *untested

X3
db9 female serial port connector *untested

ICSP
0.1″ pin header, straight

SV4
0.1″ pin header or shrouded header

SV5
0.1″ pin header, straight

Firmware

The firmware is written in C using the complimentary demonstration version of the photo C30 compiler. learn all about working with this photo in our introduction to the photo 24F series.

The most current firmware is posted on the Hack a Day Bus Pirate page. the current source is in our Google Code SVN repository.

এটি ব্যবহার করছি

The diagram above shows the Bus Pirate pinout.

We made a cord with alligator clips on the end, and added labels to each wire so we don’t have to refer to this table whenever we interface a new chip.

If you know of any amazing connectors or cables, please link to them in the comments.

LTC2640 SPI digital to analog voltage converter

The Linear technology LTC2640-LZ8 is an 8bit digital to analog converter (DAC) programmed over SPI. A DAC is essentially a programmable voltage divider. They’re beneficial for recreating waveforms, such as audio signals. An 8bit DAC has 255 even intervals between 0 and the reference voltage, the L part we used has an internal 2.5volt reference.

The LTC2640 only comes in a small SOT223-8 package, so we made a breadboard adapter in the profile of a DIP-8 chip.  Our LTC2640 footprint is included in the project archive attached at the end of this article.

The schematic above shows our test circuit for the LTC2640. It requires a 2.7-5volt power supply, we used the Bus Pirate’s 3.3volt supply. C1 is a bypass capacitor between the power pin and ground. Pin 8 is an active-low reset pin, tie it high for normal operation. Pin 7 is the DAC output, connect the Bus Pirate voltage measurement probe (ADC) here.

বাস পাইরেট
LTC2640 (pin #)

মোশির
SDI (3)

ঘড়ি
SCK (2)

সিএস
CS/LD (1)

ADC.
VOUT (7)

+ 3.3 ভোল্টস
CLR (8 )

+ 3.3 ভোল্টস
VDD (5)

GND.
GND (4)

We connected the Bus Pirate to the LTC2640 as shown in the table. The LTC2640 doesn’t have a data output pin, this SPI connection remains unused.

The Bus Pirate’s hardware SPI library and software RAW3WIRE library are compatible with the LTC2640’s SPI interface. We used the SPI library; if you use the RAW3WIRE library be sure to choose normal pin output.

HiZ>m<–select mode 1. হিজ 2. 1-WIRE 3. UART 4. I2C 5. স্পি 6. JTAG 7. RAW2WIRE 8. RAW3WIRE 9. PC AT KEYBOARD MODE>5<–SPI or RAW3WIRE 900 mode SET Set speed: 1. 30KHz 2. 125KHz 3. 250KHz 4. 1MHz SPEED>1 <–test at low speed ... 102 SPI READY SPI >.

Press M for the Bus Pirate mode menu, choose 5 for SPI mode. There are a bunch of configuration options for the SPI module, use the default options for all of them. After SPI mode is ready we need to configure the power supply.

SPI>p<–power supply setup W/w toggles 3.3volt supply? 1. NO 2. YES MODE>2<–use 3.3volt supply W/w toggles 5volt supply? 1. NO 2. YES MODE>1<–don’t use 5volt supply 9xx supply CONFIGURED, use W/w TO TOGGLE 9xx VOLTAGE MONITOR: 5V: 0.0 | 3.3V: 0.0 | VPULLUP: 0.0 | SPI >.

p opens the Bus Pirate power supply menu. We use the 3.3volt supply but not the 5volt supply. The voltage monitor verifies that the power supplies are off.

SPI>W<–capital W (silly CSS) enables power supply 9xx 3.3VOLT supply ON SPI>v<–voltage monitor 9xx VOLTAGE MONITOR: 5V: 0.0 | 3.3V: 3.3 | VPULLUP: 0.0 | SPI >.

Capital ‘W’ enables any power supplies selected in the previous menu, a small ‘w’ disables them. V displays the supply voltage monitor, which now shows 3.3volts output from the 3.3volt supply.

Now that configuration is finished, we can send commands to the LTC2640 over the SPI bus. The LTC2640 has a 24bit (3byte) interface protocol. The first byte is a command, followed by two data bytes. The LTC2640 is available in 8,10, and 12bit versions; the 8bit version uses the first byte to set the DAC valuই, এবং দ্বিতীয় বাইট উপেক্ষা করে।

SPI> [0B00110000 255 0] <- DAC সেট করুন 110 স্পি সিএস সক্রিয় 120 টি স্পি লিখুন: 0x30 <-write DAC কমান্ড 120 টি স্পি লিখুন: 0xff <-dac মান 120 টি স্পি লিখুন: 0x00 <--কেয়ার নেই 140 সিএস নিষ্ক্রিয় SPI >.

প্রতিটি স্পি কমান্ডটি চিপ নির্বাচন পিন সক্ষম করে শুরু হয় ([)। প্রথম বাইট ড্যাক (0 বি00110000) আপডেট করার কমান্ড, এর পরে আউটপুট (255) এবং একটি তৃতীয় বাইট যা উপেক্ষা করা হয়েছে (0)। কমান্ডটি চিপ নির্বাচন (]) নিষ্ক্রিয় করে শেষ হয়।

আমরা 255 টি ভোল্টেজ ধাপ দিয়ে একটি 8bit DAC ব্যবহার করেছি, আউটপুট সেট 255 100%। আমরা আউটপুট পরিমাপ করার জন্য বাস পাইরেট ভোল্টেজ প্রোব ব্যবহার করতে পারেন।

SPI> D <--মেসার ভোল্টেজ 9xx ভোল্টেজ প্রোব: 2.5VOLTS <-DAC আউটপুট SPI >.

ডি একটি ভোল্টেজ পরিমাপ ট্রিগার। DAC আউটপুট ভোল্টেজটি অভ্যন্তরীণ রেফারেন্সের 100% (255/255), 2.5 ভল্টস।

SPI> [0B00110000 0 0] D
110 স্পি সিএস সক্রিয়
120 টি স্পি লিখুন: 0x30 <-write DAC কমান্ড 120 টি স্পি লিখুন: 0x00 <-dac মান 120 টি স্পি লিখুন: 0x00 <--কেয়ার নেই 140 সিএস নিষ্ক্রিয় 9xx ভোল্টেজ প্রোব: 0.0 ভোল্টস <-DAC আউটপুট SPI >.

0 আউটপুট 0% (0/255) এর একটি ড্যাক মান সহ একই কমান্ড; 0VOLTS।

SPI> [0B00110000 128 0] ডি
110 স্পি সিএস সক্রিয়
120 টি স্পি লিখুন: 0x30 <-write DAC কমান্ড 120 স্পি লিখুন: 0x80 <-dac মান 120 টি স্পি লিখুন: 0x00 <--কেয়ার নেই 140 সিএস নিষ্ক্রিয় 9xx ভোল্টেজ প্রোব: 1.2VOLTS <-DAC আউটপুট SPI >.

128 এর একটি ড্যাক মান রেফারেন্স ভোল্টেজের প্রায় 50% (128/255), 1.2 ভোল্টস।

এসপিআই> [0 বি01000000 0] ডি
110 স্পি সিএস সক্রিয়
120 টিপিআই লিখুন: 0x40 <-Power নিচে কমান্ড 120 টি স্পি লিখুন: 0x00 <--কেয়ার নেই 120 টি স্পি লিখুন: 0x00 <--কেয়ার নেই 140 সিএস নিষ্ক্রিয় 9xx ভোল্টেজ প্রোব: 0.0 ভোল্টস <-dac বন্ধ SPI >.

LTC2640 একটি কম পাওয়ার মোড আছে, কমান্ড 0b01000000 এবং দুই বাইট যা উপেক্ষা করা হয়। পাওয়ার ডাউন কমান্ডের পরে আমরা DAC থেকে আউটপুট আছে যাচাই করতে পারেন। কম শক্তি মোড থেকে প্রস্থান করার জন্য কোন ড্যাক মান লিখুন।

এটা আরও গ্রহণ

বাস পাইরেটের জন্য পরবর্তী পদক্ষেপ কি? আমরা অবশেষে ডিজাইনের একটি চূড়ান্ত আপডেট তৈরি করব যা একটি পেশাগতভাবে তৈরি, ডবল পার্শ্বযুক্ত পিসিবি-তে USB অন্তর্ভুক্ত করে। পাওয়ার সাপ্লাই সূচক নির্দেশক LEDs এই সংস্করণের জন্য slated ছিল, কিন্তু অন্তর্ভুক্ত করা হয়নি। এটি একটি পিসি ছাড়াই ডিবাগিংয়ের জন্য কীবোর্ড সংযোগকারী এ থাকতে সহায়ক হবে। check out the roadmap and wishlists on the Hack a Day Bus Pirate page.

Download: buspirate.v1a.zip

Posted in Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *

Cape Town, South Africa