Hardware/PICEBS3/Welcome
(→Hardware) |
(→Hardware) |
||
Line 28: | Line 28: | ||
=== Hardware === | === Hardware === | ||
− | ([[[http://wiki.hevs.ch/uit/index.php5/Hardware/PIcEBS Datasheets]]]). | + | ([[[http://wiki.hevs.ch/uit/index.php5/Hardware/PIcEBS Datasheets and schematics]]]). |
− | Here is a list of the main | + | Here is a list of the main PICEBS3's characteristics: |
− | * CPU | + | * CPU PIC18F97J94 |
− | ** High range PIC18 family with 128kB Flash & 4kB RAM | + | ** High range PIC18 family with 128kB Flash & 4kB RAM, Lite PPS |
− | + | ||
** 12 bits ADC | ** 12 bits ADC | ||
− | ** | + | ** 9 timers |
− | ** UART, SPI, I2C | + | ** 4 UART, 2 SPI, 2 I2C |
+ | ** USB | ||
** ... | ** ... | ||
− | * Onboard | + | * Onboard SNAP debugger (not on EasyPicPro v8 standard) |
− | ** Compatible with MPLABX | + | ** Compatible with MPLABX (uage of USB-A cable is mandatory) |
− | ** | + | * I/O ports |
+ | ** 10 ports with optional led | ||
+ | ** each of them with a button (pull-up or pull-down selectable) | ||
+ | ** Capacitive multi points touch screen | ||
* LCD Display | * LCD Display | ||
− | ** | + | ** 800x480 |
** Backlight | ** Backlight | ||
− | ** | + | ** Capacitive multi points touch screen |
* Networking and communication | * Networking and communication | ||
** CAN bus | ** CAN bus | ||
− | ** RS232 | + | ** RS232 (throuth USB FTDI) |
− | ** | + | ** USB interface |
− | ** | + | ** Ethernet interface(not with the CPU module PIC18F97J94) |
+ | |||
* Development | * Development | ||
− | ** | + | ** Almost all CPU pins are available on connectors |
− | ** | + | ** CPU current measure available on a 1 ohm resistor (not on EasyPicPro v8 standard) |
=== Software === | === Software === |
Revision as of 14:54, 11 March 2021
|
Welcome to the PICEBS3 wiki
PICEBS3 is the name of a small embedded computer board targeted at teaching embedded systems programming based on the Mikroe EasyPicPro v8 board. As its name suggests, it is the third iteration of a successful family of Microchip PIC board.
The Mikroe board has been just modified for our laboratories usage.
Please note that, as a student, you can loan a board for free during your studies to work at home ;-) Just ask the laboratory responsible Pascal Sartoretti (sap) for the procedure to follow.
We, the PICEBS3 team, provide a comprehensive solution for
- Practical work for HEI course Information systems given in second year.
- All kind of project featuring a small-sized micro-controller.
What can be done with the PICEBS3?
The board is powerful enough to run applications with:
- LCD and touch screen interface
- Serial port usage (UART)
- CAN interface
- ...
To program this board, you do not require an external programming probe, as it already includes a "Microchip Snap"system for programming and debugging. All you need is an USB port and the free MPLAB-X IDE. Caution, the USB câble has to be an USB-A cable.
Hardware
([[Datasheets and schematics]]).
Here is a list of the main PICEBS3's characteristics:
- CPU PIC18F97J94
- High range PIC18 family with 128kB Flash & 4kB RAM, Lite PPS
- 12 bits ADC
- 9 timers
- 4 UART, 2 SPI, 2 I2C
- USB
- ...
- Onboard SNAP debugger (not on EasyPicPro v8 standard)
- Compatible with MPLABX (uage of USB-A cable is mandatory)
- I/O ports
- 10 ports with optional led
- each of them with a button (pull-up or pull-down selectable)
- Capacitive multi points touch screen
- LCD Display
- 800x480
- Backlight
- Capacitive multi points touch screen
- Networking and communication
- CAN bus
- RS232 (throuth USB FTDI)
- USB interface
- Ethernet interface(not with the CPU module PIC18F97J94)
- Development
- Almost all CPU pins are available on connectors
- CPU current measure available on a 1 ohm resistor (not on EasyPicPro v8 standard)
Software
- Source files for assembler laboratories
- Source files for C laboratories
- Tools
Tips & tricks
- CPU speed control
// to work at maximum CPU speed (64MHz) insert following code at start. PLLEN = 1; // activate PLL x4 OSCCON = 0b01110000; // for 64MHz cpu clock (default is 8MHz) // Caution -> the PLL needs up to 2 [ms] to start ! // Wait a moment if needed with: __delay_ms(2); ...
- Change one bit on a port
// to change one bit on a port, use LATx and not PORTx LATH2 = 1; // turn led on for example ...
- Interrupt on change on PORTB (RB4-RB7)
// to clear the interrupt flag you have to read the PORTB ... PORTB; // clear the latch change on PORTB RBIF = 0; // clear the interrupt itself ...
- Reduce current consumption
// To reduce consumption at minimum, do at least LCD_PowerOff(); // turn all LCD parts off UART_PowerOff(); // turn UART driver off Can_PowerOff(); // turn off MCP2515 chipset // And define unused GPIOs as output TRISB5 = 0; // for example ... // You can measure (between white and yellow test points) about 630 uA after a SLEEP();
- Link in low address range (download time reduced)
- To reduce the time to download, you need to write a linker special command In the "XC8 linker" - "Extra Linker Option" write the following line: "-L-ACODE=0x0-0x10000 -L-AMEDIUMCONST=0x0-0x10000" - Another solution is to have an interrupt routine (even if nothing in) The full program needs to be smaller than 50% of CPU Flash memory.
Bugs, issues, questions and comments
Feel free to contact the PICEBS2 team if you encounter a problem. Do not forget to have a look at the Tips & tricks section.