Tag Archives: UART

ทดลอง LPC800 Mini-Kit

เมื่อได้ LPC800 Mini-Kit มาฟรีๆ ก็ขอทดลองและแสดงให้ดูเป็นตัวอย่างจะได้คุ้มค่าที่อุตสาห์ส่งมาให้ ก็ขอทดลองเบื้องต้นก่อนว่า มันใช้ได้จริงๆ ก่อนนะครับ โดยทำตามอย่างที่แนะนำใน http://lpcware.com/lpc800-mini-kit

ก็ต้องต่อ LPC800 กับตัวแปลง USB to UART ที่ทำหน้าที่เชื่อมต่อ serial port UART ของ LPC800 เข้ากับ USB ของคอมพิวเตอร์ ซึ่งถ้าจะให้มันเจอ USB to UART ก็ต้องติดตั้ง driver ก่อน ของผมใช้ชิป CP2102 ก็ไปหา driver ของมันมาติดตั้ง จากนั้นก็ต่อ CP2102 กับ LPC800 ตามนี้ครับ (ชื่อขาตามที่พิมพ์บนแผ่นวงจรของพวกมัน)

LPC TxD <--> CP210x  RXD
LPC RxD <--> CP210x  TXD
LPC GND <--> CP210x  GND

สำหรับไฟเลี้ยงของ LPC800 ผมจะใช้ charger 5 โวลต์ ต่อไปที่ช่อง mini USB ของมันจากก็ไป download โปรแกรม Flash Magic มาใช้งานเพื่อใช้ burn หรืออัดโปรแกรมลง LPC800 เมื่อติดตั้งมันเสร็จแล้วเปิดโปรแกรมนี้ขึ้นมา ก็ตั้งค่าหมายเลข COM Port ตามที่ได้รับตอนที่ลง driver นะครับ ของผมได้หมายเลข COM8 หรือถ้าไม่รู้ว่าหมายเลขไหนก็เรียกโปรแกรม compmgmt.msc แล้วดูที่ device manager ตรงที่ Ports ว่าได้หมายเลขไหน ค่าอื่นๆ ก็มี Baud Rate ให้เลือก 115200 ส่วน Interface เป็น None (ISP) และ Oscillator (MHz) กรอกค่า 12

lpc800-mini-kit-001

จากนั้นที่ LPC800 ที่ต่อทั้งไฟเลี้ยงและ USB to UART แล้ว ก็กดปุ่ม ISP ค้างไว้ แล้วกด RESET จะเป็นการกำหนดให้ LPC800 เข้าสู่ mode รับการ burn โปรแกรม แต่ก่อนที่จะ burn จริง ตรวจการเชื่อมต่อก่อนครับ ไปที่เมนู ISP เลือก Read Device Signature รอสักพัก ควรจะมี dialog แสดงรายละเอียดของ LPC800 ซึ่งแปลว่าเชื่อมต่อถ่ายโอนข้อมูลกันได้ครับ

lpc800-mini-kit-002

ขอปิดๆ Serial Number หน่อยนะครับ จากนั้นก็ไป download ที่จะ burn ลง LPC800  LPC810_HelloWorld_UART0_115K.hex ซึ่งคอมไพล์ไว้แล้วและแปลงเป็นไฟล์ hex แล้ว ก็ใส่ตำแหน่งของไฟล์นี้ในช่อง Hex File และติ๊กตรง Erase blocks used by hex File และ Verify after programming จากนั้นก็กด start เพื่อ burn โปรแกรมลง LPC800 ครับ

lpc800-mini-kit-003

เมื่อเสร็จแล้ว ก็จะมีคำว่า Finished ครับ

lpc800-mini-kit-004

ให้เรากด RESET ที่ LPC800 เพื่อเริ่มใช้งานโปรแกรมให้ที่เรา burn ลงไป โดยโปรแกรมนี้ จะทำการพ่นคำว่า Hello, LPC800! ออกมาทาง serial port UART ของมันเองอยู่เรื่อยๆ ถ้าใช้โปรแกรมที่ต่อกับ serial port ได้ไปดู เช่น PuTTY ก็จะเห็นผลครับ

lpc800-mini-kit-005

แล้วก็ไปอ่านเจอจาก http://www.cnx-software.com/2013/08/16/mcu-energy-efficiency-benchmark-freescale-kl02-microchip-pic24-ti-msp430-and-stmicro-stm32l/ ว่ามีการทดสอบ Cortex-M0+ ของ Freescale กับไมโครคอนโทรลเลอร์อื่น ซึ่งค่อนข้างแน่ชัดว่า Cortex-M0+ กินไฟต่ำอยู่แล้ว อันที่จริง Freescale น่าทดสอบเปรียบเทียบกับ Cortex-M0+ ของเจ้าอื่น เช่น LPC800 ของ NXP จะได้ยุติธรรมหน่อย

Advertisements

Using MOD-RFID1356 in Serial Mode by Python

This continues from previous post. Now I write small Python script that uses serial port by pySerial library. Installation pySerial on Raspberry Pi just using command

pip install  pyserial

Script continues to read from /dev/ttyACM0 device that is connected with MOD-RFID1356. Be careful punctuation in Python. Please read PEP8 first.

import serial

ser = serial.Serial('/dev/ttyACM0', 9600, timeout=0)
while True:
    line = ser.readline()
    if (line):
        print (line)

or get this script from http://pastebin.com/5X9Dpkx0

 

Unboxing MOD-RFID1356 from Olimex

I received MOD-RFID1356 RFID reader device as a prize for winning a quiz by Olimex from Bulgaria who organizes on-line quiz every (mostly) Friday (Another winner before me is CNXSoft that might be from Thailand like me). I also received two RFID tags (card and key chain) along with device in order that I could conduct experiment.

To compare size after unboxing.

MOD-RFID1356 contains one USB connector, one press button and two LEDs. Firstly, I connect it to my Fedora Linux laptop and use command “lsusb”. It displays as USB HID device (keyboard) profile. Yellow LED also brightens to indicate power on.

olimex-mod-rfid-001-lsusb-before-and-after

When I take tag approximate to MOD-RFID1356 device. It emulates itself as keyboard. Characters are pressed and end with enter to Linux shell. Another red LED brightens while tag coming close to device too.

olimex-mod-rfid-002

And next experiment. To connect to Raspberry Pi. I usually use it as headless board connecting via Wi-Fi and use SSH (from the same Fedora Linux laptop). I connect Wi-Fi dongle and MOD-RFID1356 device to Raspberry Pi in the same time. It seems some Wi-Fi dongle consumes power too much and I can’t login to Raspberry Pi but I’m not be encountered that problem when use Ralink RT5370 dongle.

olimex-mod-rfid-raspberry-pi-003

I use dmesg command in order to ensure that MOD-RFID1356 device is found properly.

olimex-mod-rfid-003-raspberry-pi

When press button for approximately two seconds, it is changed to serial mode and yellow LED blinks in order to indicate that changing to serial mode. You could see ttyACM0 from dmesg command again.

olimex-mod-rfid-004-after-pressing-buttom-for-two-seconds-rpi

Then I use Minicom in order to connect MOD-RFID1356 device via /dev/ttyACM0 (serial communication on USB) of Raspberry Pi. Using command “minicom -b 9600 -o -D /dev/ttyACM1”. When tag comes close to device, Minicom displays characters from serial on USB from tag.

olimex-mod-rfid-005-rpi-minicom

I can communicate to MOD-RFID1356. It can display help for commands. When I press button for few seconds, it is changed back to HID mode again and also red LED blinks.

olimex-mod-rfid-006-help

To Be Continued.