# X-TRAINER PRO R4 PIC16F877A

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FEJZesYMe77UrK5RCz1AO%2FTARJETA%20DE%20DESARROLLO%20PARA%20PROGRAMACION%20DE%20MICRCONTROLADORES%20PIC16.webp?alt=media&#x26;token=0ed3e016-4ace-460e-a617-20836ebea4fd" alt=""><figcaption></figcaption></figure>

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><mark style="color:green;"><strong>Comprar</strong></mark></td><td><a href="https://www.microside.com/shop/x-trainer-pro-r4-pic16f877a-entrenador-85#attribute_values=2">https://www.microside.com/shop/x-trainer-pro-r4-pic16f877a-entrenador-85#attribute_values=2</a></td></tr><tr><td align="center"><mark style="color:green;"><strong>Prácticas</strong></mark></td><td><a href="https://docs.microside.com/practicas/compiladores#pic16f877a-pic16f887">https://docs.microside.com/practicas/compiladores#pic16f877a-pic16f887</a></td></tr></tbody></table>

**X-TRAINER PRO R4** es una tarjeta de desarrollo aprobada por [Microchip Technology®](https://www.microchip.com/) para proyectos electrónicos basados en microcontroladores PIC de 8 bits, posee el microcontrolador [**PIC16F877A**](https://www.microchip.com/en-us/product/PIC16F877A) con **bootloader integrado** que permitirá programarlo por USB sin necesidad de programadores externos.

Su diseño permite la programación, depuración e implementación de códigos, ideal para estudiantes y profesionales.

El zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm) te permitirá utilizar el catálogo de [Click boards™](https://www.mikroe.com/click) que cada vez se hace mayor. Sensores, módulos inalámbricos, transceptores, amplificadores de audio, pantallas LED y mucho más. Es la forma más sencilla de agregar máxima conectividad a tus proyectos. Además, incluye un conector [Qwiic® Connec](https://docs.microside.com/plataforma-xide/estandar-qwiic-r), expandiendo aún más tus posibilidades para integrar proyectos.

{% hint style="danger" %}
**¡ Advertencia !** El PIC16F877A es un microcontrolador con un voltaje de operación de 5V, el zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm) y el estándar [Qwiic® Connec](https://docs.microside.com/plataforma-xide/estandar-qwiic-r), utilizan niveles lógicos de 3.3V, realice la conversión de niveles de voltaje apropiado
{% endhint %}

**Incluye prácticas** compatibles con el compilador **PIC C COMPILER**.

### TABLA DE CONTENIDO

1. [Información](#i.-informacion)
2. [Descripción del hardware](#ii.-descripcion-del-hardware)
3. [Especificaciones](#iii.-especificaciones)
4. [Puerto de programación externa ICSP](#iv.-puerto-de-programacion-externa-icsp)
5. [Ejemplo de conexión](#v.-ejemplo-de-conexion)
6. [Programación de la tarjeta](#vi.-programacion-de-la-tarjeta)
   * [Instalación del software](#instalacion-del-software)
   * [Subir proyecto](#subir-proyecto)
7. [Prácticas](#vii.-practicas)
   * [PIC C Compiler CCS](https://docs.microside.com/practicas/pic-c-compiler-ccs/pic16f887-or-pic16f877a)
8. [Descargas](#viii.-descargas)
   * [Software de programación X-TRAINER Suite v1.0](https://docs.microside.com/tarjetas-de-desarrollo-pics/software-x-trainer-suite) para archivos .hex
   * [Esquemático](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FMpZWBPav5YRonn1MGZBc%2FESQUEMATICO%20X-TRAINER%20PRO%20R4%20PIC18.pdf?alt=media\&token=2bbc7448-b711-43ac-ab52-6d5b40b48cfe)
   * [Dimensiones](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F0DCnguAUYrBCYIm6X0yd%2FDimensiones%20del%20X-TRAINER%20PRO%20R4%20.PDF?alt=media\&token=439d8e5e-978b-474f-b006-32c88291cf00)

## I. Información

X-TRAINER PRO R4 cuenta con nuevas y mejores características en comparación de su predecesor, ahora incluye un zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm), el catálogo de [Click boards™](https://www.mikroe.com/click) te permitirá integrar proyectos ágilmente, el formato estándar te permite intercambiar rápidamente entre sensores, actuadores, pantallas y módulos de comunicación inalámbrica.

{% hint style="danger" %}
**¡ Advertencia !** El PIC16F877A es un microcontrolador con un voltaje de operación de 5V, antes de utilizar el zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm) revise el voltaje lógico del [Click Board™](https://www.mikroe.com/click-boards), de ser posible, configure el Click para funcionar a 5V. Nunca inserte tarjetas con voltaje lógico de 3.3V o podría dañarlas
{% endhint %}

Cuenta con un conector [Qwiic® Connec](https://docs.microside.com/plataforma-xide/estandar-qwiic-r), lo que expande la compatibilidad con periféricos aún más.

{% hint style="danger" %}
**¡ Advertencia !** El PIC16F877A es un microcontrolador con un voltaje de operación de 5V, el estándar [Qwiic® Connec](https://docs.microside.com/plataforma-xide/estandar-qwiic-r) utiliza niveles lógicos de 3.3V, antes de conectarlo a otros dispositivos realice la conversión de niveles lógicos apropiado
{% endhint %}

Dispone de un botón RESET, un LED indicador, un botón de propósito general, un puerto USB tipo C para comunicación o alimentación, un conector de alimentación externa de 7 a 15 V, un puerto ICSP para el uso de programadores externos y un selector de voltaje de alimentación del microcontrolador entre 3.3 o 5 V, el nuevo convertidor DC-DC otorga una corriente de hasta 3 A para el voltaje de 5V y hasta 1 A para el voltaje de 3.3V.

X-TRAINER PRO R4 se ofrece con un microcontrolador **PIC16F877A** precargado con **bootloader** para un uso inmediato a través del puerto USB sin necesidad de un programador externo.

{% hint style="danger" %}
**¡ Advertencia !** Si se programa un PIC16F877A que cuente con **bootloader** precargado por medio del puerto ICSP con un programador externo, se **borrará** el bootloader y será necesario adquirir un **nuevo PIC con bootloader**.
{% endhint %}

## II. Descripción del hardware

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2Fl9u19IKhcXH3n6nSLR4q%2FTarjeta%20de%20desarollo%20para%20microcontroladores%20PIC%20X-TRAINER%20PRO%20R4_v2_Indicadores_microside_%20PIC16F.webp?alt=media&#x26;token=f5365087-ec09-411b-bdf6-f81fe40dcbfb" alt=""><figcaption></figcaption></figure>

1. Conector de alimentación externa, rango de entrada entre 7 y 15 VDC
2. LED indicador de energía.
3. Puerto USB tipo C para alimentación de 5 VDC o comunicación USB
4. LED indicador de propósito general conectado al pin A4 o A1 (depende la configuración del jumper LED)
5. Jumper para asignar el LED integrado al pin A4 o A1 (asignado de fábrica al pin A1)
6. Jumper para asignar el botón BOOT al pin A2
7. Conectores estándar [mikroBUS™](https://www.mikroe.com/mikrobus)
8. Puerto de programación ICSP para conectar depuradores o programadores externos

{% hint style="danger" %}
**¡ Advertencia !** Si se programa un PIC16F877A que cuente con **bootloader** precargado por medio del puerto ICSP con un programador externo, se **borrará** el bootloader y será necesario adquirir un **nuevo PIC con bootloader**.
{% endhint %}

9. Header hembra y conector de 40 pines con puertos del PIC serigrafiados para su fácil identificación
10. RESET: Botón con resistencia de pull-up, conectado al pin RESET BOOT: Botón con resistencia de pull-up, conectado al pin A2
11. Convertidor USB a serial UART CH340C para utilizarse con PICs que no cuenten con comunicación USB nativa
12. Jumpers para utilizar el resonador integrado de 20 Mhz (habilitados de fábrica), configurar el zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm) y Jumpers para utilizar PICs que no cuenten con comunicación USB nativa
13. Base para microcontroladores PIC de 40 pines
14. Jumper selector de voltaje de alimentación al microcontrolador entre 3.3 o 5 V (asignado de fábrica a 5V)

{% hint style="danger" %}
**¡ Advertencia !** El PIC16F877A es un microcontrolador con un voltaje de operación de 5V, el microcontrolador no funcionará si selecciona el voltaje de 3.3V
{% endhint %}

15. Jumper para habilitar el puerto de comunicación USB (habilitado de fábrica)
16. Selector de modo USB <> UART: USB: conecta los pines del puerto USB tipo C a los pines del puerto de comunicación USB nativo del microcontrolador (Asignado de fábrica) UART: conecta los pines del puerto USB tipo C al convertidor CH340C para brindar comunicación USB a microcontroladores que no cuenten con ello.

{% hint style="danger" %}
El convertidor CH340 siempre está conectado a los pines **C6 y C7** del microcontrolador, y a los pines **TX y RX** del zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm), evite el uso del zócalo mientras el selector se encuentre en la posición **UART**.

**¡ Advertencia !** Al utiliza el PIC16F877A con **bootloader** deberá colocar el selector en la posición UART para habilitar la programación, evite el uso del zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm) durante el proceso de programación, hacerlo podría ocasionar problemas
{% endhint %}

17. Versión del hardware: R4

### Jumper pads

Un jumper pad o puente soldable es un mecanismo para realizar una conexión eléctrica semipermanente, un puente puede ser de tipo abierto/cerrado (16) o de selección (13), este último tiene 3 pads en lugar de 2, el pad central puede unirse con uno de los pads adyacentes para seleccionar entre 2 opciones diferentes.

En el caso de la X-TRAINER PRO R4 se utilizan para configurar el comportamiento de la tarjeta y ajustar la funcionalidad al microcontrolador insertado. El usuario dispone de 4 secciones con jumpers soldables, la configuración de fábrica es la más óptima, pero puede modificarla para conseguir un comportamiento especifico.

**Jumper pad: Vusb**

El jumper Vusb (16) permite acoplar el capacitor conectado al pin Vusb del microcontrolador, durante las comunicaciones USB es necesario este capacitor para asegurar la estabilidad del sistema. Este capacitor se encuentra conectado al pin C3 de los microcontroladores sin comunicación USB nativa.

{% hint style="danger" %}
**¡ Advertencia !** nunca debe desoldar este pin al hacer uso de microcontroladores con comunicación USB nativa, si el microcontrolador no cuenta con comunicación USB nativa y solo si encuentra anomalías al hacer uso del pin C3, desuelde este jumper pad.
{% endhint %}

**Jumper pad: Selección del oscilador**

Los puentes soldables a la derecha del oscilador de 20MHz (13) permiten acoplar/desacoplar este oscilador. Soldar el pad central con el pad en la posición 1, permite acoplar el oscilador integrado de 20MHz. Si está utilizando un PIC con **bootloader** ésta es la posición que debe seleccionar. Soldar el pad central con el pad en la posición 2 desacopla el oscilador y habilita los pines PA6 y PA7 en el header de 40 pines (10), esta configuración es útil para microcontroladores que cuenten con un oscilador interno, al permitir utilizar PA6 y PA7 como salidas/entradas adicionales.

**Jumper pad: C4-C5**

Localizados en la parte posterior de la tarjeta en la esquina inferior derecha (13), permiten acoplar los pines C4 y C5 del microcontrolador al selector USB (17) o al header de 40 pines (10). Soldar el pad central con el pad en la posición 1, permite acoplar los pines C4 y C5 al header de 40 pines (10), esta configuración es para los PIC que no cuenten con comunicación USB nativa, por lo que puede ocupar estos pines como entradas/salidas. Soldar el pad central con el pad en la posición 2, permite acopar los pines al **selector de modo USB <> UART** (17), esta configuración es para los PIC que cuenten con comunicación USB nativa, para poder comunicar el PIC con la computadora a través del puerto **USB tipo C** deberá a asegurase que el selector se encuentra en la posición **USB**.

Posición 1 configurada de fábrica.

**Jumper pad: mikroBUS-Qwiic**

Localizados en la parte posterior de la tarjeta en la esquina superior izquierda (13), permiten configurar los pines utilizados para las comunicaciones seriales (SPI, I2C), con el zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm) (SCL, SDA, SCK, MISO, MOSI), y con el conector [Qwiic® Connec](https://docs.microside.com/plataforma-xide/estandar-qwiic-r) (SDA, SCL).

El jumper pad izquierdo es la posición 2 y permite conectar los pines al puerto B, el jumper pad derecho es la posición 1 y permite conectar los pines al puerto C. El pad central está conectado al zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm) y al conector [Qwiic® Connec](https://docs.microside.com/plataforma-xide/estandar-qwiic-r). Al utilizar un microcontrolador diferente al [**PIC16F877A**](https://www.microchip.com/en-us/product/PIC16F877A), revise cuidadosamente la hoja de datos del microcontrolador y realice los cambios que sean necesarios para hacer uso de las comunicaciones seriales.

| Jumper pad Izquierdo | Pad Central | Jumper Pad Derecho |
| -------------------- | ----------- | ------------------ |
| Pin B1               | SCL         | Pin C3             |
| Pin B1               | SCK         | Pin C3             |
| Pin B0               | SDA         | Pin C4             |
| Pin B0               | MISO        | Pin C4             |
| Pin B3               | MOSI        | Pin C5             |

El [**PIC16F877A**](https://www.microchip.com/en-us/product/PIC16F877A)  solo cuenta con un periférico MSSP (Master Synchronous Serial Port), por lo que no puede usar I2C y SPI de manera simultánea.

## III. Especificaciones

|                                 |                                                                      |
| ------------------------------- | -------------------------------------------------------------------- |
| Microcontrolador incluido       | [**PIC16F877A**](https://www.microchip.com/en-us/product/PIC16F877A) |
| Microcontroladores compatibles  | PICs de 40 pines a 8 bits                                            |
| Voltaje de operación            | 5 VDC                                                                |
| Voltaje de alimentación externa | 7 - 15 VDC                                                           |
| Puerto de programación          | ICSP                                                                 |
| Tamaño                          | 101.68 x 57.78 x 20.64 mm                                            |

## IV. Puerto de programación externa ICSP

La siguiente imagen muestra el pinout del puerto de programación ICSP, la orientación se puede identificar gracias a la flecha en forma de triángulo que está localizada a un costado del puerto.

{% hint style="danger" %}
**Nota:** Si se usa un programador externo por medio del puerto ICSP se **borrará** el bootloader precargado y será necesario adquirir un nuevo [PIC](https://www.microside.com/shop/pic16f877a-i-p-microchip-con-bootloader-microside-73).
{% endhint %}

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F4h6iiPjcd7aqIEnOu6Qq%2FTarjeta%20de%20desarollo%20para%20microcontroladores%20PIC%20X-TRAINER%20PRO%20R4_v2_Pinout%20ICSP_microside.webp?alt=media&#x26;token=7d69a2b7-6b73-4b8f-a4f9-928946e1f7a9" alt=""><figcaption></figcaption></figure>

## V. Ejemplo de conexión

### Programación por medio del puerto USB

{% hint style="danger" %}
Solo si el PIC cuenta con un **bootloader** precargado.

**¡ Advertencia !** Al utiliza el PIC16F877A con **bootloader** deberá colocar el selector en la posición UART para habilitar la programación, evite el uso del zócalo [mikroBUS™](https://docs.microside.com/plataforma-xide/estandar-mikrobus-tm) durante el proceso de programación, hacerlo podría ocasionar problemas
{% endhint %}

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FNO7GQYRrKUlmWj3Yq1Wf%2FTarjeta%20de%20desarollo%20para%20microcontroladores%20PIC%20X-TRAINER%20PRO%20R4_v2_Programaci%C3%B3n%20USB_microside_%20PIC16F877A.webp?alt=media&#x26;token=4613d3f0-67ee-4c9f-bec5-aefc9243fc78" alt=""><figcaption></figcaption></figure>

### Programación por medio del puerto ICSP con un programador externo

<figure><img src="https://177299348-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FsaF734F0uNwArmWZPsBK%2FTarjeta%20de%20desarollo%20para%20microcontroladores%20PIC%20X-TRAINER%20PRO%20R4_Programador%20externo_microside_%20PIC16F.webp?alt=media&#x26;token=57f99650-cab5-47be-8414-bc815cd7fc78" alt=""><figcaption></figcaption></figure>

## VI. Programación de la tarjeta

Para cargar tu proyecto a la tarjeta **X-TRAINER PRO R4** con **PIC16F877A** se utiliza el Software **X-TRAINER Suite v1.0**.

{% hint style="success" %}
En el apartado Prácticas encontrarás un listado de ejemplos en diferentes compiladores compatibles con la tarjeta **X-TRAINER PRO R4**.
{% endhint %}

### Instalación del software

Si aún no cuentas con el Software **X-TRAINER Suite v1.0** instalado en tu computadora, en el siguiente [link](https://docs.microside.com/tarjetas-de-desarrollo/software-x-trainer-suite/instalacion) podrás encontrar los pasos para realizarlo.

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><mark style="color:green;"><strong>Instalación Software X-TRAINER Suite v1.0</strong></mark></td><td><a href="../../../software-x-trainer-suite/instalacion">instalacion</a></td></tr></tbody></table>

### Subir proyecto

Ejecuta el **Software X-TRAINER Suite v1.0** y realiza los pasos del siguiente [link](https://docs.microside.com/tarjetas-de-desarrollo/software-x-trainer-suite/pic16f877a-887).

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><mark style="color:green;"><strong>Programar con el Software X-TRAINER Suite v1.0</strong></mark></td><td><a href="../../../software-x-trainer-suite/pic16f877a-887">pic16f877a-887</a></td></tr></tbody></table>

## VII. Prácticas

{% hint style="success" %}
Prácticas compatibles con la tarjeta **X-TRAINER PRO R4** con **PIC16F877A**.
{% endhint %}

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><mark style="color:green;"><strong>PIC C Compiler CCS</strong></mark></td><td><a href="https://docs.microside.com/practicas/pic-c-compiler-ccs/pic16f887-or-pic16f877a">https://docs.microside.com/practicas/pic-c-compiler-ccs/pic16f887-or-pic16f877a</a></td></tr></tbody></table>

## VIII. Descargas

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><mark style="color:green;"><strong>Software X-TRAINER Suite v1.0</strong></mark></td><td><a href="../../../software-x-trainer-suite">software-x-trainer-suite</a></td></tr><tr><td align="center"><mark style="color:green;"><strong>Esquemático</strong></mark></td><td><a href="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FMpZWBPav5YRonn1MGZBc%2FESQUEMATICO%20X-TRAINER%20PRO%20R4%20PIC18.pdf?alt=media&#x26;token=2bbc7448-b711-43ac-ab52-6d5b40b48cfe">https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2FMpZWBPav5YRonn1MGZBc%2FESQUEMATICO%20X-TRAINER%20PRO%20R4%20PIC18.pdf?alt=media&#x26;token=2bbc7448-b711-43ac-ab52-6d5b40b48cfe</a></td></tr><tr><td align="center"><mark style="color:green;"><strong>Dimensiones</strong></mark></td><td><a href="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F0DCnguAUYrBCYIm6X0yd%2FDimensiones%20del%20X-TRAINER%20PRO%20R4%20.PDF?alt=media&#x26;token=439d8e5e-978b-474f-b006-32c88291cf00">https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbyV2zAlQAiqg46a3Lr8z%2Fuploads%2F0DCnguAUYrBCYIm6X0yd%2FDimensiones%20del%20X-TRAINER%20PRO%20R4%20.PDF?alt=media&#x26;token=439d8e5e-978b-474f-b006-32c88291cf00</a></td></tr></tbody></table>
