TODOPIC
Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: paymer en 02 de Mayo de 2005, 13:43:00
-
Quisiera saber si alguien a utilizado o a visto algun diseño que haga uso del componente de simulacion de disco duro que trae el proteus(ATAHDD);llevo tiempo queriendo experimentar con discos duros y pic"s pero no he encontrado informacion clara y creo que este seria un buen punto de partida.
-
Que onda paymer,
podrias bajarte este ejercicio, creo que despejara tus dudas, en cuanto a la info, hay batante por la red para entender el funcionamiento de un HDD, que no es mas que una memoria gigante, jejeje 
http://personal.auna.com/asencio5/Ejemplos%20C/PROYECTOS/LBA_HDD%20por%20Lager.zip
Salu2 pana
-
Gracias Lager era justo lo que buscaba,ademas esta muy bien comentado.
Si que habia encontrado por ahi informacion sobre registros y caracteristicas,pero no una implementacion directa como el ejemplo tuyo.
-
Me da gusto que te sea de utilidad pana, no olvides revizar otros ejemplos en el mismo link,... es del pana Modulay y tiene unos ejemplos muy interesantes

Si haces una aplicacion con HDD NOS seria de mucha importancia y de gran utilidad tu contribucion .
Salu2 pana
-
valla! parece que el uso de discos duros con isis no es el fuerte de todo pic.4 años sin mas comentarios.
pues aqui estoy yo para continuarlo. :D
estoy interesado en manejar un disco duro con un pic.y he visto que isis tiene esta herramienta.he intentado acceder al enlace pero parece estar roto.haber si alguien sabe donde conseguir mas informacion sobre este modulo de isis. :mrgreen: y ya ire poniendo mis experiencias en este mismo hilo.
-
hombre si,,,vemos q en el foro se han hecho grandes cosas...pero no se ha experimentado con los discos duros
-
pues vamos alla.
lo primero explicar un poco lo que es un disco duro.aunque soy un novato en esto y me puedo equivocar.
hay dos modos de interactuar en un disco duro por modo CHS o modo LBA
explicare porque las siglas CHS> Cilinder Heads Sectors "Cilindros Cabezales Sectores"
los cilidros son como las pistas de un disco de vinilo.pero diferentes, ya que un disco de vinilo solo tiene una pista en espiral muy larga.y un disco duro puede tener muchas pistas cortas como si fueran circulos concentricos uno al lado de otro.la cantidad de pistas viene dado por el diametro del disco y la concentracion de imanes elementales que contenga.es decir, que cuanto mas pequeños sean las particulas de iman y el dispositivo de orientacion de los nanoimanes(cabezales)mas cantidad de pistas tendremos.
los Cabezales son los que van rozando con las caras de los discos para extraer escribir y leer los estados logicos 1 y 0.hay dos cabezales por disco
uno en la cara superior y otra en la inferior.si tenemos 16 Heads significa que ese disco duro tiene 8 discos.
los Sectores son las divisiones que se le ha hecho a la cara de los discos.como si quisieramos dividir una tarta o una pizza.
8 heads"cabezales" significa que tiene 4 discos a 2 caras por disco
8 pistasx 8 cabezales son 64 pistas en todo el disco duro "virtual" ya que siempre son mas .depende el disco duro.uno de 40GB tiene 16.383 pistas.
8 sectores x 8 cabezales serian 64 sectores en todo el disco duro.
pero se me acerca una duda :?
y es que no entiendo
pondre el ejemplo de un disco duro de que dispongo de seagate ST340015A que es de 40GB o almenos es lo que me reconoce el ordenador.que tiene
16.383 CYL _ 16 HDS _ 63 SECT
asi que 16.383 cilindros x 16 cabezas x 63 sectores =16.514.064 sectores direccionables x 512 Bytes/Sector=8.455.200.768 Bytes
ademas tiene en la etiqueta LBA 78.165.386
y no me salen los numeros.en esta pagina se informa sobre estos calculos pero no me cuadran. http://www.saulo.net/pub/ddypart/a.htm
-
:shock:si...extraño no,,,la cuenta no da
-
bueno.voy a empezar con las conexiones DD[0...15] del modulo ATAHDD.
segun he leido.para conectar las lineas del PORTD que en este caso es el que voy a utilizar,al modulo ATAHDD.
hay que prolongar el BUS cerca de las lineas del puerto del pic.y seguidamente interconectamos los pin del pic al modulo.
pero para que el modulo pueda identificar que pin del pic pertenece a cual pin del modulo.cuando hayamos puesto todas las lineas de conexion,pulsaremos con el segundo boton del raton en las linea que queramos identificar.y le asignaremos un nombre.
entonces nos saldra una ventana y seleccionaremos Place Wire Label.y le pondremos el nombre siguiente:
si seleccionamos el wire que esta conectado a PORTD 0 le pondremos la etiqueta DD[0] y si seleccionamos la wire que va a PORTD 7 pondremos DD[7].
yo creo que es asi.de momento no me funciona.es decir que leo el registro status del disco duro pero no se refleja ningun dato a la salida de una barra de leds.
asi que no se si el fallo esta en las conexiones o en el metodo de leerlo.
haber si alguien sabe algo al respecto. :(
-
parece que nadie sabe algo al respecto :D
valla trabajito que me esta dando el dichoso modulo.y es que no he visto ningun trabajo realizado con este.
pero muy poquito a poco voy avanzando.y he descubierto de que para que funcione la conexion,hay que nombrar a la lineas igual que indique anteriormente pero quitando los corchetes. DD0,DD1,DD2,DD3,DD4,DD5,DD6,DD7.
ademas prolongar el bus del ATAHDD hay que nombrar a bus con el nombre DD[0..15]. y ya me funciono la lectura de este modulo.
proximamente pondre aqui la forma de leer un comando del ATAHDD y escribir en este. :-/
-
de verdad que me va a reventar la cabeza. :x
resulta de que testeo el bit READY,BUSSY e incluso el DRQ.antes de enviar un comando al ATAHDD.y resulta de que hay un conflicto con los datos que tiene a la salida del bufer de datos.y estos al chocar se me produce el error de choque de datos.
no entiendo que hace un dato a la salida del bufer del ATAHDD.ya no se que flag de que registro hay que verificar para que el ATAHDD este en modo lectura.
y me admita introducir cualquier comando.al final tendre que dejar esta practica con los discos duros.
hay muy poca informacion sobre esto.y la poca que hay en ingles.aunque el ingles es el menor de los problemas.el problema esta en que el manual del isis no es del todo claro.y no aclara las secuencias a introducir.o algun ejemplo.si no encuentro algo pronto adios al ATAHDD.y eso que queria empezar por los SATA. :(
-
leyendo uno de los hilos encontre este (http://hem.passagen.se/communication/ide.html) link
saludos
-
ya.es del que mas informacion estoy sacando.y de la ayuda del modulo.pero hay algo que no furula.supongo que estoy haciendo algo mal.
-
Hola, dependiendo de tu necesidad y complejidad de tu proyecto te recomiendo el pic simulator ide, es mas simple, ya que proteus es complicadisimo.(dependiendo de tu conocimiento)
-
Aquí les dejo la información base para este proyecto:
- Specification ATA-1 (http://home.wanadoo.nl/jmbosch/download/ATA-1.pdf)
- Specification ATA-2 (http://www.t13.org/Documents/UploadedDocuments/project/d0948r4c-ATA-2.pdf)
Después para implementar el formato FAT:
- Specification FAT-FAT32 (http://staff.washington.edu/dittrich/misc/fatgen103.pdf)
- La traducción del documento anterior por Ariel, aunque faltan algunas cositas FAT al desnudo (http://www.ucontrol.com.ar/wiki/index.php/FAT_al_desnudo)
Saludos!
-
ok.muchas gracias.leere detenidamente la informacion. y abajo pongo algunas soluciones.
Logic contention(s) detected on net DD5.
ese es el error que me salia.y ya he averiguado de que es.
por lo visto las salidas del ATAHDD estan emuladas a colector abierto.igual que ocurre con el pin RA4/TOCKI del pic.
y si no le ponemos unas resistencias,almenos de 1k a positivo a esta salida y a las del bufer del puerto del pic que vallamos a usar para interconectar con
el ATAHDD.pues nos saldran diferentes errores.
asi que sigo y haber si doy con la tecla definitivamente.