Pigmeo Framework ToDo

From Pigmeo Development Wiki

Jump to: navigation, search

This is the list of unimplemented but proposed features which will be published in future Pigmeo releases.

Contents

Namespaces and Classes

List of namespaces and classes intended to be implemented by Pigmeo Framework, inside the Pigmeo namespace.

Pigmeo.Displays

See http://en.wikipedia.org/wiki/Display_device

Pigmeo.Keyboards

Pigmeo.Motors

  • Pigmeo.Motors.DC
    • L293 controlling two motors
    • L293 controlling four motors
    • L293 controlling two motors with only two inputs per motor (IN2 and IN4 being inverted using NOT gates from IN1 and IN4)
  • Pigmeo.Motors.Servomotors
    • Futaba
  • Pigmeo.Motors.Stepper

Pigmeo.Communications

These classes allows microcontrollers and embedded devices to communicate with each other and with computers. They must be implemented in software. Each device library will contain classes which allows to use internal communication-related peripherals too.

Pigmeo.Cryptography

Note: these classes might be already implemented in the .NET Framework and libraries within the Mono namespace.

Pigmeo.Network

See http://en.wikipedia.org/wiki/Internet_protocol_suite

Pigmeo.Storage

See http://en.wikipedia.org/wiki/File_system#Data_retrieval_process

Pigmeo.Kits

Set of classes for interfacing easily with peripherals integrated in (usually) commercial kits, such as robots, microcontroller trainers/development boards/evaluation boards/demo boards...

Pigmeo.Mathematics

See http://en.wikipedia.org/wiki/Mathematics , http://en.wikipedia.org/wiki/Category:Mathematics and http://en.wikipedia.org/wiki/Template:Mathematics-footer

Pigmeo.Physics

Ideas? See http://en.wikipedia.org/wiki/Physics

Pigmeo.Sound

Basic data types

Variable types not supported by .NET Framework, but useful for memory-constrained devices. These must be structs, not classes.

  • UInt4
  • UInt6
  • char8
  • string8
  • UInt12
  • UInt20
  • UInt24
  • Int128
  • UInt128

Pigmeo.PC

Classes only useful for computers, .NET executable files being run on top of a virtual machine, instead of being compiled by Pigmeo Compiler

  • UsbHost?

Other classes

  • Time signals, such as DCF77
  • Qalculate! contains lots of useful functions. They could be implemented as static methods.


Device libraries

  • List of supported packages by a given microcontroller, and pinout for each one


Hardware Architectures

PIC

  • PIC12. 33 12-bit instructions. 8-bit RAM registers.
    • PIC10F, some PIC12F and some PIC16F
    • They don't have interrupts, except 12x5XX which has "wake up on change interrupt"
    • One 8-bit timer with no overflow interrupt
    • SLEEP support
    • Almost same instruction set as PIC14, PIC12 has two more (TRIS and OPTION) and four less (ADDLW, SUBLW, RETURN and RETFIE missing, but RETLW available)
  • PIC14. 35 14-bit instructions. 8-bit RAM registers.
    • TRIS and OPTION are instructions in PIC12, but registers in PIC14
    • Same 8-bit timer as PIC12, plus another 8-bit and 16-bit timers (3 timers total)
    • PIC12F and most PIC16F
    • Examples:
      • 12F: 629, 635, 675, 683
      • 14C - Mixed-signal MCUs with DAC
      • 16C: 432, 433
      • 16C: 554, 557, 558
      • 16C: 62, 620, 620a, 621, 621a, 622, 622a, 63a, 65b
      • 16C: 71, 710, 711, 715, 717, 72, 73b, 745, 74b, 765, 770, 771, 773, 774, 781, 782
      • 16C: 925, 926
      • 16CR: 620a, 73, 74, 76, 77
      • 16F: 616, 627, 627a, 628, 628a, 630, 636, 639, 648, 648a, 676, 684, 685, 687, 688, 689, 690
      • 16F: 716, 72, 73, 737, 74, 747, 76, 767, 77, 777, 785
      • 16F: 818, 819, 84, 84a, 87, 870, 871, 872, 873, 873a, 874, 874a, 876, 876a, 877, 877a, 88, 886, 887
      • 16F: 913, 914, 916, 917, 946
      • 26HV: 626, 785

dsPIC

dsPIC30F and dsPIC33F. 83 overloaded 24-bit instructions. 16-bit RAM registers.

Instruction sets are identical. See other differences: http://www.microchip.com/stellent/groups/dspic_sg/documents/devicedoc/en025672.pdf

AVR

See http://en.wikipedia.org/wiki/Atmel_AVR_instruction_set

Other

  • PIC16. 58 16-bit instructions.
    • Same 35 instructions as PIC14, but 16-bit wide, plus 23 extra instructions
    • Up to 33MHz
    • 16-level call stack
    • Two open drain high voltage (12V) and high current (60mA) pins.
    • Same timers as PIC14 (2x8-bit + 1x16-bit) plus another 16-bit timer (4 timers total)
    • Support for external program memory (run as microprocessor instead of microcontroller)
    • Examples:
      • 17xXX
  • PIC18. 75 or 77 16-bit instructions. 8-bit RAM registers.
  • PIC24F. 76 overloaded instructions. 16-bit RAM registers.
  • PIC24H. 71 overloaded 24-bit instructions. 16-bit RAM registers.
  • ARM
Personal tools