Percobaan Software Diagnostic pada Nu-LB-NUC140

Pada tulisan ini diuraikan ujicoba software diagnostic dari BSP (Board Support Packages).

Percobaan di bawah ini menggunakan BSP terbaru: NUC100Series BSP_CMSIS V1.05.001.zip [1]

Project file yang digunakan didapat di direktori berikut: NUC100SeriesBSP_v1.05.001\NuvotonPlatform_Keil\Sample\Diagnostic

DevBoardDemo

  • Output ke UART
  • Demo kecepatan prosesor
  • Jika ada pin SW_INT ditekan, ditampilkan di LED RGB
  • Jika ada pin SW_INT ditekan, akan ada pergeseran frekuensi buzzer.
  • mustinya ada output ke buzzer, namun di software disebut buzzer di GPB12, padahal sesungguhnya ada di GPB11
Diagnostic pada Nuvoton NU-LB-NUC140
Diagnostic pada Nuvoton NU-LB-NUC140

Smpl_DataFlash

  • Demo penggunaan APROM sebagai Data Flash
  • Input output ke UART
Dataflash
Dataflash

Smpl_PowerManagement

  • Demo power down mode
  • interface ke UART
Powerdown pada NU-LB-NUC140
Powerdown pada NU-LB-NUC140

Referensi

Percobaan Software Sample dari Nu-LB-NUC140

Pada tulisan ini diuraikan ujicoba software sample dari BSP (Board Support Packages).

Percobaan di bawah ini menggunakan BSP terbaru: NUC100Series BSP_CMSIS V1.05.001.zip [1]

Project file yang digunakan didapat di direktori berikut: NUC100SeriesBSP_v1.05.001\NuvotonPlatform_Keil\Sample\NUC1xx-LB_002

 

Smpl_ADC_PWM

  • Test ADC dengan input dari potensiometer
  • Test PWM dengan output RGB LED

Hasil:

  • Posisi potensio menghasilkan tegangan analog yang diukur oleh mikrokontroler
  • Angka hasil pengukuran ditampilkan di LCD
  • RGB LED menyala dengan PWM, menghasilkan kecerahan sesuai dengan posisi potensiometer
Demo ADC PWM NU-LB-NUC140 Nuvoton
Demo ADC PWM NUC140

 

Smpl_CDROM_HID

  • Memunculkan sebuah device USB CDROM di windows
  • Dapat melakukan pengiriman data ke flash di board melalui aplikasi “HID AP.exe” di direktori \NUC100SeriesBSP_v1.05.001\NuvotonPlatform_Keil\Sample\NUC1xx-LB_002\Smpl_CDROM_HID\Software GUI\Release

Smpl_Capture

  • Nampaknya percobaan Capture Timer
  • Tidak jelas juga apa yang dikerjakan, karena variabel “CaptureValue” selalu bernilai 0

Smpl_FATFS_SDCard

  • Akses ke FAT file system di SD Card
  • Termasuk fungsi melakukan formatting

Smpl_FMC

  • Akses ke Flash Memory Controller
  • Literatur detail ada di Training File: “07_NuMicro FMC.pdf”

Smpl_HID_FILE_IO

  • Belum dicoba

Smpl_HID_IO

  • Belum dicoba

Smpl_I2C_24LC64

  • Input dari keypad onboard (K1 ~ K9)
  • Akses ke on board EEPROM (24LC64)
  • Demo menulis ke EEPROM dengan fungsi Write_24LC64() dan membacanya dengan fungsi Read_24LC64()
  • Penjelasan ada di Training Material “06_NuMicro I2C.pdf”
  • Application Note: “AN1009EN How to access 24C64 via IIC V1.00.pdf”

Smpl_Interrupt

  • Demo interupsi dari switch SW_INT dan Deep Sleep (PWCON)
  • Output ke UART

Smpl_LIN_Master

  • Belum dicoba. Nampaknya sulit dicoba karena memerlukan 2 buah prosesor yang mempunyai LIN interface

Smpl_LIN_Slave

  • Belum dicoba. Nampaknya sulit dicoba karena memerlukan 2 buah prosesor yang mempunyai LIN interface

Smpl_NAU7802

  • Nampaknya tidak kompatibel dengan board NU-LB-NUC140 rev 2.1, karena tidak ada ADC NAU7802 . Kemungkinan ADC ini ada di revisi sebelumnya.
  • Penjelasan mengenai NAU7802: [2]
