elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17
121  Informática / Electrónica / Programador Eprom + Proyecto en: 5 Diciembre 2005, 08:04 am
Desde hace tiempo tengo la "curiosidad" y "nececidad" de un Programador de memorias EPROM, en especial las de serie 27CXXX, en concreto la 27C256, el costo de estos dispositivos suele ser muy elevado aun siendo "basicos" estos programadores. Entonces con la experiencia de clases de electronica, de microprocesadores (z80), de PIC, etc. estoy tratando de fabricar mi propio programador de memorias (de moemnto 27C256 y con el tiempo, mediante software abarcar mas memorias y otros IC).

Entonces, retomado lo que se habla aqui:

http://foro.elhacker.net/index.php/topic,44211.0.html

Principalmente en :


...Mensaje truncado...

y pues kon respecto al precio por ahi encontre un katalogo kon varios programadores para todo tipo de dispositivos con sus precios

http://www.kyheingenieria.com/catalogo02B.HTM

seria interesante hacer uno rudimentario komo los que se hacen para PICs, kien tenga un diagrama y lista de elementos de un universal que lo comparta  :D


saludox[/color]


Comence a investigar como programar la memoria 27C256, la info la saque del Datasheet el cual lo puedes bajar de mi pagina en la sección "Datasheets"...

Observando la tabla de voltajes de Programacion, Lectura, Verificacion, etc. diseñe un circuito que me entregue tanto el voltaje de Lectura (5V) y el de Programacion ( normalmente 12.5 V). El diagrama y placa de circuito impreso lo puedes descargar de aqui:

http://k.1asphost.com/NSGSystems/etc/gvpl.zi

(Renombrar el archivo a extension ZIP)

Todo el proyecto lo haré por Modulos, en este caso coloco el circuito al que llame "Generador de Voltaje de Programacion y Lectura".

El circuito tiene un Header de 4 pines:

Pin 1: GND
Pin 2: VPP
Pin 3: IN
Pin 4: OUT

VPP debe ser de 15 VCD, la entrada IN debe ser de 0 o 5 Volts (señal de microcontrolador o Microprocesador, etc), en OUT tendremos:

Con IN = 0 V o "0" logico ; OUT aproximadamente 5 V
Con IN = 5 V o "1" logico ; OUT aproximadamente 12.4 a 12.8V

Como ven, esto es solo el principio, en papel tengo diseñado la conexion de un PIC 16F84 a la EPROM y a este modulo, falta software, interfazado a la PC, etc...

Lo hago con el proposito de recibir correcciones y consejos, ademas de compartir esto con quien quiera fabricar su propio programador "casero" pero profesional...

En la proxima quiza tenga otro modulo, de momento les aseguro que el 1er modulo (GVPL) funciona...

Cualquier duda, consejo, observacion es bien recibida...

saludos
122  Programación / Programación Visual Basic / Re: Archivos .ini dentro de .exe en: 3 Diciembre 2005, 11:38 am
El siguiente codigo va en un modulo, NO lo escribi yo, el autor es:
©Guillermo 'guille' Som, 1997-2001 <guille@costasol.net>

Ver las funciones y subs que escribió, se explica por si solo en los comentarios:



Código:

'--- Declaraciones para leer ficheros INI ---
' Leer todas las secciones de un fichero INI, esto seguramente no funciona en Win95
' Esta función no estaba en las declaraciones del API que se incluye con el VB
Public Declare Function GetPrivateProfileSectionNames Lib "kernel32" Alias "GetPrivateProfileSectionNamesA" _
    (ByVal lpszReturnBuffer As String, ByVal nSize As Long, _
    ByVal lpFileName As String) As Long

' Leer una sección completa
Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" _
    (ByVal lpAppName As String, ByVal lpReturnedString As String, _
    ByVal nSize As Long, ByVal lpFileName As String) As Long

' Leer una clave de un fichero INI
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
    (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
     ByVal lpDefault As String, ByVal lpReturnedString As String, _
     ByVal nSize As Long, ByVal lpFileName As String) As Long

' Escribir una clave de un fichero INI (también para borrar claves y secciones)
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
    (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
     ByVal lpString As Any, ByVal lpFileName As String) As Long

