3f01
3f01
3f01
3f01
3f01 It’s midway between an Arduino 3f01 Mini (in measurement) and an 3f01 Arduino Mega when it comes 3f01 to computational capability, accessible reminiscence 3f01 and built-in peripherals.
3f01
3f01 For the reason that creation 3f01 of the Arduino challenge and 3f01 the following unfold of the 3f01 unique boards, the electronics business 3f01 and particularly the nascent electronics 3f01 business for Makers, has moved 3f01 in two instructions: the creation 3f01 and advertising and marketing of 3f01 clone boards and the event 3f01 of hybrid boards, designed so 3f01 as to add to the 3f01 market what the official Arduino 3f01 household doesn’t provide.
3f01
3f01 We now have not shirked 3f01 this logic both, a lot 3f01 in order that in recent 3f01 times we’ve designed and proposed 3f01 new Arduino prototyping boards which 3f01 might be suitable and programmable 3f01 with the official IDE, as 3f01 within the case of the 3f01 Fishino sequence boards.
3f01
3f01 Now we wish to return 3f01 “to the cost” by proposing 3f01 our newest discovery, which we’ve 3f01 referred to as 3f01 PRO midi 1284P 3f01 , the place the phrase 3f01 “midi” is said to the 3f01 traits, which implies one thing 3f01 between a mini and a 3f01 mega. The peculiarity of this 3f01 new Arduino-like board is that 3f01 it’s primarily based on the 3f01 Atmel/Microchip ATmega1284P MCU. The board 3f01 is proven in 3f01 Fig. 3f01 1 and, as you 3f01 possibly can see, is extraordinarily 3f01 small in measurement however filled 3f01 with connections to the skin.
3f01
3f01
3f01
3f01
3f01 Fig. 1
3f01
3f01
3f01
3f01 The board provides, in a 3f01 really small area, extraordinarily attention-grabbing 3f01 options:
3f01
- 3f01
- 3f01 16 MHz quartz-generated clock;
- 3f01 128 Kbytes of “FLASH” reminiscence 3f01 (for code);
- 3f01 16 Kbytes of SRAM 3f01 reminiscence (for knowledge);
- 3f01 4 Kbytes of EEPROM 3f01 reminiscence (for knowledge, non-volatile 3f01 kind);
- 3f01 3 {hardware} interrupts 3f01 (INT0, INT1 and INT2);
- 3f01 2 serial ports;
- 3f01 1 I2C port;
- 3f01 1 SPI port;
- 3f01 32 GPIO pins of which 3f01 8 with PWM functionality;
- 3f01 8 analogue inputs with 10-bit 3f01 ADC;
- 3f01 1 analogue comparator;
- 3f01 2 8 bits timers (Timer 3f01 0 and Timer 2); one 3f01 in all them (Timer 2) 3f01 is usable as a “Actual-Time 3f01 Counter” with exterior quartz at 3f01 32.768 kHz;
- 3f01 2 16-bit timers (Timer 1 3f01 and Timer 3);
- 3f01 “Capacitive Contact Sense” utilizing the 3f01 Atmel QTouch library.
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01 There are additionally (individually excludable 3f01 by jumpers minimize and reset 3f01 by the consumer) these peripherals 3f01 ( 3f01 Fig. 3f01 2);
3f01
- 3f01
- 3f01 Inexperienced LED (5V provide, will 3f01 be excluded by reducing LD1 3f01 monitor);
- 3f01 Purple LED (D13 pin, will 3f01 be excluded by reducing LD2 3f01 monitor);
- 3f01 MOSFET (pin D12, excludable by 3f01 reducing SWC monitor) to energy 3f01 exterior objects (e.g. sensors), capable 3f01 of activate/off hundreds as much 3f01 as 700mA when utilizing an 3f01 exterior 5V provide;
- 3f01 7 kΩ pull-up resistors on 3f01 I²C bus traces (SCL and 3f01 SDA will be bypassed by 3f01 reducing their tracks).
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01
3f01 Fig. 2
3f01
3f01
3f01
3f01 Between every pair of pitches, 3f01 there’s a monitor that may 3f01 be interrupted by reducing it.
3f01
3f01 For these wishing to use 3f01 an exterior energy provide apart 3f01 from 5V (nevertheless as much 3f01 as a most of 12V), 3f01 the board is provided with 3f01 an LDO regulator (excludable by 3f01 reducing the RAW monitor) at 3f01 5V capable of energy (given 3f01 the decreased dissipate energy) the 3f01 one MCU, however not exterior 3f01 customers.
3f01
3f01 Principally, within the MCU, is 3f01 loaded the “Optiboot” bootloader that, 3f01 by a serial <-> USB 3f01 adapter to be related externally 3f01 (the board is provided with 3f01 a 5 pin connector to 3f01 attach generic “serial <-> USB” 3f01 adapters) permits straightforward programming by 3f01 the Arduino IDE.
3f01
3f01 There’s nevertheless a typical ISP 3f01 connector that enables programming the 3f01 MCU through an exterior programmer, 3f01 such because the Atmel ICE 3f01 or every other AVR/ISP suitable 3f01 programmer.
3f01
3f01 The size of the board 3f01 are extraordinarily small, much like 3f01 these of the “Arduino™ MKR” 3f01 sequence, i.e. 56.1 mm x 3f01 26.3 mm and likewise the 3f01 pinout is partially suitable with 3f01 some boards of the identical 3f01 MKR sequence.
3f01
3f01 The pins marked “TCK (18), 3f01 TMS (19), TDO (20) and 3f01 TDI (21)” will be related 3f01 to a JTAG programmer/debugger for 3f01 programming and debugging functions.
3f01
3f01 On pins TOSC1 (22) and 3f01 TOSC2 (23) will be related 3f01 quartz at 32.768 KHz that, 3f01 by correctly programming the Timer 3f01 2 (TC2), can present the 3f01 clock to the “ 3f01 Actual-Time Counter 3f01 ” that stated Timer 2 3f01 is ready to implement, “Counter” 3f01 that is ready to proceed 3f01 to function even with the 3f01 MCU in “Energy-Save” mode.
3f01
3f01 Because of the chance to 3f01 exclude all {hardware} that isn’t 3f01 wanted (LEDs, resistors, MOSFETs, LDO 3f01 voltage regulator) by the suitable 3f01 jumpers, the board is completely 3f01 fitted to low-power functions; in 3f01 truth, excluding all of the 3f01 {hardware} that isn’t mandatory, the 3f01 MCU, put in “Energy-Save” mode 3f01 (if desired with the “Actual-Time 3f01 Counter” at 32 kHz energetic) 3f01 absorbs solely 0.6 µA.
3f01
3f01 Regardless of its small measurement, 3f01 the ATmega1284P microcontroller has half 3f01 the Flash of an ATmega2560 3f01 (the MCU that equips the 3f01 Arduino MEGA board) however has 3f01 twice 3f01 the SRAM (16 Kbytes) which 3f01 makes this MCU ultimate for 3f01 individuals who wish to develop 3f01 functions that use the real-time 3f01 working system FreeRTOS; in such 3f01 functions, along with the massive 3f01 reminiscence for the code that 3f01 the ATmega1284P offers, 128Kbytes, it’s 3f01 important to have a big 3f01 SRAM, since every process that’s 3f01 created, nonetheless wants its personal 3f01 area for the stack and 3f01 for its system variables.
3f01
3f01
3f01
3f01
3f01
3f01
3f01 BLOCK DIAGRAM OF THE ATMEGA1284P
3f01
3f01 As already uncovered in earlier 3f01 paragraphs, the core of the 3f01 board Professional Midi 1284P is 3f01 the microcontroller Atmel / Microchip 3f01 ATmega1284P, perceive the traits of 3f01 which is extra instant by 3f01 casting a look at 3f01 Fig. 3 3f01 which exhibits the block 3f01 diagram “useful”. In it we 3f01 see peripherals, modules and registers, 3f01 along with the actual clock 3f01 generator.
3f01
3f01
3f01
3f01
3f01 Fig. 3
3f01
3f01
3f01
3f01 Programming the 3f01 ATMEGA1284P with Arduino IDE
3f01
3f01 As already talked about, the 3f01 board will be programmed within 3f01 the Arduino IDE atmosphere.
3f01
3f01 To do that, the suitable 3f01 “core” should be added to 3f01 the IDE.
3f01
3f01 Open the IDE “preferences” and 3f01 add the next line within 3f01 the area “Further Boards supervisor 3f01 URLs”:
3f01
3f01
3f01
3f01 https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
3f01
3f01
3f01
3f01 After that, it’s a must 3f01 to go to the 3f01 Instruments menu 3f01 , give the command 3f01 Card Supervisor 3f01 and choose, from the 3f01 submenu that opens, as the 3f01 cardboard the:
3f01
3f01
3f01
3f01 MightyCore
3f01
3f01 >Atmega1284
3f01
3f01
3f01
3f01 As soon as the tab 3f01 has been chosen, it’s mandatory 3f01 to pick from the choices 3f01 that seem:
3f01
3f01
3f01
3f01 Clock: 3f01 “Exterior 16 MHz”
3f01
3f01 BOD: 3f01 “disabled” 3f01 (o il livello di tensione 3f01 da voi scelto)
3f01
3f01 Compiler LTO: 3f01 “LTO disabled”
3f01
3f01 Variant: 3f01 “1284P”
3f01
3f01 Pinout: 3f01 “Customary pinout”
3f01
3f01 Bootloader: 3f01 “YES (UART0)”
3f01
3f01
3f01
3f01 On this approach you’ve got 3f01 configured the IDE to make 3f01 use of the board and, 3f01 after getting chosen the right 3f01 serial port (the one created 3f01 by the USB <-> serial 3f01 adapter), it is possible for 3f01 you to to load the 3f01 code immediately through bootloader.
3f01
3f01 To facilitate the writing of 3f01 the code, a “.h” module 3f01 is offered that may be 3f01 included within the challenge and 3f01 that defines, in a mnemonic 3f01 approach, a sequence of “pins” 3f01 current on the “ 3f01 PRO midi 1284P 3f01 ” board. The identify of 3f01 this module is “ 3f01 ProMidi1284P.h 3f01 ” and will be downloaded 3f01 from the obtain space of 3f01 the journal and comprises the 3f01 definitions summarized in 3f01 Itemizing 1 3f01 .
3f01
3f01 Itemizing 1 3f01 .
3f01
3f01 /* Pins definitions addendum for ProMidi 3f01 1284P Guglielmo Braguglia - Might 2019 */ #ifndef 3f01 Pins_ProMidi1284_h #outline Pins_ProMidi1284_h #ifdef LED_BUILTIN #undef LED_BUILTIN #endif #outline LED_BUILTIN 3f01 13 #ifndef SWC_BUILTIN #outline SWC_BUILTIN 12 #endif #ifndef NOT_AN_INTERRUPT #outline 3f01 NOT_AN_INTERRUPT -1 #outline digitalPinToInterrupt(p) ( (p) 3f01 == 10 ? 0 : 3f01 ( (p) == 11 ? 1 3f01 : ( (p) == 2 3f01 ? 2 : NOT_AN_INTERRUPT ) 3f01 ) ) #endif #outline PIN_D0 (0) #outline PIN_D1 3f01 (1) #outline PIN_D2 (2) #outline PIN_D3 (3) #outline 3f01 PIN_D4 (4) #outline PIN_D5 (5) #outline PIN_D6 3f01 (6) #outline PIN_D7 (7) #outline PIN_D8 (8) #outline 3f01 PIN_D9 (9) #outline PIN_D10 (10) #outline PIN_D11 3f01 (11) #outline PIN_D12 (12) #outline PIN_D13 (13) #outline 3f01 PIN_D14 (14) #outline PIN_D15 (15) #outline PIN_D16 3f01 (16) #outline PIN_D17 (17) #outline PIN_D18 (18) #outline 3f01 PIN_D19 (19) #outline PIN_D20 (20) #outline PIN_INT0 3f01 (10) #outline PIN_INT1 (11) #outline PIN_INT2 (2) static 3f01 const uint8_t D0 = PIN_D0; static 3f01 const uint8_t D1 = PIN_D1; static 3f01 const uint8_t D2 = PIN_D2; static 3f01 const uint8_t D3 = PIN_D3; static 3f01 const uint8_t D4 = PIN_D4; static 3f01 const uint8_t D5 = PIN_D5; static 3f01 const uint8_t D6 = PIN_D6; static 3f01 const uint8_t D7 = PIN_D7; static 3f01 const uint8_t D8 = PIN_D8; static 3f01 const uint8_t D9 = PIN_D9; static 3f01 const uint8_t D10 = PIN_D10; static 3f01 const uint8_t D11 = PIN_D11; static 3f01 const uint8_t D12 = PIN_D12; static 3f01 const uint8_t D13 = PIN_D13; static 3f01 const uint8_t D14 = PIN_D14; static 3f01 const uint8_t D15 = PIN_D15; static 3f01 const uint8_t D16 = PIN_D16; static 3f01 const uint8_t D17 = PIN_D17; static 3f01 const uint8_t D18 = PIN_D18; static 3f01 const uint8_t D19 = PIN_D19; static 3f01 const uint8_t D20 = PIN_D20; static 3f01 const uint8_t PIN_RX0 = PIN_D8; static 3f01 const uint8_t PIN_TX0 = PIN_D9; static 3f01 const uint8_t PIN_RX1 = PIN_D10; static 3f01 const uint8_t PIN_TX1 = PIN_D11; static 3f01 const uint8_t PIN_SCL = PIN_D16; static 3f01 const uint8_t PIN_SDA = PIN_D17; static 3f01 const uint8_t PIN_SCK = PIN_D7; static 3f01 const uint8_t PIN_MISO = PIN_D6; static 3f01 const uint8_t PIN_MOSI = PIN_D5; static 3f01 const uint8_t PIN_SS = PIN_D4; #endif
3f01
3f01
3f01
3f01
3f01
3f01 For individuals who desire different 3f01 improvement environments, we level out 3f01 that the board is totally 3f01 programmable utilizing the Microchip IDE 3f01 MPLAB X each with the 3f01 XC8 compiler (which at the 3f01 moment solely helps ‘C’ code) 3f01 and by putting in the 3f01 particular “AVR Toolchain” (which additionally 3f01 permits loading ‘C++’ code). The 3f01 benefit of utilizing such an 3f01 atmosphere is that, by connecting 3f01 the board to a JTAG 3f01 programmer/debugger supported by 3f01 MPLAB X 3f01 , it isn’t solely attainable 3f01 to program the MCU, however 3f01 it’s also attainable to do 3f01 actual debugging each by inserting 3f01 breakpoints and by executing the 3f01 code in step-by-step mode.
3f01
3f01 Utilizing “ISP” programming, or “JTAG” 3f01 programming, with the assistance of 3f01 an exterior programmer, the “bootloader” 3f01 is cleared. If you wish 3f01 to restore the board to 3f01 the unique circumstances, with the 3f01 “bootloader” and the “blink” program 3f01 preloaded, merely obtain from the 3f01 obtain space of the journal 3f01 the file named “ 3f01 ProMidi.hex 3f01 ” and, once more with 3f01 the assistance of the exterior 3f01 programmer, load this file on 3f01 the board.
3f01
3f01 If the values of the 3f01 “FUSE” have additionally been altered, 3f01 they are often restored to 3f01 the next authentic values utilizing 3f01 an exterior programmer:
3f01
3f01
3f01
3f01 Low 3f01 = 0xD7, 3f01 Excessive 3f01 = 0xDE, 3f01 Ext 3f01 = 0xFD.
3f01
3f01
3f01
3f01 Relating to pinouts, 3f01 Desk 1 3f01 offers detailed details about 3f01 every pin that the Professional 3f01 Midi 1284P board offers.
3f01
3f01 Desk 1
3f01
3f01
3f01
3f01
3f01 MOSFET ON/OFF CIRCUIT DIAGRAM
3f01
3f01 As talked about, the Professional 3f01 Midi 1284P is provided with 3f01 a change, primarily based on 3f01 a MOSFET FDN360P, that is 3f01 ready to activate and off 3f01 hundreds related between the SW 3f01 pin of the board and 3f01 the GND pin. This transistor 3f01 permits to regulate of hundreds 3f01 with most absorption of 800mA 3f01 and solely within the presence 3f01 of an exterior stabilized energy 3f01 provide able to offering the 3f01 required present (so when the 3f01 board is powered by the 3f01 RAW pin). It’s managed by 3f01 pin D12 ( 3f01 Fig. 3f01 4).
3f01
3f01
3f01
3f01
3f01 Fig. 4
3f01
3f01
3f01
3f01 BOM:
3f01
3f01 R1, R2: 4.7 Kohm (0603)
3f01
3f01 R3, R6:10 Kohm (0603)
3f01
3f01 R4, R5, R7: 470 ohms 3f01 (0603)
3f01
3f01 C1, C2, C3, C4, C5: 3f01 100 nF ceramic (0603)
3f01
3f01 C6, C7: 18pF ceramic (0603)
3f01
3f01 C8: 470 pF ceramic (0603)
3f01
3f01 C9: 10 µF 10V tantalum
3f01
3f01 XTAL: Quartz 16 MHz
3f01
3f01 U1: ATMEGA1284P-AU
3f01
3f01 U2: MIC5205-3.3YM5-TR
3f01
3f01 LED1: Inexperienced LED (0805)
3f01
3f01 LED2: Purple LED (0805)
3f01
3f01 Q1: FDN360P
3f01
3f01 S1: Microswitch
3f01
3f01
3f01
3f01 Numerous
3f01
3f01 – 5-way male strip
3f01
3f01 – 20-way male strip (2 3f01 pcs.)
3f01
3f01 – 2×3-way male strip
3f01
3f01 – Printed circuit S1493 (57×27 3f01 mm)
3f01
3f01
3f01
3f01 CONCLUSIONS
3f01
3f01 The Professional Midi 1284P that 3f01 we’ve introduced on this article 3f01 is the best board for 3f01 individuals who, whereas wanting to 3f01 stay within the Atmel AVR 3f01 household, wants a considerable amount 3f01 of each Flash reminiscence for 3f01 its code and SRAM reminiscence. 3f01 Exactly the massive quantity of 3f01 the latter (it’s nicely 16 3f01 kB), makes it the best 3f01 board for individuals who wish 3f01 to develop functions with the 3f01 assistance of the working system 3f01 “real-time” FreeRTOS ™, whereas sustaining 3f01 the simplicity of programming in 3f01 an Arduino atmosphere because of 3f01 the aforementioned “ 3f01 MightyCore 3f01 “, installable from the IDE 3f01 add-in card supervisor.
3f01
3f01 The extraordinarily small measurement permits 3f01 then the insertion in extraordinarily 3f01 compact gear and, because of 3f01 the potential for eliminating the 3f01 “superfluous” (LEDs, pull-up, and so 3f01 forth..), even at very low 3f01 energy consumption (it’s a few 3f01 microamps).
3f01
3f01
3f01
3f01 FROM OPENSTORE
3f01
3f01
3f01
3f01
3f01