Demo NAU7802 Nuvoton NU-LB-NUC140
Demo NAU7802 Nuvoton NU-LB-NUC140

Smpl_SPI_Flash_PDMA

  • Demo akses Flash menggunakan PDMA
Demo flash PDMA Nuvoton NU-LB-NUC140
Demo flash PDMA Nuvoton NU-LB-NUC140

 

Smpl_SPI_Flashx2

  • Demo fitur SPI Flash
Demo Flash 2x Nuvoton NU-LB-NUC140
Demo Flash 2x Nuvoton NU-LB-NUC140

Smpl_Start_Kit

Software ini berisi contoh akses periferal berikut:

  • LED 7 segment
  • LCD (tanpa backlight)
  • LED 5 ~ LED 8
  • Timer auto reload

Hasil percobaan & catatan penting

  • Software ini menyalakan LCD graphic dan LED 7 segment
  • LED 7 segment menyala bergantian dengan delay software, bukan timer
  • Untuk menyalakan backlight LCD dapat dilakukan dengan mengubah GPD14 menjadi 0
  • LED5 ~ LED8 diaktifkan oleh interupsi timer
  • LED5 ~ LED8 tidak terdapat di skematik. Keterangan tentang LED ini hanya ada di file “Nu-LB-NUC140 User’s Guide v2.0.pdf” pada halaman 8. Menurut tabel di tersebut, LED5 ~ LED8 dikendalikan oleh pin GPIO GPC12 ~ GPC15. Hal ini sesuai dengan kode di software.

Berikut ini kode untuk menyalakan backlight LCD:

DrvGPIO_ClrBit(E_GPD,14);

Berikut ini kode untuk mematikan backlight LCD:

DrvGPIO_SetBit(E_GPD,14);

Berikut ini kode untuk menyalakan Buzzer:

DrvGPIO_ClrBit(E_GPB,11);

Berikut ini kode untuk mematikan Buzzer:

DrvGPIO_SetBit(E_GPB,11);

Demo sample starter kit Nuvoton NU-LB-NUC140
Demo sample starter kit Nuvoton NU-LB-NUC140

Smpl_Timer_WDT_RTC

  • Demonstrasi penggunaan Watch Dog Timer dan Real Time Clock
  • Teorinya bisa dibaca di “04_NuMicro WDT_Timer_RTC_UART.pdf”
  • Application note WDT: “AN1005EN How to use WDT V1.01.pdf”
  • Application note RTC: “AN1013SC How to use RTC.pdf” in Simplified Chinese ðŸ™‚
Demo watchdog timer, realtime clock Nuvoton NU-LB-NUC140
Demo watchdog timer, realtime clock Nuvoton NU-LB-NUC140

 

Smpl_UAC

  • Aplikasi ini memunculkan sebuah USB Audio Device di desktop PC.
  • Belum jelas bagaimana cara mengaksesnya dari windows.
Tampilan device manager di windows
Tampilan device manager di windows

 

Smpl_UDC_SDCard

  • Aplikasi ini membuat sebuah USB Disk. Untuk itu memerlukan sebuah memory tipe SD yang dimasukkan ke slot SD di bagian bawah board
  • Cara kerja software ini dijelaskan di Application Note “AN1020EN_USB MassStorage V1.00.pdf”. Detail tentang USB dijelaskan di “NuMicro NUC100 Series Driver Reference Guide.pdf”

Hasil percobaan:

  • jika ada SD card maka akan muncul pesan di PC
  • file-file di SD Card dapat dibaca dari PC.
  • Software ini menyalakan LEDS1 yang nampaknya adalah LED indikator bahwa SD card mendapat catu daya. Rangkaian LEDS1 dapat dilihat di file “Nu-LB-NUC140 Board Schematic v2.0.pdf” bagian SD Interface.

Smpl_VCOM_IO

  • Program ini nampaknya membuat sebuah port serial virtual di PC melalui port USB.
  • Penjelasan mengenai VCOM ada di file “Training/12_NuMicro VCOM.pdf”
  • Hasil pencarian google menunjukkan referensi ke forum di http://bbs.21ic.com/redirect.php?tid=204413&goto=lastpost
  • Virtual USB COM dideteksi oleh Windows, namun tidak ada drivernya

