Pregunta:
Cambio de pines utilizados en el ejemplo de ArduinoISP
user1092
2014-04-18 01:33:48 UTC
view on stackexchange narkive permalink

He construido mi propio programador ATTiny, pero cometí un pequeño error en el camino: no alineé los encabezados correctamente y ahora, en lugar de enchufarlos en los pines 10, 11, 12 y 13 según el ArduinoISP ejemplo: ahora se conectan a los pines 8, 9, 10 y 11.

Si utilizo algunos cables de puente para conectar los pines para que coincidan con el ejemplo de ArduinoISP, todo funciona bien, es decir, el cableado en la placa real está bien, sin embargo, quiero poder simplemente enchufar mi placa que he hecho directamente y, por lo tanto, necesito que el cargador de arranque se queme y la carga funcione a través de los pines 8, 9, 10 y 11 en su lugar.

He intentado modificar el ejemplo yo mismo reemplazando las referencias a RESET, MOSI, MISO y SCK con mis propios números de pin, pero esto no parece ser suficiente. Cuando intento grabar el gestor de arranque ahora, aparece el siguiente error:

  avrdude: stk500_program_enable (): error de protocolo, espera = 0x14, resp = 0x50avrdude: falla de inicialización, rc = -1 Doble verifique las conexiones y vuelva a intentarlo, o use -F para anular este check.avrdude: stk500_disable (): error de protocolo, espera = 0x14, resp = 0x51  

Si intento cargar un boceto usando mi versión que tiene los números de pin personalizados, aparece este error:

  avrdude: stk500_getsync (): not in sync: resp = 0x00  

El cableado de mi programador es el mismo que se puede encontrar aquí: http://highlowtech.org/?p=1706 excepto que quiero que el boceto del programador funcione con diferentes pines.

Gracias

Dos respuestas:
#1
+7
Craig
2014-04-18 01:48:53 UTC
view on stackexchange narkive permalink

No puede cambiar los pines.

ArduinoISP usa la interfaz SPI en los pines 10-13 que es proporcionada por el hardware AVR subyacente.

#2
+3
microtherion
2014-04-18 04:28:19 UTC
view on stackexchange narkive permalink

En la práctica, es mucho mejor corregir las cosas, por lo que está utilizando los pines originales, que corresponden al SPI de hardware.

Sin embargo, no es muy difícil implementar SPI en el software (con un rendimiento más bajo, por supuesto):

  static uint8_t SPITransfer (uint8_t out) {uint8_t in = 0 ; para (int i = 0; i<8; ++ i) {digitalWrite (MOSI, (fuera & 0x80)! = 0); fuera << = 1; escritura digital (SCK, ALTA); en = (en << 1) | digitalRead (MISO); escritura digital (SCK, BAJA); } return in;}  

Hay varios modos SPI, pero esto implementa el que se usa para ISP.



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...