UTFPR Departamento de Eletrônica Departamento de Informática Sistemas Microcontrolados Interfaces padronizadas de comunicação serial Prof. Heitor Silvério Lopes 2017
Motivação: paralelo X serial Interfaces paralelas consomem muitos recursos: Barrramentos Maior número de pinos físicos Maior área de PCI Interfaces seriais Grande evolução tecnológica Altas velocidades de comunicação Padronização de protocolos de hw e sw As mais utilizadas: I2C, SPI, 1-wire
Barramento I 2 C I 2 C (Inter-Integrated Circuit) é um barramento de comunicação que foi desenvolvido pela Philips em 1980 Outros fabricantes de CIs que utilizam I2C: Xicor, ST Microelectronics, Infineon Technologies, NXD, Intel, Texas Instruments, Maxim, Atmel, Analog Devices Velocidades de operação: Low-speed mode: DC-10 kbps Standard: 100 kbps Fast mode: 400 kbps Fast mode plus: 1 Mbps High-speed mode: 3,4 Mbps O I 2 C utiliza apenas dois fios (saídas com coletor aberto)
Barramento I 2 C Pinos de comunicação: Serial Data (SDA) e Serial Clock (SCL) Ambos devem ter pull-up de 2K2 Há dois tipos de nós: Master e Slave
Topologias de conexão Master-Slave Multi-Master Multi-Slave
Protocolo de comunicação O master começa a comunicação enviando: Um start bit (transição descendente de SDA com SCL=1) O endereço de 7-bits do slave (MSbit primeiro) Um bit identificando escrita ou leitura O slave responde com um bit ACK (acknowledge). Para escrita: O master envia bytes de dados (escreve no slave) intercalados por bits ACK do slave Para leitura: O maste recebe bytes de dados (lê do slave) intercalando bits ACK do master, exceto após o último byte recebido. Para finalizar a comunicação o master pode enviar: Um stop bit (transição ascendente de SDA com SCL=1) Um novo start bit (para recomeçar outra transferência)
Temporização Leitura do slave: Escrita no slave:
Aplicações Conversor USB-I2C Alimentação pela USB Modo master somente (conectar ao PC) Baseado no uc FTDI FT232R Pinos: Gnd, Reset, SCL, SDA, Vcc Sensor ultrassônico SRF08 Alimentação 12 ma Frequência: 40 khz Alcance: 3cm-6m Pinos, Gnd, SCL, SDA, Vcc http://www.zagrosrobotics.com/shop/item.aspx?itemid=694
Aplicações Sensor de temperatura LM75A Faixa de medição: -55..125ºC Resolução de 11 bits Sensor digital de pressão BMP180 Faixa: 300...1100hPa (+9000m...-500m) Alimentação: 1,8...3,6V Consumo: 5mA Mede temperatura
EEPROM serial 24C01A,02,04,08,16
Timing Prof. Heitor S. Lopes, UTFPR 2017
Interface SPI Serial Peripheral Interface Bus ou SPI bus É um barramento padronizado de comunicação serial síncrona criado pela Motorola. Opera em full-duplex Os dispositivos funcionam como master/slave O master inicia a comunicação Múltiplos slaves são permitidos no barramento Os slaves são selecionados por um chip select individual O SPI utiliza 4 fios para conexão
Vantagens e Desvantagens Vantagens: Comunicação full-duplex Velocidade mais alta do que I2C, de 1 a 70 MHz Flexibilidade de protocolo para transferência de bits (qualquer tamanho de mensagens) Interfaceamento muito simples Não usa pull-ups e gasta menos corrente Os slaves utilizam o clock do master Não é necessário o uso de transceivers Usa muito menos pinos de interface do que barramentos paralelos sendo um único por dispositivo Desvantagens: Requer mais pinos (3-4) do que I2C O endereçamento não é feito pelo canal de comunicação e, sim via pino específico Não há controle de fluxo via hardware Os slaves não fazem acknowledge da mensagem Trabalha com distâncias muito pequenas (quando comparado com RS232/RS485)
Interface SPI SPI master SCLK MOSI MISO \SS SCLK MOSI MISO \SS SPI slave Especificação dos sinais lógicos: SCLK Serial Clock (gerado pelo master) MOSI/SIMO Master Output, Slave Input (gerado pelo master) MISO/SOMI Master Input, Slave Output (gerado pelo slave) SS Slave Select (ativo baixo, gerado pelo master) Também são utilizados os seguintes nomes para os sinais: SCK Serial Clock (gerado pelo master) SDI, DI, SI Serial Data In SDO, DO, SO Serial Data Out ncs, CS, nss, STE Chip Select, Slave Transmit Enable Observar que SDI/SDO (DI/DO, SI/SO) requer que o SDO do master seja conectado ao SDI do slave e vice-versa Alguns dispositivos usam um só pino para MOSI/MISO: SI/SO
Modos de funcionamento Paralelo: Um master Slaves independentes Barramento comum Seleção individual Daisy-chain: Um master Slaves conectados Barramento em cadeia Seleção coletiva
Transmissão de dados O master inicia a comunicação selecionando o slave A cada pulso de clock do master, um bit é enviado pelo MOSI e um bit é recebido pelo MISO. O MSbit sempre vai primeiro Qualquer quantidade de bits pode ser enviada/recebida Dois parâmetros definem as bordas do sinal de clock onde os dados serão amostrados: clock polarity (CPOL) and clock phase (CPHA), dando 4 possibilidades, correspondendo aos modos de funcionamento da SPI Os 4 modos são incompatíveis entre si!!
Temporização CPOL=0 CPHA=0, dados são lidos na borda de subida e mudam na borda de descida. CPHA=1, o inverso CPOL=1 CPHA=0, dados são lidos na borda de descida e mudam na borda de subida. CPHA=1, o inverso
Aplicações Microprocessadores: ARM, AVR, MSP430, C8051Fxxx (Silabs), etc... Interface JTAG Sensores de temperatura (DS1620, LM74) e de pressão Conversores A/D (AD7715), controlador de Display touchscreen (ADS7846 ), potenciômetros digitais (AD8402), Real-time clocks (DS1305) Dispositivos de comunicação padrão: Ethernet, USB, USART, CAN Memórias: flash de alta densidade (AT45D011), E2PROM (93C46) Cartões MMC (SDMB-32) e SD card Algumas FPGAs e EPLDs
Conversor A/D AD0832
Microwire Microwire é um predecessor do SPI Caiu em desuso mas ainda é utilizado em dispositivos da National Semiconductors Só funciona em half duplex Frequências de clock de 2 a 20 MHz Alguns dispositivos suportam modo 3-wire, mas a maioria é a 4 fios
1-wire Desenvolvido pela Dallas Semiconductor Provê alimentação, sinalização e transmissão de dados por um único fio (mais ground) Conceitualmente é semelhante a I2C Tem baixa velocidade e curto alcance Cada dispositivo 1-wire tem um código interno único de 64 bits. Muito útil para identificação e segurança, tais como os ibutton
Transmissão 1-wire
Aplicações DS18B20: termômetro digital de resolução programável (9-12bits) MAX31820: sensor de temperatura ambiente de -55 o C a 125 o C de 9-12 bits DS24L65: autenticador de chave simétrica bidirecional SHA-256 DS2433: 4Kbits EEPROM DS9481R-3C7: USB-1-Wire/iButton adapter: provê conectividade PC/Win com ibutton
Interface SPI no AT89C5131 SPDAT pinos MOSI MISO SCK SS SPCON registradores SPSTA
Registrador SPCON (0C3h) Serial Peripheral CONtrol SPCON SPR2 SPEN SSDIS MSTR CPOL CPHA SPR1 SPR0 SPEN: Serial Peripheral Enable (=1), habilitação SPI SSDIS: \SS disable MSTR: =0 modo slave, =1 modo master CPOL: polaridade do clock, =0 SCK=0 em idle CPHA: =0 dados amostrados quando SCK sai de idle
Geração de baud-rate para SCK Registrador SPCON SPCON SPR2 SPEN SSDIS MSTR CPOL CPHA SPR1 SPR0 SPR0, SPR1, SPR2: define a baud rate
Registrador SPSTA (0C4h) Serial Peripheral STAtus SPSTA SPIF WCOL SSERR MODF - - - - SPIF: =0 transferindo dados, =1 transferência completa WCOL: =0 sem colisão, =1 colisão detectada SSERR: =1 erro, =0 quando SPEN é resetado MODF: =1 erro no uso de \SS, =0 ok
Registrador SPDAT (0C5h) Serial Peripheral DATa register SPDAT R7 R6 R5 R4 R3 R2 R1 R0 Buffer de escrita e leitura: R7..R0 receive data bits OBS: Não confundir com os registradores R7..R0
Interupções no AT89C5131
Interrupções do SPI Registrador IEN1 (0B1h) IEN1 - EUSB - - - ESPI ETWI EKB EUSB: habilita interrupção da USB ESPI: habilita interrupção da SPI ETWI: habilita interrupção da TWI EKB: habilita interupção do KB OBS: Registrador IE = IEN0 e Registrador IP = IPL0
Interrupções do SPI Registradores IPL1 (0B2h) e IPH1 (0B3h) IPL1 IPH1 - PUSBL - - - PSPIL PTWIL PEKBL - PUSBH - - - PSPIH PTWIH PEKBH PUSB(L/H): prioridade baixa/alta da USB PSPI(L/H): prioridade baixa/alta da SPI PTWI(L/H): prioridade baixa/alta da TWI PKB(L/H): prioridade baixa/alta da KB
Interrupções do SPI Endereço da rotina de atendimento de interrupção do SPI: 004Bh Flag de interrupção: SPIIT