Hasil Percobaan:

  • tidak jalan karena driver tidak tersedia

Nuvoton Learning Board Nu-LB-NUC140

Nuvoton NUC140
Nuvoton Nu-LB-NUC140

Power Supply

Board ini menggunakan power supply 5V, yang dapat diperoleh dari konektor USB ataupun melalui konektor power supply. Tegangan ini langsung menjadi VDD untuk chip NUC140, sehingga perlu diperhatikan tegangan input ini maksimal adalah 5.5V (menurut datasheet NUC140).

Pada board terdapat juga regulator supply 3.3V menggunakan chip LM1117 [1]. Tipe chip regulator ini tidak dinyatakan dalam skematik.

Tegangan dari Powerjack 3 pin dan konektor USB dilewatkan melalui dioda sehingga aman dari kesalahan polaritas pemasangan, namun tidak melindungi dari kerusakan jika tegangan masuk melebihi 5.5V.

Pada skematik power supply ada komponen JP3 yang tidak jelas keberadaannya

Periferal On Board

Pada board ini sudah terdapat berbagai periferal on-board

SPI Flash

Ada 2 buah SPI Flash tipe W25X16VSSIG buatan WinBond. Kode di skematik USPI3 dan U3

  • Penjelasan singkat [2]
  • Datasheet [3]
  • Datasheet [4]

I2C EEPROM

Ada 1 buah EEPROM dari tipe 24LC64

  • Penjelasan singkat [5]
  • Datasheet [6]

LCD

LCD menggunakan interface SPI. Software untuk mengaksesnya ada di contoh [7].

Backlight dikendalikan oleh GPD14

LED 7 Segment

LED 7 segmen dikendalikan secara multiplex. Software untuk mengaksesnya sudah ada di contoh.

Port Serial

Prosesor NUC140 memiliki 3 port serial, namun pada board ini hanya 1 port serial yang sudah disambung dengan konektor DB9. Konektor menggunakan DB9 male, sehingga untuk dihubungkan ke PC memerlukan kabel serial tipe female-female. Berbeda dengan board LPC-L2294 yang menggunakan konektor DB9 female, namun serupa dengan TS-7260 yang menggunakan konektor DB9 male.

Skema kabel konektor serial:

DB9 female <-> DB9 female
pin 2 <-> pin 2
pin 3 <-> pin 3
pin 5 <-> pin 5

Buzzer

Buzzer mempunyai frekuensi fix 2400 Hz Dapat dinyalakan dengan pin GPB11 (active low)

Berikut ini kode untuk menyalakan Buzzer:

DrvGPIO_ClrBit(E_GPB,11);

Berikut ini kode untuk mematikan Buzzer:

DrvGPIO_SetBit(E_GPB,11);

Potensiometer

Potensiometer dipakai sebagai input analog untuk ADC pada pin GPA7

Tombol Reset

Berfungsi mereset mikroprosesor

Tombol Interupsi

Tombol SW_INT memberikan interupsi jika ditekan. Contoh penggunaan ada di Percobaan Software Sample dari Nu-LB-NUC140

Codec WAU8822

Codec WAU8822 berfungsi menjalankan input output analog

  • Informasi tentang chip ini [1]
  • Datasheet File: “WAU8822 Data Sheet rev 0.86.pdf” WAU8822_Data_Sheet_rev_0.86
  • Codec WAU8822 terhubung ke prosesor dengan protokol I2S [2]
  • Petunjuk penggunaan ada di file Training “AN1015EN How to use I2S with CODEC V1.00.pdf” [3]

 

Daftar Konektor

Berikut ini daftar konektor pada board

  • ICE_USB: konektor USB sebagai ICE (In Circuit Emulator)
  • CON5: konektor power 5V
  • J3: USB ke prosesor
  • CON3: sinyal SPL+ dan SPL- ke chip audio codec WAU8822
  • LIN-CAN
  • GND
  • VCC : tegangan VCC 3.3V
  • VCC5 : tegangan 5V dari port USB (terukur 4.68 V)
  • VCC33 : tegangan VCC 3.3V
  • PS1 : output ke PS2 keyboard. Terhubung langsung ke pin PS2 di mikroprosesor NUC140. Detail interkoneksi ada di “NUC130_140 Technical Reference Manual EN V2.00.pdf”

Alokasi Pin Mikroprosesor

Percobaan

