MicroTerminale: Difference between revisions
No edit summary |
No edit summary |
||
(48 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Un terminale fisico | Un terminale fisico implementato su microcontrollore. | ||
periferiche: | periferiche: | ||
* display | * display: lcd a caratteri. controller hd44780, 4 righe x 16 o 20 colonne | ||
* tastiera | * tastiera: usb HID | ||
terminal mode: | |||
* vt100 ? sembra che le features corrispondano piu o meno con quel che si puo fare su hd44780 | |||
* vt102 ? | |||
* vt220 ? | |||
uscita: | |||
UART rs232 con livelli TTL | |||
il codice https://github.com/74hc595/Terminalscope/blob/master/terminal.c sembra agevolmente sciacallabile e ben fatto. | |||
vanno reimplementate le funzioni lato uart e lato display. | |||
https://github.com/74hc595/Terminalscope/blob/master/video.c | |||
un primo problema e' che i display hd44780 non supportano il testo in negativo. non sembrano esistere controller diffusi che lo permettano. o lo si rende graficamente in un'altro modo o lo si visualizza come testo normale. | |||
== Tastiera == | |||
http://ww1.microchip.com/downloads/en/AppNotes/01212a.pdf | |||
Tastiere compatte | |||
* http://www.cartft.com/catalog/il/478 8 cm x 5 cm x 1 cm | |||
* http://usb.brando.com/usb-slim-keyboard-w9716-_p01189c034d015.html 297 x 113 x 16mm | |||
* http://usb.brando.com/usb-slim-keyboard-w8017-_p01186c034d015.html 217 x 116 x 18mm | |||
* http://usb.brando.com/usb-ultra-slim-keyboard_p03020c034d015.html 300 x 152 x 12mm | |||
=== keypad === | |||
16 tasti: da 0 a 9 e A/su B/giu C/sinistra D/destra E/enter F/exit | |||
* '''microswitch''' in matrice di 4x4: costoso, bisogno di bucare box | |||
* '''touch capacitivo''': complesso lato SW, tocco meno confortevole | |||
http://www.microchip.com/stellent/groups/SiteComm_sg/documents/DeviceDoc/en542792.pdf | |||
http://ww1.microchip.com/downloads/en/DeviceDoc/39743a.pdf | |||
==== Connettore keypad ==== | |||
{| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1" | |||
!Pin | |||
!Funzione | |||
!Nome | |||
|- | |||
|1||||KBD_ROW1 | |||
|- | |||
|2||||KBD_ROW2 | |||
|- | |||
|3||||KBD_ROW3 | |||
|- | |||
|4||||KBD_ROW4 | |||
|- | |||
|5||||KBD_COL1 | |||
|- | |||
|6||||KBD_COL2 | |||
|- | |||
|7||||KBD_COL3 | |||
|- | |||
|8||||KBD_COL4 | |||
|} | |||
== lcd == | |||
* LCD a caratteri da 3.3v | |||
** 20X4 http://www.newhavendisplay.com/specs/NHD-0420DZ-FL-YBW-3V3.pdf | |||
** 16x4 http://www.newhavendisplay.com/nhd0416b1zfspgybwl33vnonstocked100pc-moq-p-5162.html | |||
un fet controlla l'accensione della backlight | |||
=== Connettore display === | |||
{| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1" | |||
!Pin | |||
!Funzione | |||
!Nome | |||
|- | |||
|1||||LCD_DATA1 | |||
|- | |||
|2||||LCD_DATA2 | |||
|- | |||
|3||||LCD_DATA3 | |||
|- | |||
|4||||LCD_DATA4 | |||
|- | |||
|5||||LCD_EN | |||
|- | |||
|6||||LCD_RS | |||
|- | |||
|7||||V+ | |||
|- | |||
|8||||GND | |||
|} | |||
== uC == | |||
PIC24FJ64GB002 http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en536121 | |||
USB host mode: | |||
* http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en536935 | |||
{|style="color:green; background-color:#ffffdd;" cellpadding="10" cellspacing="0" border="1" | |||
!Pin | |||
!Funzione | |||
!Nome | |||
!porta sul uC | |||
|- | |||
|1|| ||MCLR|| | |||
|- | |||
|2||Uart TX|| ||PGED3/AN0/C3INC/VREF+/ASDA1(2)/RP5/PMD7/CTED1/VBUSVLD/VCMPST1/CN2/RA0 | |||
|- | |||
|3||Uart Rx|| ||PGEC3/AN1/C3IND/VREF-/ASCL1(2)/RP6/PMD6/CTED2/SESSVLD/VCMPST2/CN3/RA1 | |||
|- | |||
|4||Dati Programmazione|| ||PGED1/AN2/C2INB/DPH/RP0/PMD0/CN4/RB0 | |||
|- | |||
|5||Clock Programmazione|| ||PGEC1/AN3/C2INA/DMH/RP1/PMD1/CN5/RB1 | |||
|- | |||
|6||LCD bit 5|| ||AN4/C1INB/DPLN/SDA2/RP2/PMD2/CN6/RB2 | |||
|- | |||
|7||LCD bit 6|| ||AN5/C1INA/DMLN/RTCC/SCL2/RP3/PMWR/CN7/RB3 | |||
|- | |||
|8||V-|| ||VSS | |||
|- | |||
|9||Xtal|| ||OSCI/CLKI/C1IND/PMCS1/CN30/RA2 | |||
|- | |||
|10||Xtal|| ||OSCO/CLKO/PMA0/CN29/RA3 | |||
|- | |||
|11||LCD bit 7|| ||SOSCI/C2IND/RP4/PMBE/CN1/RB4 | |||
|- | |||
|12||Cicalino|| ||SOSCO/SCLKI/T1CK/C2INC/PMA1/CN0/RA4 | |||
|- | |||
|13||V+|| ||VDD | |||
|- | |||
|14||LCD bit 8|| ||TMS/USBID/CN27/RB5 | |||
|- | |||
|15|| || ||VBUS | |||
|- | |||
|16||LCD Enable || ||TDI/RP7/PMD5/INT0/CN23/RB7 | |||
|- | |||
|17||LCD RS|| ||TCK/USBOEN/SCL1/RP8/PMD4/CN22/RB8 | |||
|- | |||
|18|| || ||TDO/SDA1/RP9/PMD3/RCV/CN21/RB9 | |||
|- | |||
|19||VSS (regolatore on)|| ||DISVREG | |||
|- | |||
|20||Cap verso VSS|| ||VCAP/VDDCORE | |||
|- | |||
|21||USB data +|| ||PGED2/D+/VPIO/RP10/CN16/RB10 | |||
|- | |||
|22||USB data -|| ||PGEC2/D-/VMIO/RP11/CN15/RB11 | |||
|- | |||
|23|| || ||VUSB | |||
|- | |||
|24||Uart RTS|| ||AN11/C1INC/RP13/PMRD/REFO/SESSEND/CN13/RB13 | |||
|- | |||
|25||Uart CTS|| ||AN10/C3INB/CVREF/VCPCON/VBUSON/RP14/CN12/RB14 | |||
|- | |||
|26||Backlight|| ||AN9/C3INA/VBUSCHG/RP15/VBUSST/CN11/RB15 | |||
|- | |||
|27||V-|| ||VSS | |||
|- | |||
|28||V+|| ||VDD | |||
|} | |||
---- | |||
letture: | letture: | ||
Line 13: | Line 183: | ||
* http://www.msarnoff.org/terminalscope/ | * http://www.msarnoff.org/terminalscope/ | ||
* http://man.he.net/man4/console_codes | * http://man.he.net/man4/console_codes | ||
* http://www.vt100.net/vt_history | |||
* http://lcd-linux.sourceforge.net/ | |||
* http://www.byvac.co.uk/downloads/datasheets/BV4308%20DataSheet.pdf | |||
* https://github.com/nottwo/BasicTerm | |||
* http://doc.byvac.com/index.php5?title=Arduino_VT100 | |||
* http://www.amcnicoll.com/avr-liberty-dox/vt100_8h.html |
Latest revision as of 16:35, 2 December 2013
Un terminale fisico implementato su microcontrollore.
periferiche:
- display: lcd a caratteri. controller hd44780, 4 righe x 16 o 20 colonne
- tastiera: usb HID
terminal mode:
- vt100 ? sembra che le features corrispondano piu o meno con quel che si puo fare su hd44780
- vt102 ?
- vt220 ?
uscita: UART rs232 con livelli TTL
il codice https://github.com/74hc595/Terminalscope/blob/master/terminal.c sembra agevolmente sciacallabile e ben fatto.
vanno reimplementate le funzioni lato uart e lato display.
https://github.com/74hc595/Terminalscope/blob/master/video.c
un primo problema e' che i display hd44780 non supportano il testo in negativo. non sembrano esistere controller diffusi che lo permettano. o lo si rende graficamente in un'altro modo o lo si visualizza come testo normale.
Tastiera
http://ww1.microchip.com/downloads/en/AppNotes/01212a.pdf
Tastiere compatte
- http://www.cartft.com/catalog/il/478 8 cm x 5 cm x 1 cm
- http://usb.brando.com/usb-slim-keyboard-w9716-_p01189c034d015.html 297 x 113 x 16mm
- http://usb.brando.com/usb-slim-keyboard-w8017-_p01186c034d015.html 217 x 116 x 18mm
- http://usb.brando.com/usb-ultra-slim-keyboard_p03020c034d015.html 300 x 152 x 12mm
keypad
16 tasti: da 0 a 9 e A/su B/giu C/sinistra D/destra E/enter F/exit
- microswitch in matrice di 4x4: costoso, bisogno di bucare box
- touch capacitivo: complesso lato SW, tocco meno confortevole
http://www.microchip.com/stellent/groups/SiteComm_sg/documents/DeviceDoc/en542792.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/39743a.pdf
Connettore keypad
Pin | Funzione | Nome |
---|---|---|
1 | KBD_ROW1 | |
2 | KBD_ROW2 | |
3 | KBD_ROW3 | |
4 | KBD_ROW4 | |
5 | KBD_COL1 | |
6 | KBD_COL2 | |
7 | KBD_COL3 | |
8 | KBD_COL4 |
lcd
- LCD a caratteri da 3.3v
un fet controlla l'accensione della backlight
Connettore display
Pin | Funzione | Nome |
---|---|---|
1 | LCD_DATA1 | |
2 | LCD_DATA2 | |
3 | LCD_DATA3 | |
4 | LCD_DATA4 | |
5 | LCD_EN | |
6 | LCD_RS | |
7 | V+ | |
8 | GND |
uC
PIC24FJ64GB002 http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en536121
USB host mode:
Pin | Funzione | Nome | porta sul uC |
---|---|---|---|
1 | MCLR | ||
2 | Uart TX | PGED3/AN0/C3INC/VREF+/ASDA1(2)/RP5/PMD7/CTED1/VBUSVLD/VCMPST1/CN2/RA0 | |
3 | Uart Rx | PGEC3/AN1/C3IND/VREF-/ASCL1(2)/RP6/PMD6/CTED2/SESSVLD/VCMPST2/CN3/RA1 | |
4 | Dati Programmazione | PGED1/AN2/C2INB/DPH/RP0/PMD0/CN4/RB0 | |
5 | Clock Programmazione | PGEC1/AN3/C2INA/DMH/RP1/PMD1/CN5/RB1 | |
6 | LCD bit 5 | AN4/C1INB/DPLN/SDA2/RP2/PMD2/CN6/RB2 | |
7 | LCD bit 6 | AN5/C1INA/DMLN/RTCC/SCL2/RP3/PMWR/CN7/RB3 | |
8 | V- | VSS | |
9 | Xtal | OSCI/CLKI/C1IND/PMCS1/CN30/RA2 | |
10 | Xtal | OSCO/CLKO/PMA0/CN29/RA3 | |
11 | LCD bit 7 | SOSCI/C2IND/RP4/PMBE/CN1/RB4 | |
12 | Cicalino | SOSCO/SCLKI/T1CK/C2INC/PMA1/CN0/RA4 | |
13 | V+ | VDD | |
14 | LCD bit 8 | TMS/USBID/CN27/RB5 | |
15 | VBUS | ||
16 | LCD Enable | TDI/RP7/PMD5/INT0/CN23/RB7 | |
17 | LCD RS | TCK/USBOEN/SCL1/RP8/PMD4/CN22/RB8 | |
18 | TDO/SDA1/RP9/PMD3/RCV/CN21/RB9 | ||
19 | VSS (regolatore on) | DISVREG | |
20 | Cap verso VSS | VCAP/VDDCORE | |
21 | USB data + | PGED2/D+/VPIO/RP10/CN16/RB10 | |
22 | USB data - | PGEC2/D-/VMIO/RP11/CN15/RB11 | |
23 | VUSB | ||
24 | Uart RTS | AN11/C1INC/RP13/PMRD/REFO/SESSEND/CN13/RB13 | |
25 | Uart CTS | AN10/C3INB/CVREF/VCPCON/VBUSON/RP14/CN12/RB14 | |
26 | Backlight | AN9/C3INA/VBUSCHG/RP15/VBUSST/CN11/RB15 | |
27 | V- | VSS | |
28 | V+ | VDD |
letture:
- http://www.xfree86.org/current/ctlseqs.html
- http://www.tldp.org/HOWTO/html_single/Text-Terminal-HOWTO/
- http://www.linusakesson.net/programming/tty/index.php
- http://www.catb.org/~esr/terminfo/
- http://pubs.opengroup.org/onlinepubs/007908799/xcurses/terminfo.html#tag_002_001_001
- http://www.msarnoff.org/terminalscope/
- http://man.he.net/man4/console_codes
- http://www.vt100.net/vt_history
- http://lcd-linux.sourceforge.net/
- http://www.byvac.co.uk/downloads/datasheets/BV4308%20DataSheet.pdf
- https://github.com/nottwo/BasicTerm
- http://doc.byvac.com/index.php5?title=Arduino_VT100
- http://www.amcnicoll.com/avr-liberty-dox/vt100_8h.html