Skip to content

board_firewing

Serge Vakulenko edited this page Aug 26, 2015 · 2 revisions

Firewing board (schematics, description) is an Arduino-compatible development platform, based around a Microchip family of pin-compatible 8-bit, 16-bit and 32-bit microcontrollers. Here, I use Microchip PIC32MX1

  • a 32-bit microcontroller with MIPS architecture.

Features:

  • Microcontroller PIC32MX150F128B clocked at 40 MHz (MIPS architecture)
  • 28-pin DIP package
  • 21 general purpose i/o signals
  • Arduino compatible
  • Serial port via miniUSB
  • Connector for external power supply
  • Powered from USB, or +3.3V, or +5V, or from external DC supply 6V-12V
  • Software-controlled LED
  • Reset button

Memory:

  • 128 kbytes of Flash
  • 3 kbytes of additional Boot Flash
  • 32 kbytes of SRAM

Digital outputs provide a current up to 18mA. A rich set of peripherals is available: UART, SPI, I2C, I2S, ADC, timers, RTCC.

Signals

Connectors J6, J8

Signal PIC32
AREF RA0
GND --
D13 RB14 - SCK1, LED
D12 RB13 - MISO
D11 RB12 - MOSI
D10 RB11 - SS
D9 RB10
D8 RA2
D7 RA3
D6 RB9 - SDA1, TDO
D5 RB8 - SCL1, TCK
D4 RA4
D3 RB7 - TDI
D2 RB6
D1 RB5 - TX, TMS
D0 RB4 - RX

Connector J7

Signal PIC32 Analog Input
A0 RA1 AN1
A1 RB0 AN2
A2 RB1 AN3
A3 RB2 - SDA2 AN4
A4 RB3 - SCL2 AN5
A5 RB15 - SCK2 AN9

Connector J5

Signal Function
RST MCLR
3V3 VCC +3.3
5V0 VCC +5.0
GND GND
GND GND
VIN External supply voltage

UART, SPI and I2C

Signals of the following peripherals blocks can be assigned by software to any i/o pins:

  • UART1 signal U1RX - to D8, D4, A3, D2, D12 (RA2, RA4, RB2, RB6, RB13)
  • UART1 signal U1TX - to AREF, A4, D0, D3, A5 (RA0, RB3, RB4, RB7, RB15)
  • UART2 signal U2RX - to A0, A2, D1, D5, D10 (RA1, RB1, RB5, RB8, RB11)
  • UART2 signal U2TX - to D7, A1, D6, D9, D13 (RA3, RB0, RB9, RB10, RB14)
  • SPI1 signal SDI1 - to A0, A2, D1, D5, D10 (RA1, RB1, RB5, RB8, RB11)
  • SPI1 signal SDO1 - to A0, D8, D4, A2, A3, D1, D2, D5, D10, D12 (RA1, RA2, RA4, RB1, RB2, RB5, RB6, RB8, RB11, RB13)
  • SPI2 signal SDI2 - to D8, D4, A3, D2, D12 (RA2, RA4, RB2, RB6, RB13)
  • SPI2 signal SDO2 - to A0, D8, D4, A2, A3, D1, D2, D5, D10, D12 (RA1, RA2, RA4, RB1, RB2, RB5, RB6, RB8, RB11, RB13)

Here ou can find a brief tutorial on peripheral pin select.

SPI I2C PIC32 Connectors J6, J7, J8
SCK1 -- RB14 D13
SCK2 -- RB15 A5
-- SDA2 RB2 A3
-- SCL2 RB3 A4
-- SDA1 RB9 D6
-- SCL1 RB8 D5

Graphic shield SainSmart LCD4884

Features:

The shield is supplied for the +5V supply power and i/o. You can easily modify it for +3.3V-tolerant, by cutting out the 5V0 pin (which goes to J5 connector) and shorten it to the nearby 3V3 pin on the shield.

Signal Function PIC32
D2 SPI_SCK RB6
D3 SPI_MOSI RB7
D4 LCD_DC RA4
D5 SPI_CS RB8
D6 LCD_RST RB9
D7 LCD_BL RA3
A0 KEY_IN RA1 - AN1

uOS examples

In directory examples/mips-firewing you can find examples of uOS for Firewing board. Use "make" to build.

test-led.c

  • Toggle the LED on the main board. Multitasking kernel not used.

test-lcd.c

  • Demo of the interface to the graphics panel and joystick. Multitasking kernel not used. The program displays on the display a text, draws rectangles, and circles. Use LEFT and RIGHT buttons to select output modes. Button DOWN toggles a backlight, button UP controls a contrast.

test-task.c

  • Check the task_create system call. One user task, printing it's total and free stack size, then waiting for a button. Output to LCD panel.

test-timer.c

  • Check timer driver. One user task, displaying on a graphics panel the time since restart: minutes and seconds.

philosophers.c

  • Five dining philosophers, solution to a classical multi-tasking problem. Five tasks, communicating via mutexes. Output to LCD panel.

tetris.c

  • Tetris game on a graphics display. Multitasking kernel not used. LEFT button rotates, buttons UP and DOWN move the figure to left and right, button RIGHT drops the figure. The game restarts when the field is full.

lol.c

  • Running text string on LOL shield. Multitasking kernel not used.
You can’t perform that action at this time.