Beberapa percobaan yang telah dilakukan dengan board ini

Online Resources

  • Membeli board online [8]
  • Application Notes [9]
  • Nuvoton Product Page [10]
  • Schematic [11]
  • Device Driver and Support Library [12] Board Support Package terakhir adalah NUC100Series BSP_CMSIS V1.05.001.zip
  • Official Forum [13]
  • Development tools dari CooCox [14]. Di DVD Nuvoton yang baru sudah disertakan Coocox tersebut.
  • Datasheet Audio Codec WAU8822 [15]
  • Forum diskusi resmi Nuvoton http://www.nuvoton-m0.com/

Instalasi Arduino Untuk NuEdu-UNO

Board NuEdu-UNO di paketnya tidak dilengkapi dengan manual yang lengkap. Setelah lihat-lihat sana sini dan tanya-tanya sana-sini, berikut ini kesimpulan saya tentang instalasi Arduino dan pengujian board NuEdu.

Berikut ini tahap-tahap instalasi Arduino untuk NuEdu-UNO:

#1 Download Arduino for Windows versi 1.5.8 dari http://www.arduino.cc/en/Main/OldSoftwareReleases

#2 Install software Arduino for Windows versi 1.5.8

#3 Download NuMicro_Patch_For_Arduino1.5.8 dari http://sourceforge.net/projects/numicroedu/files/Tools/.

#4 Jalankan NuMicro_Patch_For_Arduino1.5.8.exe. Software ini akan meminta direktori instalasi Arduino, umumnya di C:\Program Files (x86)\Arduino. Software ini akan menambahkan board NuEdu ke daftar board Arduino.

#5 Download software ICP untuk NuMicro dari http://sourceforge.net/projects/numicroedu/files/Tools/. Pada saat tulisan ini dibuat, versi terbaru ICP adalah NuMicro_ICP_Programming_Tool_1.29.6425.zip.

#6 Unzip file ICP NuMicro_ICP_Programming_Tool_1.29.6425.zip tersebut.

#7 Jalankan installer ICP yaitu NuMicro ICP Programming Tool 1.29.6425.exe . Install driver-driver USB yang diperlukan.

#8 Sambungkan board NuEdu-UNO dengan kabel mini-USB. Windows akan melakukan proses deteksi USB.

#9 Jalankan software ICP tersebut. Cara mudahnya pada Windows 7 adalah mengetik ‘icp’ di Start Menu. Nama softwarenya adalah ‘NuMicro ICP Programming Tool’.

NuMicro ICP Programming Tool 1.29
NuMicro ICP Programming Tool 1.29

#10 Pilih NUC100 Series sebagai target chip, kemudian klik ‘Continue’.

#11 Klik ‘Connect’ jika belum tersambung.

ICP belum tersambung ke NuEDU
ICP belum tersambung ke NuEDU

#12 Jika muncul string ‘Chip Connected with Nu-Link (ID: xxxxxx)’ maka artinya software ICP sudah terhubung dengan baik ke board NuEdu. Dalam kasus saya, ICP tidak dapat langsung terhubung, namun ICP meminta untuk melakukan proses upgrade firmware NuLink di board NuEdu. Saya konfirmasi untuk melakukan proses upgrade firmware. Setelah proses upgrade firmware ini selesai, barulah muncul string ‘Chip Connected with Nu-Link (ID: xxxxxx)’.

ICP sudah tersambung ke NuEDU
ICP sudah tersambung ke NuEDU

#13 Pada tahap ini Arduino dan ICP sudah siap untuk dipakai. Selanjutnya adalah mencoba software dari Arduino.

Percobaan Arduino

#1. Cek port berapakah yang terhubung ke NuEdu. Caranya adalah dengan menjalankan Device Manager di Windows. Carilah ‘Nuvoton Virtual Com Port (COMxx)’.

#2. Jalankan Arduino. Jika terhubung ke internet, kadang-kadang Arduino akan memberitahu ada versi baru Arduino. Abaikan saja, karena patch NuEdu hanya berfungsi pada Arduino 1.5.8

Device Manager Windows 7
Device Manager Windows 7

#3. Ubahlah setting port pada Arduino sesuai dengan Nuvoton Virtual Com Port yang terdeteksi.

Setting port serial di Arduino
Setting port serial di Arduino

#4. Pilihlah board NuEdu-UNO