Public Sub IniDeleteKey(ByVal sIniFile As String, ByVal sSection As String, _
                        Optional ByVal sKey As String = "")
    '--------------------------------------------------------------------------
    ' Borrar una clave o entrada de un fichero INI                  (16/Feb/99)
    ' Si no se indica sKey, se borrará la sección indicada en sSection
    ' En otro caso, se supone que es la entrada (clave) lo que se quiere borrar
    '
    ' Para borrar una sección se debería usar IniDeleteSection
    '
    If Len(sKey) = 0 Then
        ' Borrar una sección
        Call WritePrivateProfileString(sSection, 0&, 0&, sIniFile)
    Else
        ' Borrar una entrada
        Call WritePrivateProfileString(sSection, sKey, 0&, sIniFile)
    End If
End Sub

Public Sub IniDeleteSection(ByVal sIniFile As String, ByVal sSection As String)
    '--------------------------------------------------------------------------
    ' Borrar una sección de un fichero INI                          (04/Abr/01)
    ' Borrar una sección
    Call WritePrivateProfileString(sSection, 0&, 0&, sIniFile)
End Sub

Public Function IniGet(ByVal sFileName As String, ByVal sSection As String, _
                       ByVal sKeyName As String, _
                       Optional ByVal sDefault As String = "") As String
    '--------------------------------------------------------------------------
    ' Devuelve el valor de una clave de un fichero INI
    ' Los parámetros son:
    '   sFileName   El fichero INI
    '   sSection    La sección de la que se quiere leer
    '   sKeyName    Clave
    '   sDefault    Valor opcional que devolverá si no se encuentra la clave
    '--------------------------------------------------------------------------
    Dim ret As Long
    Dim sRetVal As String
    '
    sRetVal = String$(255, 0)
    '
    ret = GetPrivateProfileString(sSection, sKeyName, sDefault, sRetVal, Len(sRetVal), sFileName)
    If ret = 0 Then
        IniGet = sDefault
    Else
        IniGet = Left$(sRetVal, ret)
    End If
End Function

Public Sub IniWrite(ByVal sFileName As String, ByVal sSection As String, _
                    ByVal sKeyName As String, ByVal sValue As String)
    '--------------------------------------------------------------------------
    ' Guarda los datos de configuración
    ' Los parámetros son los mismos que en LeerIni
    ' Siendo sValue el valor a guardar
    '
    Call WritePrivateProfileString(sSection, sKeyName, sValue, sFileName)
End Sub

Public Function IniGetSection(ByVal sFileName As String, _
                              ByVal sSection As String) As String()
    '--------------------------------------------------------------------------
    ' Lee una sección entera de un fichero INI                      (27/Feb/99)
    ' Adaptada para devolver un array de string                     (04/Abr/01)
    '
    ' Esta función devolverá un array de índice cero
    ' con las claves y valores de la sección
    '
    ' Parámetros de entrada:
    '   sFileName   Nombre del fichero INI
    '   sSection    Nombre de la sección a leer
    ' Devuelve:
    '   Un array con el nombre de la clave y el valor
    '   Para leer los datos:
    '       For i = 0 To UBound(elArray) -1 Step 2
    '           sClave = elArray(i)
    '           sValor = elArray(i+1)
    '       Next
    '
    Dim i As Long
    Dim j As Long
    Dim sTmp As String
    Dim sClave As String
    Dim sValor As String
    '
    Dim aSeccion() As String
    Dim n As Long
    '
    ReDim aSeccion(0)
    '
    ' El tamaño máximo para Windows 95
    sBuffer = String$(32767, Chr$(0))
    '
    n = GetPrivateProfileSection(sSection, sBuffer, Len(sBuffer), sFileName)
    '
    If n Then
        '
        ' Cortar la cadena al número de caracteres devueltos
        sBuffer = Left$(sBuffer, n)
        ' Quitar los vbNullChar extras del final
        i = InStr(sBuffer, vbNullChar & vbNullChar)
        If i Then
            sBuffer = Left$(sBuffer, i - 1)
        End If
        '
        n = -1
        ' Cada una de las entradas estará separada por un Chr$(0)
        Do
            i = InStr(sBuffer, Chr$(0))
            If i Then
                sTmp = LTrim$(Left$(sBuffer, i - 1))
                If Len(sTmp) Then
                    ' Comprobar si tiene el signo igual
                    j = InStr(sTmp, "=")
                    If j Then
                        sClave = Left$(sTmp, j - 1)
                        sValor = LTrim$(Mid$(sTmp, j + 1))
                        '
                        n = n + 2
                        ReDim Preserve aSeccion(n)
                        aSeccion(n - 1) = sClave
                        aSeccion(n) = sValor
                    End If
                End If
                sBuffer = Mid$(sBuffer, i + 1)
            End If
        Loop While i
        If Len(sBuffer) Then
            j = InStr(sBuffer, "=")
            If j Then
                sClave = Left$(sBuffer, j - 1)
                sValor = LTrim$(Mid$(sBuffer, j + 1))
                n = n + 2
                ReDim Preserve aSeccion(n)
                aSeccion(n - 1) = sClave
                aSeccion(n) = sValor
            End If
        End If
    End If
    ' Devolver el array
    IniGetSection = aSeccion
