How-to: Bus Pirate v1, melhoria da interface serial universal

usamos o pirata de ônibus para interagir um novo chip sem escrever código ou criar um PCB. Com base no seu feedback, e nossa experiência usando o Ônibus original para demonstrar várias partes, atualizamos o design com novos recursos e componentes mais acessíveis.

Há também uma atualização de firmware para as versões de hardware do Bus Pirate, com correções de bugs e um PC no decodificador de teclado. Confira a nova página de pirata de ônibus de um dia e navegue no código-fonte do Pirate Bus no nosso repositório do Google Code SVN.

Nós cobrimos as atualizações de design e interface um conversor digital para analógico abaixo.

Visão geral do conceito.

O pirata de ônibus começou como uma coleção de fragmentos de código que usamos para testar novos chips sem ciclos de desenvolvimento de programas de compilação ilimitados. Nós lançamos em uma formação e usá-lo para demonstrar um monte de ICs de interface serial em nossos posts de peças. Este post introduz um design atualizado com novos recursos e um monte de melhorias.

Projeto de montagem de superfície

Resistores de pull-up em todas as linhas de ônibus com fonte de tensão externa

Software reajustável 3.3volt e 5Volt fontes de alimentação

Monitoramento de tensão de todas as fontes de alimentação

Uma sonda de medição de tensão externa

Partes mais baratas

Hardware.

Clique para uma imagem esquemática de tamanho completo (PNG). O circuito e o PCB são criados usando a versão freeware do CADSOFT Eagle. Todos os arquivos para este projeto estão incluídos no arquivo de projeto ligado no final do artigo.

Microcontrolador

Utilizamos um microcontrolador de microcontrolador SOIC do microchip pic24fj64ga002 28pin (IC1) neste projeto. Os pinos de energia têm 0,1UF de desvio de capacitores para o solo (C1,2). O regulador interno 2.5volt requer um capacitor de tântalo 10UUF (C20). O chip é programado através de um cabeçalho de cinco pinos (ICSP). Um resistor de pull-up 2K (R1) é necessário para a função MCLR no PIN 1. Leia muito mais sobre este chip em nossa introdução PIC24F.

Transceptor RS-232

Um transceptor RS232 econômico MAX3232CSE (IC2) interface a foto para uma porta serial do PC. Este chip substitui o max3223eepp + usado na versão anterior do pirata de ônibus. A interface serial funcionará com um adaptador serial USB->.

Resistores de pull-up de ônibus

O pirata de ônibus original tem resistores de pull-up 3.3volt em 2 pinos, mas muitos dos nossos testes exigiam resistores externos adicionais. O design atualizado possui resistores de pull-up (R20-23) nos três principais sinais de barramento (dados de dados, Dados, Relógio) e o PIN Select (CS) Chip.

Uma fileira de jumpers (SV5) conecta cada resistor a uma tensão externa fornecida através do terminal de vextro (x4). Resistores através do buraco são usados ​​como fios de jumper para tornar o PCB muito mais fácil de gravar em casa.

Não conseguimos encontrar uma maneira sofisticada de controlar uma variedade de resistor pull-up de tensão arbitrária de um microcontrolador de 3.3volt. Se você tiver alguma ideia, por favor, compartilhe-os nos comentários.

Fonte de energia

O VR1 é uma oferta de 3.3volt para o microcontrolador e transceptor RS232. VR2 é uma oferta de 5Volt. Ambos requerem dois capacitores de desvio de 0.1UF (C3-C6). J1 é uma tomada de fonte de alimentação para um plugue comum de 2,1mm DC DC. 7-10Volts DC é provavelmente o melhor alcance da fonte de alimentação.

O pirata de ônibus original tinha fontes de alimentação duplas, 3.3volts e 5volts, então muitos ics podiam ser interfetados sem uma fonte de alimentação adicional. Um grande incômodo foi a falta de uma redefinição de energia para chips conectados. Se um IC incorporado precisava ser ciclado de energia, tivemos que desconectar um fio. Ficamos tão desgastados dessa rotina que adicionamos uma redefinição de software controlada para o design atualizado.

VR3 (3.3volts) e VR4 (5volts) são reguladores de tensão TPS796xx com um comutador de habilitação. Um alto nível no PIN 1 permite o regulador. Um resistor pull-Down (R13, R12) garante que os reguladores estejam desligados quando a foto não está dirigindo ativamente a linha, como durante a inicialização de power-up. A folha de dados especifica um grande capacitor nos pinos de entrada (C23, C21) e saída (C24, C22), usamos o mesmo tântalo de 10UF que usamos em todos os lugares. Um capacitor adicional, opcional, 0,1UF (C12, C11) pode melhorar a regulação.