Memilih board NuEdu UNO
Memilih board NuEdu UNO

#5. Siap untuk menjalankan Arduino seperti biasa. Untuk mencoba, pilihlah ‘File -> Examples -> 01.Basics -> Blink’.

Memilih contoh program Blink
Memilih contoh program Blink

#6. Compile dan upload. Status upload akan muncul di bagian bawah

Status upload software NuEdu-UNO
Status upload software NuEdu-UNO

#7. Setelah software diupload kemungkinan software belum langsung jalan. Tekan tombol reset pada board NuEDU untuk mulai menjalankan software. Fitur ini berbeda dengan Arduino berbasis ATMega yang biasa saya pakai, yang umumnya langsung reset sendiri setelah softwarenya diupload.

Tombol reset pada NuEdu
Tombol reset pada NuEdu

#7. Cek apakah LED pada board berkedip. Jika LED berkedip artinya software berjalan baik.

Referensi:

Alokasi Pin GPIO pada Learning Board NU-LB-NUC140

Watchdogtimer-realtimeclock-IMG_9617

Alokasi PIN GPIO adalah sebagai berikut:

Pin Function
GPA0 Key Matrix
GPA1 Key Matrix
GPA2 Key Matrix
GPA3 Key Matrix
GPA4 Key Matrix
GPA5 Key Matrix
GPA6
GPA7 ADC Interface ke potensiometer on board
GPA8 I2C0 SDA ke codec
GPA9 I2C0 SCL ke codec
GPA10 I2C1 SDA ke EEPROM
GPA11 I2C1 SCL ke EEPROM
GPA12 RGB LED
GPA13 RGB LED
GPA14 RGB LED
GPA15 I2SMCLK ke codec
GPB0 UART0 Rx
GPB1 UART0 Tx
GPB2
GPB3
GPB4 UART1 Rx ke LIN
GPB5 UART1 Tx ke LIN
GPB6 LIN transceiver wakeup function
GPB7 LIN transceiver Enable Disable
GPB8
GPB9
GPB10
GPB11 Buzzer on board
GPB12 CAN transceiver speed
GPB13 CAN transceiver speed
GPB14
GPB15 INT0, disambung ke SW_INT
GPC0 I2SLRCLK ke Codec
GPC1 I2SBCLK ke codec
GPC2 I2SDI ke codec
GPC3 I2SDO ke codec
GPC4 LED 7 Segment Column
GPC5 LED 7 Segment Column
GPC6 LED 7 Segment Column
GPC7 LED 7 Segment Column
GPC8 SD interface ke SD Card Interface
GPC9 SD interface ke SD Card Interface
GPC10 SD interface ke SD Card Interface
GPC11 SD interface ke SD Card Interface
GPC12 LED ke (LED5~8)
GPC13 LED ke (LED5~8)
GPC14 LED ke (LED5~8)
GPC15 LED ke (LED5~8)
GPD0 SPI2 ke Flash
GPD1 SPI2 ke Flash
GPD2 SPI2 ke Flash
GPD3 SPI2 ke Flash
GPD4 SPI2 ke Flash
GPD5 SPI2 ke Flash
GPD6 CAN0 Rx ke modul CAN
GPD7 CAN0 Tx ke modul CAN
GPD8 SPI3 ke LCD Panel
GPD9 SPI3 ke LCD Panel
GPD10 SPI3 ke LCD Panel
GPD11 SPI3 ke LCD Panel
GPD12 SD power ke SD Card Interface
GPD13 SD detect ke SD Card Interface
GPD14 Backlight LCD Panel
GPD15
GPE0 LED 7 Segment ROW
GPE1 LED 7 Segment ROW
GPE2 LED 7 Segment ROW
GPE3 LED 7 Segment ROW
GPE4 LED 7 Segment ROW
GPE5 LED 7 Segment ROW
GPE6 LED 7 Segment ROW
GPE7 LED 7 Segment ROW
GPE8
GPE9
GPE10
GPE11
GPE12
GPE13
GPE14 Line out Enable/Disable ke codec
GPE15 Line in plug in/out detect ke codec

Selain pin GPIO, pada learning board tersebut ada juga pin lain sebagai berikut:

  • PS2DAT ke konektor PS1
  • PS2CLK ke konektor PS1
  • ICEDAT ke modul In Circuit Emulator
  • ICECLK ke modul In Circuit Emulator