# Conectar un pic a un disco duro



## ilpancho (Feb 12, 2006)

Saludos,  necesito ayuda  a la hora de conectar un procesador a un disco duro,   el proyecto se basa en la comunicacion de estos dos dispositivos.  A pedido del usuario el pic debe tener la capacidad de recolectar datos externos y los grabarlos en el disco duro, tambien debe poder hacer lo opuesto, es decir,  ubicar un dato en el disco y mostrarselo a l usuario. Se que los HD trabajan bajo el sistema FAT pero no se bien como se codifican los datos, ya que no es el sistema binario comun y corriente.  Trabajo con un 16f877.

 Muchas gracias por su respuestas.


----------



## maunix (Feb 12, 2006)

ilpancho dijo:
			
		

> Saludos,  necesito ayuda  a la hora de conectar un procesador a un disco duro,   el proyecto se basa en la comunicacion de estos dos dispositivos.  A pedido del usuario el pic debe tener la capacidad de recolectar datos externos y los grabarlos en el disco duro, tambien debe poder hacer lo opuesto, es decir,  ubicar un dato en el disco y mostrarselo a l usuario. Se que los HD trabajan bajo el sistema FAT pero no se bien como se codifican los datos, ya que no es el sistema binario comun y corriente.  Trabajo con un 16f877.
> 
> Muchas gracias por su respuestas.



Hay muuuucha información al respecto, creo que debieras buscar algo más por tu cuenta y leer mucho.
Que el formato FAT no es el formato comun y corriente? A que te refieres? Ha sido el estandar por excelencia por mas de 20 años,  90% de las pcs lo usan de seguro y tu dices que no es comun y corriente? 
El FAT12 (en diskettes),   FAT16 y FAT32 son los mas comunes que encontrarás para almcenamiento de archivos.

Podrias buscar mas en www.pilist.com

Google: www.google.com
Tips para google: IDED interface project
                  IDE PIC interface
                  IDE INTERFACE
                  FAT 


A description of an IDE interface for a microcontroller
How to connect an IDE disk to a microcontroller using an 8255

http://www.pjrc.com/tech/8051/ide/wesley.html


PIC/IDE
http://www.telegraphics.com.au/sw/información/picide.html


IDE Hard Disk experiments.
http://hem.passagen.se/communication/ide.html

View the ATA-2 specification working draft here.
http://home.swipnet.se/~w-68269/ide/ata-2.pdf


DOS File Allocation Tables
http://www.piclist.com/techref/dos/fat.htm

Proyectos relacionados:

http://www.mpic3.com/
ftp://ftp.dunfield.com/embedpc.zip
http://www.mp3ar.com/
http://members.optushome.com.au/yizgarnoff/index.html


----------



## ilpancho (Feb 12, 2006)

Muchas gracias por tu respuesta,  no quise decir que FAT no sea el formato sea el formato comun y corriente dije que no es el formato con el que se trabaja cuando se hacen proyectos con pics (por lo menos los proyectos simples).   En algo tenes razon,  me va a tocar leer muchisimo.


----------



## maunix (Feb 17, 2006)

Esta bien , el punto es que tu frase


			
				ilpancho dijo:
			
		

> Se que los HD trabajan bajo el sistema FAT pero no se bien como se codifican los datos, ya que no es el sistema binario comun y corriente. Trabajo con un 16f877.


No da muchas pistas, ya que cualquier forma en que grabes un dato depende de quien lo va a leer y en esto no hay comun y corriente o dicho de otra foram el FAT es bastante comun y corriente.

Si quieres grabar "archivos" no se me ocurre otra forma mas comun y corriente que el FAT.

Ahora si tu por sistema binario comun y corriente te referias a grabar directamente todo derecho en una eeprom bueno, eso sería simple y también lo podrias hacer con un disco duro, pero en la pc debieras tener un programa que te lea todo asi derecho nomas, accesando a los respectivos sectores del disco duro.  El punto es que se entiendan los dispositivos que entren  en juego con los software que entren en juego.

Si quieres almacenar archivos en una memoria flash o disco duro, veras que terminas haciendo algo como la fat porque en realidad es un sistema bastante simple.  Microchip tiene su propio sistema de almacenamiento de archivos el cual usa en sus ejemplos sobre como hacer un webserver en las librerias del stack tcp/ip donde ahí guarda la pagina toda entera.  Pero aqui hay que hacer un 'traductor' entre la pagina que uno arma con la pc y la forma en que luego se almacenará en la memoria eeprom, flash o la que elijas.




			
				ilpancho dijo:
			
		

> Muchas gracias por tu respuesta,  no quise decir que FAT no sea el formato sea el formato comun y corriente dije que no es el formato con el que se trabaja cuando se hacen proyectos con pics (por lo menos los proyectos simples).   En algo tenes razon,  me va a tocar leer muchisimo.


