Em um post anterior, eu mostrei o HDD 2.5" 44 pinos, bem pois ainda vai ser que vou me basear, até porque notebook/netbook são os eletrônicos que mais vendem atualmente, e justo os que usam o HDD de 2.5", porem são mais de duas décadas que se usa o HDD de 3.5" 40 pinos.
Qual a diferença entre os dois?
Praticamente nenhuma, somente a tensão de trabalho, potencia, os pinos de força e o tamanho (desde dos componentes a carcaça).
Diferente do HDD de 3.5", o HDD é voltado para aparelhos portáteis, principalmente notebooks (no qual foram primeiramente desenvolvidos) , pois o consumo faz diferença em relação a bateria. Para isto o HDD 2.5" utiliza a tensão de 5V, tanto para a parte mecânica quanto digital, e a conexão para a força são mais dois pinos do lado esquerdo (41 e 42 mais exatamente, 43 é o Ground e 44 é o 0-ATA), gerando uma potencia relativamente menor se comparado ao HDD 3.5".
Eu aconselho mexer com HDD 2.5", pois eles trabalham com somente 5V, igual a praticamente todos os mcu do mercado, diferente do HDD 3.5" que você necessita de uma fonte de computador, sem falar o consumo que gira em torno de 550mA (ou 0,55A), facilitando ainda mais o uso com mcu.
Descrição dos Pinos
E ou I - Entrada ou Input
S ou O - Saída ou Output
E/S ou I/O - Entrada/Saída ou Input/Output
ENCSEL - E - Este sinal é usado para definir master/slave através do sinal CSEL (pino 28).
Pinos B e D Aberto: Definição de master/slave através do sinal CSEL é desativado.
Fechado: Definição de master/slave através do sinal CSEL é ativado.
MSTR - E - MSTR, I , definição Master/Slave
Pinos A,B,C e D Aberto: Master
Pinos A e B Fechado: Slave
PUS - E - Quando o pino C é aterrado, o dispositivo não roda ao ser ligado.
RESET - E - Sinal de reinicio do host. O sinal é ativo em LOW e acertado por um minimo de 25µs enquanto o dispositivo liga.
DATA 0 a 15 - E/S - Via de 16 bits bidirecionais de dados entre o host e o dispositivo. Estes sinais são usados para transferência de dados.
DIOW - E - Sinal acertado pelo host para escrever no registro do dispositivo ou porta de dados.
STOP - E - DIOW deve ser negado pelo host antes de iniciar a transferência Ultra DMA. O sinal STOP deve ser negado pelo host antes dos dados serem transferidos durante a transferência Ultra DMA. Durante esta transferência , o acertamento do sinal STOP é definido pelo host depois de indicar que a transferência foi suspensa.
DIOR - E - Sinal de Leitura do host para ler o registro do dispositivo ou porta de dados.
HDMARDY - E - Sinal de controle de fluxo para a entrada de dados Ultra DMA (Comando READ DMA). Este sinal é acertado pelo host para informar ao dispositivo que o host está preparado para receber os dados. O host pode negar o sinal HDMARDY para suspender a transferência.
HSTROBE - E - Sinal de saída de dados do host durante o recebimento de dados (Comando WRITE DMA). Ambos a subida ou descida da borda do sinal HSTROBE prende os dados das vias Data 15 - 0 no dispositivo. O host pode suspender a inversão do sinal para suspender o recebimento dos dados Ultra DMA.
INTRQ - S - Sinal de Interrupção ao host.
Este sinal é negado nos seguintes casos:
- acertação do sinal RESET
- Reinicio pelo SRST do registro de controle do dispositivo (via software)
- Escrita do registro de comando pelo host.
- Leitura do registro de estado (status) pelo host.
- Conclusão de transferência de dados do setor.(sem ler o registro de estado)
A linha de saída do sinal contem uma impedância alta quando não dispositivos selecionados ou interrupção fora disativada.
CS0 - E - Sinal da via de endereço dado pelo host. Este sinal é usado pelo host para selecionar o bloco de registros de comando.
CS1 - E - Sinal da via de endereço dado pelo host. Este sinal é usado pelo host para selecionar o bloco de registros de controle.
DA 0 -> 2 - E - Via de endereço usado pelo host para acessar os registros de tarefa de arquivo.
KEY - Pino de prevenção de inserção errônea.
PDIAG - E/S - Este sinal é uma entrada para o dispositivo no modo master e saída para o dispositivo no modo slave em uma cadeia de configuração. Este sinal indica que o dispositivo slave foi completada o auto-diagnóstico. Este sinal é colocado em +5V junto com um resistor de 10 Kohms para cada dispositivo.
CBLID - E/S - Este sinal é usado para detectar o tipo de cabo instalado no sistema. Este sinal é colocado a +5V junto com um resistor 10Kohms para cada dispositivo.
DASP - E/S - Este é um sinal tempo-multiplexado para indicar que o dispositivo está ativo e o slave está presente. Este sinal é colocado a +5V junto com um resistor de 10Kohms para cada dispositivo.
IORDY - S - Este sinal requere ao host para atrasar o ciclo de transferência quando o dispositivo não estiver pronto para responder a requisição de transferência de dados do host.
DDMARDY - S - Sinal de controle de fluxo para a saída de dados Ultra DMA (Comando WRITE DMA). Este sinal é acertado pelo dispositivo para informar ao host que o mesmo está pronto para receber o dados Ultra DMA. O dispositivo pode negar o sinal DDMARDY para suspender a transferência Ultra DMA.
DSTROBE - S - Sinal de entrada de dados do host durante a transferência Ultra DMA. Ambas a subida ou descida de borda deste sinal armazena dados recebidas nas vias de dados 15-0 no host. O dispositivo pode suspender a inversão do sinal DSTROBE para suspender a transferência Ultra DMA.
CSEL - E - Este sinal configura o dispositivo como master ou slave.
- Quando CSEL é aterrado, o IDD é um dispositivo Master.
- Quando CSEL é aberto, o IDD é um dispositivo Slave.
Este sinal é posto como um resistor de 240Kohms para cada dispositivo.
DMACK - E - O host acerta este sinal como uma resposta de que o host recebeu os dados ou indica que ele é invalido.
DMARQ - S - Este sinal é usado para a transferência DMA entre o host e o dispositivo. O dispositivo acerta o sinal quando o mesmo está preparado para a transferência DMA para o host (leitura) ou vinda do host (escrita).
A direção dos dados na transferência é controlada por DIOR e DIOW. Estes sinais manuseiam junto com o sinal DMACK. Em outras palavras, o dispositivo nega o sinal DMARQ apos o host acertar o sinal. Quanto temos outros dados para ser transferidos, o dispositivo acerta o sinal DMARQ.
Quando a transferência de dados DMA é completa, os sinais IOCS16, CS0 e CS1 não são acertados. A transferência de dados DMA é uma via de 16 bits.
+5VDC - E - Força de alimentação do dispositivo
GND - Terra ou Ground
Interface Lógica
Definições:
Platter ou Prato - Disco onde os dados serão escritos/lidos
Heads ou Cabeças - Dispositivo que grava/lê os dados no disco magnético. Geralmente, cada prato contem duas cabeças.
Sectors ou Setores - Setor é a menor unidade de dados que pode ser endereçado, sendo todos os dados armazenados em setores. Tipicamente, um setor contem 512 bytes de dados.
Track ou Trilha - As trilhas são um fio concêntrico de setores.
Cilindros ou Cylinders - Um cilindro compreende o mesmo que trilhas em cada prato. Por padrão, ele foi adotado de 16.065 setores (255 trilhas multiplicado por 63 setor por trilha).
O dispositivo pode operar em dois tipos de execução de comando: CHS (Cylinder-head-Sect) ou LBA (Logical Block Address).
No CHS, o a especificação desejada e dando os valores do cilindro, cabeça e setor. Exemplo: 0,0,1; 15000,1,63 e etc..
No modo LBA, o endereçamento é dado por um valor, por exemplo LBA 0 é igual a 0,0,1; LBA 63 é igual a 0,0,63; LBA 64 é igual a 0,1,1 e por ai vai.
Calculo:
LBA [(N. Cilindro * Total de Cabeças + N. Cabeça)*Total de Setor/Trilha]+ N. Setor -1
Registradores
Os registradores são acessados através dos sinais CS0,CS1,DA0,DA1 e DA2 pelo host. A tabela abaixo mostra os endereços e suas funções:
* Clique na imagem para ampliar
Bloco de Registro de Comandos
Data Register (0x1F0)
Este é um registro de 16bits para a transferência de dados entre o dispositivo e o host. Transferência de dados tanto PIO quanto DMA.
Error Register (0x1F1)
O registrador de erro indicar o estado dos comandos executados pelo dispositivo. O conteúdo deste registro é valido quando o bit ERR do registro de estado (Status Register) for 1.
Features Register (0x1F1)
O registro de propriedades provem uma propriedade específica para um comando. Por instancia, ele é usado como o comando SET FEATURES para ativar ou não o cache.
Sector Count Register (0x1F2)
O registrador de contagem de setor indica o número de setores de dados para ser transferidos na leitura/escrita entre o host e o dispositivo. Quando o valor for 0x00, a contagem é de 256. Quando o registrador indicar o valor 0x00 apos a conclusão do comando, indica que o comando foi executado com sucesso.
Sector Number Register (0x1F3)
O conteúdo deste registrador indica o inicio do numero do setor para o comando subsequente. O numero do setor pode ser entre 0x01 a até o numero definido de setores por trilha no comando INITIALIZE DEVICE PARAMETERS.
Cylinder Low Register (0x1F4)
O conteúdo deste registrador indica os 8-bits menos significativos do cilindro inicial.
Cylinder High Register (0x1F5)
O conteúdo deste registrador indica os 8-bits mais significativos do cilindro inicial.
Device/Head Register (0x1F6)
O conteúdo deste registrador indica o dispositivo e a cabeça.
Status Register (0x1F7)
O conteúdo deste registrador indica o estado do dispositivo.
Commando Register (0x1F7)
O conteúdo deste registrador contem um comando enviado ao dispositivo. Após o registro ser escrito, o comando é executado imediatamente.
Por si só , este pequeno tutorial é suficiente para começar a trabalhar em cima dos HDD's, agora bastando somente você começar a "furuscar" na internet.
Mais sobre HDD's:
Este aqui é o manual do HDD que usei, ele é em inglês.
Bem é isso flw!