Unit UPasRipherals

Funções e Procedimentos
Constantes
Variáveis

Descrição

Esta é a unit principal do PasRipherals. Ela contém todas as classes e records necessários para o funcionamento padrão da biblioteca

Uses

  • Classes
  • SysUtils

Visão Geral

Classes, Interfaces, Objetos e Registros

Nome Descrição
Classe EPasRipherals  
Record TClock Este record representa um dos clocks acessados a partir da classe TPasRipherals (Enabled Use esta propriedade para ativar ou desativar o clock atual
Classe TCustomPasRipherals Esta é a classe básica do PasRipherals.
Record TGPIO Este record representa um GPIO acessado a partir da classe TPasRipherals
Record TI2C Este record representa um dispositivo escravo conectado ao barramento I2C acessado a partir da classe TPasRipherals
Classe TPasRipherals Esta é a classe principal do PasRipherals.
Record TPWM Este record representa um canal PWM acessado a partir da classe TPasRipherals (MarkSpaceEnabled Habilita ou desabilita o modo Mark/Space no canal PWM atual.
Record TSavedState Este record é usado pela propriedade TCustomPasRipherals.State e representa os estados de todos os registradores do RPI.

Tipos

TClockDivF = 0..4095;
TClockDivI = 2..4095;
TClockId = (...);
TClockMash = (...);
TClockSource = (...);
TGPIOLevel = (...);
TGPIOMode = (...);
TGPIOModeBank = 0..5;
TGPIONumber = 0..53;
TGPIONumberExposed = 0..27;
TGPIOPhysicalPinNumber = 1..40;
TGPIOPullRegister = (...);
TI2CController = (...);
TI2CSlaveAddress = 0..127;
TI2CTransferResult = (...);
TI2CTransferType = (...);
TPRGPIOLevelBank = 0..1;
TPWMChannel = 0..1;
TPWMPolarity = (...);

Descrição

Tipos

TClockDivF = 0..4095;

Este tipo define o subconjunto de valores possíveis para a parte fracionária do divisor de clock

TClockDivI = 2..4095;

Este tipo define o subconjunto de valores possíveis para a parte inteira do divisor de clock

TClockId = (...);

Esta enumeração representa os possíveis clocks que o RPI possui

Values
  • ciGP0: Use este valor para referir-se ao clock geral 0 (GPCLK0)
  • ciGP1: Use este valor para referir-se ao clock geral 1 (GPCLK1). Segundo alguns sites na Internet, este clock não deve ser usado, pois aparentemente ele é o clock da Ethernet
  • ciGP2: Use este valor para referir-se ao clock geral 2 (GPCLK2)
  • ciPCM: Use este valor para referir-se ao clock de PCM
  • ciPWM: Use este valor para referir-se ao clock de PWM
TClockMash = (...);

Este tipo enumerado define os tipos de "mash" de clocks disponíveis A página 105 do DataSheet fala um pouco a respeito do MASH, mas de forma bem superficial.

Values
  • cmInteger: Este valor indica que está sendo usado um divisor inteiro
  • cm1Stage: Este valor indica que está sendo usado um divisor fracionário de 1 estágio
  • cm2Stage: Este valor indica que está sendo usado um divisor fracionário de 2 estágios
  • cm3Stage: Este valor indica que está sendo usado um divisor fracionário de 3 estágios
TClockSource = (...);

Esta enumeração representa todas as possíveis fontes de geração de pulsos de clock disponíveis no RPI. Nenhuma destas fontes possui referências precisas no DataSheet oficial acerca de suas frequencias nominais, muito menos informações sobre seus usos. Toda informação aqui disponibilizada foi conseguida na Internet e infelizmente não tenho meios de garantir a precisão delas

Values
  • csGND: Não existe gerador de pulso de clock para este valor
  • csOscillator: Refere-se ao oscilador interno como gerador de pulsos de clock. A frequência fornecida por esta fonte é de 19.2MHz sempre, independente da existência de um overclock
  • csTestDebug0: Refere-se a uma fonte de geração de clock nula (0 Hz)
  • csTestDebug1: Refere-se a uma fonte de geração de clock nula (0 Hz)
  • csPLLA: Refere-se a uma fonte de geração de clock nula (0 Hz)
  • csPLLC: Refere-se a uma fonte de geração de clock capaz de fornecer 1000 MHz. Este valor varia caso algum overclock esteja em uso, portanto, caso precise usar esta fonte em um RPI com overclock, considere realizar uma medição com um osciloscópio ou multímetro a fim de saber a frequência correta
  • csPLLD: Refere-se a uma fonte de geração de clock capaz de fornecer 500 MHz. Ao contrário da fonte PLLC, esta fonte não se altera quando o RPI possui um overclock
  • csHDMIAuxiliary: Refere-se a uma fonte de geração de clock capaz de fornecer 216 MHz. Esta pode não ser uma fonte confiável de frequência estática. Use-a apenas se souber como ela funciona
  • csGND8: Não existe gerador de pulso de clock para este valor
  • csGND9: Não existe gerador de pulso de clock para este valor
  • csGND10: Não existe gerador de pulso de clock para este valor
  • csGND11: Não existe gerador de pulso de clock para este valor
  • csGND12: Não existe gerador de pulso de clock para este valor
  • csGND13: Não existe gerador de pulso de clock para este valor
  • csGND14: Não existe gerador de pulso de clock para este valor
  • csGND15: Não existe gerador de pulso de clock para este valor
TGPIOLevel = (...);

Esta enumeração representa os dois possíveis níveis lógicos que cada GPIO pode assumir ou detectar

Values
  • glLow: Representa o nível lógico 0, e convenientemente tem valor ordinal igual a 0 dentro da enumeração
  • glHigh: Representa o nível lógico 1, e convenientemente tem valor ordinal igual a 1 dentro da enumeração
TGPIOMode = (...);

Esta enumeração lista todos os possíveis modos dos GPIOs. Cada GPIO pode ter até seis funções alternativas além de entrada e saída. As funções alternativas Alt0 a Alt5 dependem de cada GPIO e a tabela nas páginas 102 e 103 do datasheet mostram cada uma delas.

Values
  • gmInput: Um GPIO está neste modo para poder aceitar entrada de dados (níveis lógicos)
  • gmOutput: Um GPIO está neste modo para prover saída de deados (níveis lógicos)
  • gmAlt5: Habilita o modo alternativo 5 para o GPIO em questão
  • gmAlt4: Habilita o modo alternativo 4 para o GPIO em questão
  • gmAlt0: Habilita o modo alternativo 0 para o GPIO em questão
  • gmAlt1: Habilita o modo alternativo 1 para o GPIO em questão
  • gmAlt2: Habilita o modo alternativo 2 para o GPIO em questão
  • gmAlt3: Habilita o modo alternativo 3 para o GPIO em questão
TGPIOModeBank = 0..5;

Este tipo define um subconjunto numérico fixo de 0 a 5, o qual é usado nas funções que manipuluam os registradores GPFSEL. Existem seis registradores GPFSEL, numerados de 0 a 5, dentre os conjuntos de registradores de GPIO.

See also
TGPIOMode
Esta enumeração lista todos os possíveis modos dos GPIOs.
TGPIONumber = 0..53;

Este tipo define um subconjunto de números que variam de 0 a 53 e que serve para representar cada um dos 54 GPIOs disponíveis no Raspberry PI 3 (segundo o datasheet do BCM2837).

TGPIONumberExposed = 0..27;

Este tipo define um subconjunto de números que variam de 0 a 27 e que serve para representar os 28 primeiros GPIOs que possuem um pino físico associado. Este tipo pode ser usado em loops ou funções quando se quer limitar o acesso a apenas os pinos que são manipuláveis externamente

TGPIOPhysicalPinNumber = 1..40;

Este tipo representa os 40 pinos físicos do RPI. O Raspberry PI 3 expõe 40 pinos físicos e destes, apenas 28 estão efetivamente associados a algum GPIO. Os outros 12 pinos físicos contém GND e saídas de 5v e 3.3v.

See also
TGPIONumberExposed
Este tipo define um subconjunto de números que variam de 0 a 27 e que serve para representar os 28 primeiros GPIOs que possuem um pino físico associado.
TGPIOPullRegister = (...);

Esta enumeração representa os possíveis estados dos "resistores pull" associados a cada GPIO. Cada GPIO possui um "resitor pull" que serve para garantir um nível lógico inicial consistente quando o modo de operação de um GPIO é gmInput, ou seja, quando um GPIO está configurado para entrada de dados.

See also
TGPIOLevel
Esta enumeração representa os dois possíveis níveis lógicos que cada GPIO pode assumir ou detectar
Values
  • gprOff
  • gprDown: Habilita o resistor "Pull Down", o qual força um nível lógico zero (glLow) inicial. Usando esta configuração é garantido que o valor lido do GPIO seja zero (glLow), até que, por algum agente externo, ele se torne 1 (glHigh). Se você deseja detectar uma mudança de estado lógico de glLow para glHigh em um GPIO, o resistor pull deste GPIO precisa estar configurado como gprDown. O agente externo pode ser, por exemplo, um botão que, quando pressionado, conecta 3.3v ao GPIO, o qual, antes do pressionamento tinha nível lógico 0 e após o pressionamento tem nível lógico 1
  • gprUp: Habilita o resistor "Pull Up", o qual força um nível lógico 1 (glHigh) inicial. Usando esta configuração é garantido que o valor lido do GPIO seja 1 (glHigh), até que, por algum agente externo, ele se torne 0 (glLow). Se você deseja detectar uma mudança de estado lógico de glHigh para glLow em um GPIO, o resistor pull deste GPIO precisa estar configurado como gprUp. O agente externo pode ser, por exemplo, um botão que, quando pressionado, conecta GND ao GPIO, o qual, antes do pressionamento tinha nível lógico 1 e após o pressionamento tem nível lógico 0
TI2CController = (...);

Existem 3 controladores BSC principais: BSC0, BSC1 e BSC2. O BSC2 é usado exclusivamente pelo HDMI e não deve ser usado em programas, por isso apenas os controladores 0 e 1 são acessíveis. O BSC1 encontra-se nos GPIO 2 (SDA1) e 3 (SCL1), ambos no modo Alt0, padrão destes GPIO. Já o BSC0 encontra-se nos GPIO 0 (SDA0) e 1 (SCL0), ambos no modo Alt0, mas ao contrário do BSC1 o modo destes GPIO não são Alt0 por padrão.

Algumas implementações acessam o I2C por meio de um file descriptor e execuções da função "ioctl". A título de informação, o dispositivo "/dev/i2c-1" correspomde ao BSC1. Esta enumeração lista apenas os controladores que são efetivamente acessáveis, atualmente o BSC0 e o BSC1

Values
  • icBSC0: Indica que estamos acessando o controlador 0
  • icBSC1: Indica que estamos acessando o controlador 1, também conhecido em outras bibliotecas como "/dev/i2c-1"
TI2CSlaveAddress = 0..127;

O valor máximo de um endereço de dispositivo I2C é 127, pois o registrador A define que apenas os 7 primeiros bits (ADDR) são usados para definir este endereço. Este subtipo limita os valores pessíveis

TI2CTransferResult = (...);

Esta enumeração representa os possíves retornos das funções TI2C.Read e TI2C.Write

Values
  • itrSuccess: A transferência de dados foi bem sucedida
  • itrNak: O dispositivo escravo enviou um NAK (Negative Acknoledgement)
  • itrTimeOut: O dispositivo escravo demorou muito para responder, mantendo, segundo o DataSheet p. 31, o sinal SCL alto por tempo demais
  • itrInsufficientData: A quantidade de dados transferidos foi inferior ao valor definido no parâmetro ABufferSize
TI2CTransferType = (...);

Esta enumeração representa o valor do campo READ do registrador C

Values
  • ittWrite: A transferência está configurada para escrever no dispositivo I2C
  • ittRead: A transferência está configurada para ler a partir do dispositivo I2C
TPRGPIOLevelBank = 0..1;

Este tipo define um subconjunto numérico que representa um dos dois registradores de níveis lógicos dos GPIO (GPLEV0 e GPLEV1). Este tipo pode ser usado para explicitar que o número que for utilizado (0 ou 1) representa um dos registradores de níveis lógicos

TPWMChannel = 0..1;

Este tipo define um subconjunto numérico para representar um dos dois canais PWM existentes no RPI

TPWMPolarity = (...);

Esta enumeração define os dois possíveis valores para a polaridade de cada canal PWM (Campos POLA1 e POLA2 do registrador CTL. DataSheet p. 141-143)

Values
  • ppNormal: Polaridade normal (padrão)
  • ppInverted: Polaridade invertida

Gerado por PasDoc 0.15.0.