Si, de leer no te salvaras pero veras que el sistema FAT es bastante simple en comparación con otros! como hpfs , ntfs o ext3.
Saludos


----------



## Meta (Ago 31, 2012)

Hola:

Hoy en día, ya estamos más en SATA que los IDE. ¿Alguien ha hecho proyectos de controlar un disco duro con PIC o lector de DVD?

Un cordial saludo.


----------



## Scooter (Ago 31, 2012)

No lo veo muy lógico teniendo en cuenta que para usar una SD basta un puerto SPI y que hay SD de 32GB bastante baratas.
Si necesitas mas almacenamiento también necesitarás algo mas potente que un pic.


----------



## Meta (Ago 31, 2012)

Más bien lo pregunto como curiosidad. Ya que las SD que dices, no veo mucho que lo manejen con soltura. Al menos funciona.


----------



## Scooter (Ago 31, 2012)

Como  solución  me imagino que se podrá usar un conversor pata-sata


----------



## ByAxel (Ago 31, 2012)

Esto me hace recordar a un proyecto que vi en una revista pasada de Elektor en la cual se controla un lector de CD (conexión IDE) con un 16F877 (si no me equivoco)...


----------



## Meta (Sep 1, 2012)

La verdad que las NAND, sea tarjeta o pendrive, son de uso limitado. Los discos duros están mejor, incluso por encima de los posibles discos duros llamados SSD o algo así.


----------



## miguelus (Sep 2, 2012)

Buenos días meta y demás Foristas.

Os dejo un tutorial de como funciona y se controla un HD.

http://hem.passagen.se/communication/ide.html.

Sal U2


----------



## Scooter (Sep 2, 2012)

La única pega de las nand flash es su precio. Todo el que puede pone en su PC un SSD para que arranque mas rápido y luego un HDD para almacenar "el montón".
Como en todo también hay SSDs malos y baratos y HDDs malos y baratos.

La cuestión es que la cantidad de información que puede generar/gestionar un PIC es mas bien reducida.
Supongamos un sistema de adquisición de datos que toma la temperatura una vez por segundo, eso son 86kB diarios, con una SD de 32GB tardaría 1100 años en llenarla. Digo yo que en 1100 años dará tiempo a ir a vaciarla ¿no?. Una de 1GB que están prácticamente regaladas tardaría 32 años que también es "bastante" tiempo para ir a cambiar la SD.
Además el interface es mas sencillo, funcionan con una sola tensión de 3,3V, no llevan partes mecánicas etc.

Desconozco como funciona el SATA, se que es serie y ya está, es probable que se pueda simular pero casi seguro que haría falta algo de hardware. Siempre se puede hacer un interface PATA y poner un conversor 




http://www.dealextreme.com/p/sata-to-pata-adapter-card-81615?item=1
Por menos de 10U$D lo tienes.


----------



## Meta (Sep 2, 2012)

miguelus dijo:


> Buenos días meta y demás Foristas.
> 
> Os dejo un tutorial de como funciona y se controla un HD.
> 
> ...




Buena ese enlace. Estas cosas es lo que quiero ver.





Aunque sea IDE me da igual. Eso si, el SATA parece ser serie y tiene protocolo como el RS232, solo que es más rápido.

El SATA como es más nuevo, no se si la gente habrá hecho algún proyecto, al menos con los IDE te puedes entretener. Si hay más Web sobre ello, estaré encantado de leerlas.

En cuanto a @scooter. Gracias por la información, no sabía de ese adaptador. El truco de usar el SSD para Windows y el disco duro para los datos es muy buena idea. Hay SSD y HDD híbridos que en un solo encapsulado hace esa función. Los SSD son carísismos y se rompen antes. Con los años ya sacarán nuevas ideas.

Algunas páginas que pueden ser interesantes.
http://www.pjrc.com/tech/8051/ide/
http://www.pjrc.com/tech/8051/ide/wesley.html
http://www.codepuppies.com/~ben/sens/pic/mp3/


----------



## fernandob (Sep 2, 2012)

hola, yo de programacion en la compu no entiendo un pomo (apenas ASM )  .
pero se que las computadoras trabajan con 32 y 64 bits.
y un pic 16F en 8 bits.
tambien se que direccionar es similar.
y que la info a mirar, mejor en una PC , no vas a mirar 1 y 0 ?? 

digo, no es casi incompatible querer hacr eso con u pic 16F  ?? 

como son lso registros en un disco duro ?? no son de 32 y 64 bits ??? 
si uno intenta luego lleer desde la PC  no conviene usar ya un lenguaje que sirva para programar el pic y para tambien hacer un programa en la compu ???


----------



## Meta (Sep 2, 2012)

Hola.

