"Arduino Pro Mini, ATMega328P" 修訂間的差異

出自 flip the world
前往: 導覽搜尋
(已建立頁面,內容為 "== Toolchain == * sudo apt-get install gcc-avr # A port of GCC to AVR target processor * sudo apt-get install gdb-avr # AVR GNU debugger * sudo apt-get install b…")
 
(無差異)

於 2018年8月23日 (四) 11:12 的最新修訂

Toolchain

  • sudo apt-get install gcc-avr # A port of GCC to AVR target processor
  • sudo apt-get install gdb-avr # AVR GNU debugger
  • sudo apt-get install binutils-avr #low-level utilities for building & manipulating object files
  • sudo apt-get install avr-libc # AVR Library files
  • sudo apt-get install avrdude # command-line program for programming AVR chips.

Pin definition

ProMiniPinout

PORT mapping

  • PORTD maps to Arduino digital pins 0 to 7
    • DDRD - The Port D Data Direction Register - read/write
    • PORTD - The Port D Data Register - read/write
    • PIND - The Port D Input Pins Register - read only
  • PORTB maps to Arduino digital pins 8 to 13 The two high bits (6 & 7) map to the crystal pins and are not usable
    • DDRB - The Port B Data Direction Register - read/write
    • PORTB - The Port B Data Register - read/write
    • PINB - The Port B Input Pins Register - read only
  • PORTC maps to Arduino analog pins 0 to 5. Pins 6 & 7 are only accessible on the Arduino Mini
    • DDRC - The Port C Data Direction Register - read/write
    • PORTC - The Port C Data Register - read/write
    • PINC - The Port C Input Pins Register - read only

LED blinking example

  • Make sure your makefile have defined F_CPU for clock
#ifndef F_CPU
#define F_CPU 16000000UL // 16 MHz clock speed
#endif

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  DDRC = 0xFF; //Nakes PORTC as Output
  while(1) //infinite loop
  {
    PORTC = 0xFF; //Turns ON All LEDs
    _delay_ms(1000); //1 second delay
    PORTC= 0x00; //Turns OFF All LEDs
    _delay_ms(1000); //1 second delay
  }
}

Program

Arduino_FTDI connectivity

  • The connections to make from the FTDI FT232RL and the Pro Mini are:
FTDI232    Arduino_mini
GND    -->   GND

CTS    -->   GND

VCC    -->   VCC (5V for Ardunio Pro Mini 328 - DEV-1113)

TXD    -->   RXD

RXD    -->   TXD

DTR    -->   DTR
  • Program command
    • make program ...or
    • sudo avrdude -q -c arduino -P /dev/ttyUSB2 -b 57600 -p atmega328p -U flash:w:led.hex
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "led.hex"
avrdude: input file led.hex auto detected as Intel Hex
avrdude: writing flash (146 bytes):
avrdude: 146 bytes of flash written
avrdude: verifying flash memory against led.hex:
avrdude: load data flash data from input file led.hex:
avrdude: input file led.hex auto detected as Intel Hex
avrdude: input file led.hex contains 146 bytes
avrdude: reading on-chip flash data:
avrdude: verifying ...
avrdude: 146 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

application - BMA250, triaxial acceleration sensor

Reference