Os reguladores comutados são alimentados pelo VR2, uma oferta de 5volt. Fizemos isso porque a entrada máxima para o VR3 e o VR4 é de 6Volts, deixando o dispositivo com um estreito de fonte de alimentação de 5,2-6volt. O VR2 funcionará bem acima de 10Volts e fornece uma oferta apropriada para os outros reguladores.

VR3 (3.3volts) tem bastante headroom para operar de uma oferta de 5volt. O VR4 (5volts) perderá cerca de 0,2volts, mas o 4,8volts permanece bem dentro da faixa aceitável para muitos chips de 5Volt. Na prática, e sob cargas de luz, vemos menos de 0.1volts do VR4.

Monitoramento de tensão

Monitoramento de tensão é um novo recurso que estamos realmente em êxtase. Seu projeto parou de responder por um curto-circuito acidental? As fontes de alimentação do pirata de ônibus são equipadas com monitoramento de tensão que podem descobrir uma mudança nos níveis de energia.

Cada sinal monitorado é conectado a um conversor analógico para digital (ADC) através de um divisor de tensão de resistor. dois 1.0K 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.

Part list

Papel
Valor

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.

Usando isso

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.

Pirata de ônibus
LTC2640 (pin #)

Mosi.
SDI (3)

RELÓGIO
SCK (2)

Cs.
CS/LD (1)

Adc.
VOUT (7)

+3.3volts
CLR (8 )

+3.3volts
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. Hiz. 2. 1-WIRE 3. UART 4. I2C 5. SPI. 6. JTAG 7. RAW2WIRE 8. RAW3WIRE 9. PC no teclado MODE>5<–SPI or RAW3WIRE Conjunto de modo 900. 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 alterna a oferta 3.3volt? 1. No. 2. Sim MODE>2<–use 3.3volt supply W / w tocou 5Volt fornecimento? 1. No. 2. Sim MODE>1<–don’t use 5volt supply 9xx fornecimento configurado, use w / w para alternar Monitor de tensão 9xx: 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 Monitor de tensão 9xx: 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 value e ignora o segundo byte.

SPI> [0B00110000 255 0] <- Set Dac para 110 SPI CS habilitado 120 SPI escrever: 0x30 <-write dac comando 120 SPI escrever: 0xff <-dac valor 120 spi escrever: 0x00 <-don't cuidado 140 cs desativados SPI>

Cada comando SPI começa, permitindo o pino de seleção de chip ([). O primeiro byte é o comando para atualizar o DAC (0B00110000), seguido pelo valor para saída (255), e um terceiro byte que é ignorado (0). O comando termina desativando o Chip Select (]).

Usamos um DAC de 8 bits com 255 etapas de tensão até mesmo, a saída definida para 255 é de 100%. Podemos usar a sonda de tensão de pirata de ônibus para medir a saída.

SPI> D <-Tensão de Measure Sonda de tensão de 9xx: 2.5volts <-dac output SPI>

D aciona uma medição de tensão. A tensão de saída do DAC é 100% (255/255) da referência interna, 2.5volts.

Spi> [0b00110000 0 0] d
110 SPI CS habilitado
120 SPI escrever: 0x30 <-write dac comando 120 spi escrever: 0x00 <-dac valor 120 spi escrever: 0x00 <-don't cuidado 140 cs desativados Sonda de tensão de 9xx: 0.0volts <-dac output SPI>

O mesmo comando com um valor da DAC de 0 saídas 0% (0/255) de 2.5volts; 0volts.

SPI> [0B00110000 128 0] D
110 SPI CS habilitado
120 SPI escrever: 0x30 <-write dac comando 120 SPI escrever: 0x80 <-dac valor 120 spi escrever: 0x00 <-don't cuidado 140 cs desativados Sonda de tensão de 9xx: 1.2volts <-dac output SPI>

Um valor da DAC de 128 é de cerca de 50% (128/255) da tensão de referência, 1.2volts.

SPI> [0B01000000 0 0] D
110 SPI CS habilitado
120 SPI escrever: 0x40 <-Power Down Command 120 spi escrever: 0x00 <-don't cuidado 120 spi escrever: 0x00 <-don't cuidado 140 cs desativados Sonda de tensão de 9xx: 0.0volts <-dac off SPI>

O LTC2640 possui um modo de baixa potência, acionado pelo comando 0b01000000 e dois bytes que são ignorados. Após o comando de energia, podemos verificar se há saída do DAC. Escreva qualquer valor da DAC para sair do modo de baixa potência.

Levando mais longe

Qual é o próximo passo para o pirata de ônibus? Nós, eventualmente, fazer uma atualização final para o design que inclui USB em um PCB de dupla face feita profissionalmente. LEDs indicadores de alimentação foram programados para esta versão, mas não foram incluídos. Também seria útil ter um conector de teclado para depuração sem um PC. check out the roadmap and wishlists on the Hack a Day Bus Pirate page.

Download: buspirate.v1a.zip

Send your Comment

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