Se trata de circuitos de control que es precisamente el PIC16F. Los 8 bits es la arquitectura del PIC, el disco duro es otra cosa. Si quieres manejar datos de 64 bits se usa 8 bits por 8 veces igual a 64 bits de datos. Encima si es un SATA es en serie, con ello quiero decir que no usa los 64 bits de golpe.

0x12345678 0x12300000 0x458F54C8 0x1200000A

Si no segmentado en 8 bits como puede ser así.

0x12345678
0x12300000
0x458F54C8
0x1200000A

Hay que tener las cosas claras, por ahora se que es así porque lo he leído. El IDE si fucniona en paralelo.

http://www.informaticamoderna.com/Disco_duro_SATA.htm

Un cordial saludo.


----------



## megasysfix (Sep 21, 2012)

Hola, me adentro al tema, tengo un montón de discos IDE que me gustaría darles alguna utilidad jejeje, estuve aprendiendo un poco en manejar memorias ram, y la verdad son bastante simples, encntre el pinout del disco, el cual puede servir, incluso pienso que se puede leer igual que una ram jejej, la pagina es esta: http://pinoutsguide.com/HD/Ata44Internal_pinout.shtml se ve comprometedor pero alguien que ayude con los pines desde el 20 al 44 jejejej, los demás son entendibles para mi (o almenos eso creo).

y el del SATA: http://pinoutsguide.com/HD/serialATA_pinout.shtml, se parece mucho al RS485!!!!!, pero que tipo de protocolo sera realmente???, interesante!!!!

Saludos cordiales!!!!


----------



## Meta (Sep 21, 2012)

megasysfix dijo:


> Hola, me adentro al tema, tengo un montón de discos IDE que me gustaría darles alguna utilidad jejeje, estuve aprendiendo un poco en manejar memorias ram, y la verdad son bastante simples, encntre el pinout del disco, el cual puede servir, incluso pienso que se puede leer igual que una ram jejej, la pagina es esta: http://pinoutsguide.com/HD/Ata44Internal_pinout.shtml se ve comprometedor pero alguien que ayude con los pines desde el 20 al 44 jejejej, los demás son entendibles para mi (o almenos eso creo).
> 
> y el del SATA: http://pinoutsguide.com/HD/serialATA_pinout.shtml, se parece mucho al RS485!!!!!, pero que tipo de protocolo sera realmente???, interesante!!!!
> 
> Saludos cordiales!!!!



Hola:

Hablando de la memoria RAM, he sentido curiosidad un tiempo. Como no guarda datos como los discos duros o SSD, he decidido usar el IDE que tengo unos cuantos para probar. 

He visto dejar la RAM de una PlayStation 3 y puentarlo para obtener datos sobre él. Lo extrae y lo guarda en el PC para analizarlo. En Pc nunca lo he visto hacer, ya qu eusando www.winhex.com puedes extraer y modificar datos de la RAM directamente, este último se llama _*Cheat Engine*_.






*1)* ¿Qué haz hecho funcionando a una RAM y cómo?
*
2)* ¿Tiene alguna finalidad que no sea sólo didactico o curiosidad?

Un cordial saludo.


----------



## megasysfix (Sep 21, 2012)

Meta dijo:


> Hola:
> 
> Hablando de la memoria RAM, he sentido curiosidad un tiempo. Como no guarda datos como los discos duros o SSD, he decidido usar el IDE que tengo unos cuantos para probar.
> 
> ...



Es mas que nada para meter datos o secuencias de LEDS jejejeje, es solo de entretención para mi, pero con un poco de ingenio se puede armar un controlador que maneje muchos datos por segundo o quien sabe, hasta puedas leer/grabar de la RAM para escribir en una matriz o cosas asi, te dejo el link de un aporte para que lo analices, en alguna de esas tienes alguna idea y la puedas compartir!!!! https://www.forosdeelectronica.com/f16/grabacion-memorias-83829/

Saludos Cordiales!!!


----------



## Meta (Sep 22, 2012)

Muchas gracias por el enlace.

También lo quiero para entrenimiento y aprender cosas nuevas.


----------



## X1un1Mundo1Mejor1wii (May 28, 2013)

megasysfix dijo:


> Hola, me adentro al tema, tengo un montón de discos IDE que me gustaría darles alguna utilidad jejeje, estuve aprendiendo un poco en manejar memorias ram, y la verdad son bastante simples, encntre el pinout del disco, el cual puede servir, incluso pienso que se puede leer igual que una ram jejej, la pagina es esta: http://pinoutsguide.com/HD/Ata44Internal_pinout.shtml se ve comprometedor pero alguien que ayude con los pines desde el 20 al 44 jejejej, los demás son entendibles para mi (o almenos eso creo).
> 
> y el del SATA: http://pinoutsguide.com/HD/serialATA_pinout.shtml, se parece mucho al RS485!!!!!, pero que tipo de protocolo sera realmente???, interesante!!!!
> 
> Saludos cordiales!!!!