End Function

Public Function IniGetSections(ByVal sFileName As String) As String()
    '--------------------------------------------------------------------------
    ' Devuelve todas las secciones de un fichero INI                (27/Feb/99)
    ' Adaptada para devolver un array de string                     (04/Abr/01)
    '
    ' Esta función devolverá un array con todas las secciones del fichero
    '
    ' Parámetros de entrada:
    '   sFileName   Nombre del fichero INI
    ' Devuelve:
    '   Un array con todos los nombres de las secciones
    '   La primera sección estará en el elemento 1,
    '   por tanto, si el array contiene cero elementos es que no hay secciones
    '
    Dim i As Long
    Dim sTmp As String
    Dim n As Long
    Dim aSections() As String
    '
    ReDim aSections(0)
    '
    ' El tamaño máximo para Windows 95
    sBuffer = String$(32767, Chr$(0))
    '
    ' Esta función del API no está definida en el fichero TXT
    n = GetPrivateProfileSectionNames(sBuffer, Len(sBuffer), sFileName)
    '
    If n Then
        ' Cortar la cadena al número de caracteres devueltos
        sBuffer = Left$(sBuffer, n)
        ' Quitar los vbNullChar extras del final
        i = InStr(sBuffer, vbNullChar & vbNullChar)
        If i Then
            sBuffer = Left$(sBuffer, i - 1)
        End If
        '
        n = 0
        ' Cada una de las entradas estará separada por un Chr$(0)
        Do
            i = InStr(sBuffer, Chr$(0))
            If i Then
                sTmp = LTrim$(Left$(sBuffer, i - 1))
                If Len(sTmp) Then
                    n = n + 1
                    ReDim Preserve aSections(n)
                    aSections(n) = sTmp
                End If
                sBuffer = Mid$(sBuffer, i + 1)
            End If
        Loop While i
        If Len(sBuffer) Then
            n = n + 1
            ReDim Preserve aSections(n)
            aSections(n) = sBuffer
        End If
    End If
    ' Devolver el array
    IniGetSections = aSections
End Function

Public Function AppPath(Optional ByVal ConBackSlash As Boolean = True) As String
    ' Devuelve el path del ejecutable                               (23/Abr/02)
    ' con o sin la barra de directorios
    Dim s As String
    '
    s = App.Path
    If ConBackSlash Then
        If Right$(s, 1) <> "\" Then
            s = s & "\"
        End If
    Else
        If Right$(s, 1) = "\" Then
            s = Left$(s, Len(s) - 1)
        End If
    End If
    AppPath = s
End Function
'------------------------------------------------------------------------------
' Fin del código para acceder a los ficheros INIs
'------------------------------------------------------------------------------



Para usar algunas funciones veamos el siguiente codigo:

Código:

Dim sFichero as string, Temp As String, i As Long, tValores() As String

sFichero = App.Path & "\" & App.EXEName & ".exe"
           
           'obtiene todas las llaves y lo mete en el array
            tValores = IniGetSection(sFichero, "Lista")
               
                If UBound(tValores) > 0 Then
               
                       For i = 0 To UBound(tValores) Step 2
                            'Lee los valores
                            Temp = IniGet(sFichero, "Lista", tValores(i))
                            Temp = Trim(Temp) 'Le quita los espacios
                           
                            If Len(Temp) > 0 Then
                                cLista.AddItem Temp
                            End If
                       
                       Next
                               
                End If


El codigo anterior saca los valores de las llaves de la sección "Lista" y las mete en el ListBox llamado cLista

El INI embedido puede paracerse a esto:

[Lista]
key1=valor1
key2=valor2
.
.
.
keyN=valorN


Checa las demas funciones del modulo, algunas obtienen Todas las secciones, otras borran secciones,otras borran llaves,etc.

Si no quedo claro el codigo, postea.

saludos
123  Informática / Electrónica / Re: aumento de velocidad de internet en: 28 Noviembre 2005, 06:31 am
 :-\ me temo que es algo complicado, de hecho investiga diagramas de modems y cosas asi y verás que no es nada sencillo.

