Este instructable explica cómo ejecutar el chip Atmega328 como el chip en un Arduino sin el cristal haciendo el diseño más fácil y te da dos pines adicionales para trabajar con. Este programa no funcionará en un Arduino Uno. Se hace uso de características del chip Atmega328 que no están disponibles en el Arduino. Los pines en el 328 y los microcontroladores de Atmel, están dispuestos en bancos de ocho. El Banco "D" está disponible pero sólo tienes acceso a un banco. Hay solamente seis pines disponibles en el Banco "C", la analógica de entrada pins, porque uno de ellos no es explotado y el otro es el reset. Dos de los pines en el Banco "B" son tomadas por el cristal.
Es posible ejecutar el chip sin el cristal y tener acceso completo a todos los ocho pines en el Banco "B". Existe una red interna de R/C que puede utilizarse para el chip del reloj. El chip se ejecuta a 8 MHz en lugar de dieciséis. Esto generalmente no es un problema porque la mayoría de programas Arduino no necesita la velocidad de todos modos. También el reloj interno no es tan preciso. La tolerancia especificada en la hoja de datos para el ATtiny85 es +-10% mientras que la mayoría de los cristales tiene una tolerancia de 30 PPM. Supongo que el 328 es el mismo pero no he podido encontrar en la hoja de datosde 328. (La hoja de datos es cientos de páginas de lectura muy seco). Hay una muy buena oportunidad que su chip no será apagado en cualquier lugar cerca de diez por ciento. Esta colección de instructables incluye una prueba de reloj interno en el chip ATtiny85. y explica cómo las piezas se prueban para asegurar que están dentro de tolerancia.
He escuchado de casos donde el hardware de comunicaciones serie de Arduino puede interferir con el funcionamiento de los pernos de cero y uno. Con el chip fuera del tablero no será un problema, pero si usted las está utilizando para comunicaciones en serie necesita para su conservación.
Cada banco de ocho pines es controlado por tres registros de 8 bits.:
- El registro DDR es la dirección de datos, 0 = entrada 1 = salida.
- El registro PIN se utiliza para leer el valor del pin digital.
- El registro de puerto tiene dos funciones:
- Si registra el DDR se establece en 0 establece el perno bajo y 1 fija alta de salida.
- Si se establece el registro DDR 1 entrada enciende la resistencia de pull-up interna.
El IDE de Arduino no tiene manera de controlar los pines donde estaba el cristal, no tienen números pin digital. Afortunadamente proporcionar apoyo directo para la manipulación de los registros de controladores. Este instructable muestra cómo utilizar los registros de pin para facilitar programas más rápido, más pequeño y en muchos casos al código.