Que tipo de memorias EDO ? BEDO ?
DDR ?
... si te refieres a las que vienen en chips..
ps en PC es otra cosa, comenzando con la frecuencia de Refresco elevadas.
bueno si sabes sobre eso seria genial si lo puedes compartir yo tambien tengo muchas cosas de computadoras listas para querer usarlas, para aprender, procesadores antiguos y algunos mas modernos como el Pentium MMX, memorias y disco duros.


----------



## Scooter (May 29, 2013)

Los ordenadores suelen usar memoria dinámica que hay que refrescar constantemente, eso es mucho esfuerzo para un pic con su escasa potencia de cálculo.
La ram se usa para guardar datos en constante movimiento, es decir que se actualizan a cada momento. Si necesitas 1GB de datos cambiantes un pic es una pésima elección; tardará horas en actualizar esos datos con los cálculos correspondientes. Si es 1GB de datos "históricos" usar ram es absurdo y ram dinámica mil veces mas absurdo.
Si es por una cuestión académica o de investigación, bueno, aprender como van las cosas siempre es interesante.


----------



## Meta (May 29, 2013)

Esos tipo de memorias de que necesita refrescarse en cada momento no es del todo cierto, lo hace Windows para evitar hack o sean complicados de hacer, solo eso. Lo de aleatorio lo hará el programa o sistemas operativos.


----------



## Scooter (May 29, 2013)

Del sistema operativo yo no he hablado, me parece que eso que comentas no tiene nada que ver con lo que estamos diciendo.
Normalmente hay un hardware que hace el refresco y no lo tiene que hacer el procesador, por eso no hay que hacer el refresco "conscientemente", pero en el pic ese hard no existe. También hay SDRAM que son ram dinámica que simula ser estática ya que el "refescador" está dentro de la propia ram. Cada bit de una DRAM es el condensador que se forma en una unión de un transistor, si no se refresca se descarga y se pierde el dato.
De cualquier modo no le veo sentido a ponerle 1GB de ram o algo semejante a un pic, 64 o 128k podría tener alguna utilidad pero 1GB no se me ocurre para que.


----------



## X1un1Mundo1Mejor1wii (May 29, 2013)

son Mosfet que entre sus terminales hacen un"condensador" por eso requieren ese refrezco, también mientras se lee la memoria se puede Refrescar el dato en ella, bueno les pediría para no irnos del tema, si postean algo sea completo, y complementario sino estamos reviviendo un post sin ningún aporte no creo que sea adecuado.


----------



## Meta (May 29, 2013)

Borrar este mensaje...
Sorry.


----------



## diego gomez (Sep 21, 2013)

Un saludo colegas

no soy muy conocedor del tema, pero mi inquietud seria, no se puede conectar un disco duro a un pic por usb como se conectan los discos externos a un computador.

gracias


----------



## ByAxel (Sep 21, 2013)

diego gomez dijo:


> no se puede conectar un disco duro a un pic por usb como se conectan los discos externos a un computador.


Siempre y cuando el PIC soporte el modo Host/OTG, ya que no se pueden conectar dos dispositivos USB. Tiene que ser "Host <-> Device".
El disco duro seria tratado como memoria externa y hace falta el protocolo para establecer la comunicación.

Saludos.


----------



## diego gomez (Oct 4, 2013)

muchas gracias compañero

mi pregunta es, ¿alguien conoce un conversor de sata a usb que se consiga en Colombia?, ¿el protocolo seria el mismo que para las memorias sd?.

Gracias compañeros


----------



## Chico3001 (Oct 4, 2013)

diego gomez dijo:


> muchas gracias compañero
> 
> mi pregunta es, ¿alguien conoce un conversor de sata a usb que se consiga en Colombia?, ¿el protocolo seria el mismo que para las memorias sd?.
> 
> Gracias compañeros



Los convertidores son muy estandar y los consigues en cualquier casa de computacion... solo pidelo asi, convertidor de SATA a USB

En cuanto a los protocolos, la respuesta es no.... casi es normal que las SD usen FAT16 o 32, pero en un disco duro encuentras mucha variedad de protocolos, FAT16, FAT32, NTFS, HFS, HFS+, EXT1, EXT2, EXT3, EXT4


----------



## Scooter (Oct 5, 2013)

FAT, NTFS, EXTx etc no son protocolos, son sistemas de archivos. Son la forma en la que se guardan los datos en el disco. Protocolo es la forma en la que se comunican dos equipos.


----------



## Chico3001 (Oct 5, 2013)

ah... cierto... D


----------



## decpiste (Oct 5, 2013)

Muy interesante

Un saludo


----------