De que SE puede SE puede, ( si pudieramos fabricar un modem como los usados en conexiones de alta velocidad  :D ), y aun asi teniendo diagramas de estas cosas la cosa se complica al encontrar los Integrados que usan, otro inconveniente es que serian de montaje superficial (dificiles de soldar a mano), en fin, algo complicado...
124  Informática / Electrónica / PICAXE? en: 28 Noviembre 2005, 06:20 am
Bueno, como lo dice el "Asunto", alguien sabe de estos dispositivos PICAXE: donde comprarlos, como pedirlos (que # de parte), el costo aproximado.

Si no sabes nada de picaxe visita:

http://www.rev-ed.co.uk/detail.asp?prodname=PICAXE&quick=1

En resumen estos son PIC's con la diferencia que de fabrica le incroporan un Firmaware para que su programacion sea sencilla, de hecho la compañia que los vende le pide a Microchip los PIC's (especiales) y le insertan el firmware. Se programan por diagrama de flujo o BASIC y por tres pines. Los hay de 8,18,28 y 40 pines si no mal recuerdo.

Realmete hasta el mas novato en electronica y uProcesadores podra programar y hacer pinitos con estos dispositivos.

Lo que me pregunto es que No. de parte son (por ejemplo 16Cxxx) y donde conseguirlos en Mexico pues he preguntado por: ¿Tiene PICAXE 08 o 18? y dicen que no.

gracias y saludos
125  Informática / Electrónica / Re: Planchar circuito en: 28 Noviembre 2005, 05:59 am
Aqui les dejo un ejemplo de los resultados obtenidos con
"La planchada de un PCB" y comparen mas o menos la calidad con la que queda nuestro PCB.

El pcb en cuestion es este:




Y la placa real "atacada" con acido y perforada:




Son algo "profesionales" los resultados y bastante sencillo de elaborar; por cierto este PCB es un receptor de 144MHz o banda de 2 metros.

saludos
126  Programación / Programación Visual Basic / Re: Archivos .ini dentro de .exe en: 26 Noviembre 2005, 09:07 am
Que bien que tocan este tema, solo una observacion y/o "truco", como quieran llamarle.

Una vez embedi en un EXE y un INI asi:

.------------,
|     EXE    |
'------------'
|    INI      |
'...............'



Bueno, resulta ser que el EXE se ejecutaba correctamente y me pregunte:

¿ Porque no leer su contenido desde el mismo EXE sin extraer el INI? (NOTA: Esto con las API's dedicadas para ello)

Y asi lo hice, PUDE leer el contenido de las secciones y claves del INI embedido, el unico problema (obvio) es escribir nuevas secciones y/o claves...

Busco el codigo y lo posteo si alguien lo requiere....


saludos
127  Informática / Electrónica / Re: Decoder tipo multiplexor en: 26 Noviembre 2005, 08:13 am
Lo que planteas no creo que lo encuentres, lo que nececitarias hacer es un circuito combinacional para que haga lo que quieres.

La otra opcion es que en vez de usar un teclado decimal uses uno
hexadecimal de conexion matricial y controlarlo por medio de un 74C922. Es facil de interfazar ambas cosas y el codigo de la tecla pulsada sale en un bus de 4 bits codificadas en binario. Revisa su Datasheet del IC para que te quede mas claro...

el link:

http://k.1asphost.com/NSGSystems/dsheet/74c922.pdf

saludos
128  Programación / Programación Visual Basic / Re: AutoEliminar programa en: 22 Noviembre 2005, 11:19 am
Otra opcion que se me ocurre es agregar el comando en la llave de registro de inicio de windows, ya sea "Run" o "RunOnce",:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

update = del archivo.ext

el problema es que muestra la consola un "instante"

saludos
129  Programación / Programación Visual Basic / Re: Alguien sabe como hacer un form ovalado en: 12 Noviembre 2005, 09:44 am
visita estas web, checa sobretodo las secciones de API

http://www.elguille.info/default.aspx

http://www.canalvisualbasic.net/default.asp

saludos
130  Informática / Electrónica / Re: Planchar circuito en: 12 Noviembre 2005, 09:25 am
Oye Syphroot ¿cómo se llama el barniz verde que mencionas y dónde se suele encontrar? lo he buscado pero no lo encuentro :'( ¿en dónde lo compras tú? ya que aquí en mi pequeño rancho no hay nada, la tienda más grande es Steren pero parece que no lo tienen.

 ;D una vez lo vi, pero no lo compre (no tenia $$$), no recuerdo su nombre exacto, solo recuerdo que la marca era "Rapid Circuit", voy a investigar como se llama y lo compro, despues les digo su nombre exacto... saludos
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines