La plataforma NXP MCUXpresso Experiencia de Desarrollo MCXN947 (Parte 2)

Aqui mostraremos como se utiliza Micropython para obtener la digitalización del sistema ADC del
NXP MCUXpresso Experiencia de Desarrollo MCXN947

Para obtener la introduccion relevante a esta plataforma por favor refieraze al previo articulo. Primero, se procede a conectar el cable USB incluido entre la plataforma y la computadora con Linux y se procede a borrar el firmware existente de esta forma,


DigiKey_Coffee_Cup # LinkServer flash MCXN947:FRDM-MCXN947 erase

INFO: Exact match for MCXN947:FRDM-MCXN947 found
INFO: Selected device MCXN947:FRDM-MCXN947
INFO: Selected probe #1 MB52CKWLSWQZA (MCU-LINK FRDM-MCXN947 (r0E7) CMSIS-DAP V3.172)
INFO: MCU-Link firmware update `check`: Probe ([MB52CKWLSWQZA] [MCU-LINK FRDM-MCXN947 (r0E7) CMSIS-DAP V3.172]) is already running the same firmware version as the included firmware version [3.172]
.,..
....

Luego se instala el firmware de Micropython en la plataforma,

DigiKey_Coffee_Cup # LinkSerLinkServer flash MCXN947:FRDM-MCXN947 load firmware.bin --addr 0

INFO: Exact match for MCXN947:FRDM-MCXN947 found
INFO: Selected device MCXN947:FRDM-MCXN947
INFO: Selected probe #1 MB52CKWLSWQZA (MCU-LINK FRDM-MCXN947 (r0E7) CMSIS-DAP V3.172)
INFO: MCU-Link firmware update `check`: Probe ([MB52CKWLSWQZA] [MCU-LINK FRDM-MCXN947 (r0E7) CMSIS-DAP V3.172]) is already running the same firmware version as the included firmware version [3.172]


...
...

Para demostrar el funcionamiento basico de uno de los ADC, estamos presentando el siguiente codigo main.py que simplemente muestrea cada valor del ADC lentamente cada segundo,

#DigiKey_Coffee_Cup
#Este programa creado en DigiKey obtiene un valor de 16 bits del ADC cada segundo
from machine import ADC
from machine import Pin
import time

# crea una entrada del adc desde J4-PIN1 (CON2x6)
p0 = Pin('P4_12')
adc = ADC(p0)

while(1):
        val = adc.read_u16()  # Lea un valor en el rango de 0-65535 (0-3.3V)
        print("DigiKey_Coffee_Cup")
        print(val)
        time.sleep_ms(1000)

Para cargar este programita sencillo que lo denominamos main.py en su plataforma use el RSHELL como se muestra a continuacion, (Recuerde bien importante que tiene que ser denominado main.py por “default” de lo contrario puede pasar horas sin saber porque no funciona. Tambien recuerde oprimir Control-D luego de copiarlo a la plataforma)

DigiKey_Coffee_Cup# rshell -p /dev/ttyACM0
Using buffer-size of 32
Connecting to /dev/ttyACM0 (buffer-size 32)...
Trying to connect to REPL  connected
Retrieving sysname ... unknown
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... 
Setting time ... Jul 28, 2026 10:17:00
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 2000
Welcome to rshell. Use Control-D (or the exit command) to exit rshell.

Ahora se procede a copiar el programa main.py a la plataforma,

DigiKey_Coffee_Cup# cp main.py /pyboard/

Copying 'main.py' to '/pyboard/main.py' ...


Tambien recuerde oprimir Control-D luego de copiarlo a la plataforma. Conecte un cable (jumper) desde el terminal (header) J4 Pin 1 hasta el J3 Pin 4 (3.3V Ref)

Abra un terminal de minicom para observar el funcionamiento de ADC,

Welcome to minicom 2.10

OPTIONS: I18n 
Port /dev/ttyACM0, 10:18:59 [U]

Press CTRL-A Z for help on special keys

DigiKey_Coffee_Cup
65509
DigiKey_Coffee_Cup
65525
DigiKey_Coffee_Cup
65472
DigiKey_Coffee_Cup
65535
DigiKey_Coffee_Cup
65533
DigiKey_Coffee_Cup
65469
DigiKey_Coffee_Cup
65535
...
...

Si esto ocurre, el ADC esta correctamente mostrando el valor de 3.3V de referencia usado en este caso. Ahora proceda a conectar el J4 Pin 1 que es la entrada al ADC hasta el J3 Pin 14 (Gnd). Ahora se ve el valor correspondiente obtenido por el ADC bajo estas condiciones,

Welcome to minicom 2.10

OPTIONS: I18n 
Port /dev/ttyACM0, 10:18:59 [U]

Press CTRL-A Z for help on special keys

DigiKey_Coffee_Cup
2
DigiKey_Coffee_Cup
12
DigiKey_Coffee_Cup
22
DigiKey_Coffee_Cup
54
DigiKey_Coffee_Cup
1
DigiKey_Coffee_Cup
43
DigiKey_Coffee_Cup
0
DigiKey_Coffee_Cup
0                                                                                                                           
DigiKey_Coffee_Cup                                                                                                          
0                                                                                                                           
DigiKey_Coffee_Cup                                                                                                          
45                  
...
...

Obviamente no sera exactamente igual a cero siempre, pero dependiendo del cable usado (su longitud, etc) hay ruido muestreado en el ADC. Un valor intermedio se obtiene bajo condiciones de circuito “abierto” con el cable,

Welcome to minicom 2.10

OPTIONS: I18n 
Port /dev/ttyACM0, 10:18:59 [U]

Press CTRL-A Z for help on special keys

DigiKey_Coffee_Cup                                                                                                          
7839                                                                                                                        
DigiKey_Coffee_Cup                                                                                                          
2069                                                                                                                        
DigiKey_Coffee_Cup                                                                                                          
1791                                                                                                                        
DigiKey_Coffee_Cup                                                                                                          
4763                                                                                                                        
DigiKey_Coffee_Cup                                                                                                          
13452                                                                                                                       
DigiKey_Coffee_Cup                                                                                                          
24773                                                                                                                       
DigiKey_Coffee_Cup                                                                                                          
31663                                                                                                                       
DigiKey_Coffee_Cup                                                                                                          
32543                                                                                                                       
DigiKey_Coffee_Cup                                                                                                          
26707  
...
...

Hemos concluido con el presente demo del ADC usando Micropython en la plataforma NXP MCUXpresso Experiencia de Desarrollo MCXN947 la cual es de bajo costo, muy versatil y esta disponible en DigiKey.

Que tenga un buen dia.

1 Like