Home

GertDuino Board

image

Contents

1. e low PORTE 5 2 wie alga PORE 1 y er Gy D C crt E te low PORTS iL 2 sie make POR 2 o 0 a ar er Cr gt tie low PORT 2 2 He male PORTO 3 O er Gr D K ut low PORT ut high PORT 0 E cr gt ut low PORT ut high PORT Ds et G gt x ut_low PORT ut_high PORT Ds m ct G Gr Fe x ut_low PORT ut_high PORT G ee G Gre mo Ko o ko ei ri Y W e o Wb ko Me MH TO Ko MW ko D GG Gh gi ORO gt ut low PORTD 3 Bie laica PORTE 2 y O 9 O O O ELE O O O O Ob O O OL O O Ob IO O OL O O OL O 6 Zr 20lPage elementiu delay output_low PORTB 2 Oucowe_lniGla PORTS 1 y delay ouroumc_loiw PORTIS 1 y ff forever main Makefile Makefile Make the GertDuino m328p firmware m Copyright c 2013 Gordon Henderson lt projects drogon net gt HEHEHE EH HE E TE FE HE TE FE AF HE FE TEA FE E HE TE FE HE TE FE HE TE EEE EH EH EH EH E AF FE FE HE FE FE HE FE AE E TE FE HE E E HE E E E E AE This file is part of gertduino m328 Software to run on the Atmega328p processor on the Gerduino board Han be used for the Atmega328p processor on the GERTBOARD as well This is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either ve
2. RGET low_power U atmega48p EWO 1000000 Debug EBUG gstabs C flags ee ewi ggce CFLAGS S DEBUG O3 Wall std gnu99 mmcu MCU DF CPU FREWQ S INCLUDE CFLAGS S DEBUG 02 mcall prologues Wall std gnu99 mmcu MCU DF CPU FREWO S INCLUDE LD avi ajuee LDFLAGS2 Wl uvfprintf lprintf flt LDFLAGS mmcu MCU S DEBUG LIBLOC LDFLAGS2 LIBS lcheoss m SRE S TARGET c OBJ S SINC e o all S TARGET hex TARGET hex TARGET elf echo hex lt avr objcopy j text j data O ihex S TARGET elf TARGET hex 24lPage elementiu S TARGET elf OBJ echo Link lt S LD o OBJ S LDFLAGS LIBS avr size S TARGET elf a LSet Elke cule echo ist lt avr objdump h S lt gt G Becho CCl lt S CC c S CFLAGS lt o SR PHONEY clean clean iim E 0 lt La nea Isic Maker le Jee WA Program 48 bin bash Script to program 48pa device using AVRDUDE and a hex file S US aH Wu 8 then echo Missing argument exit ile fi if ends in hex use full argument otherwise add the hex ext 1 1 4 if Sext hex then sz Mola aniele e Golo o miso Sil Ua Sia ri else sra pim ovr oude e eje 9 m4 sions ib hex lettre SL inex JE at Save the above code in a file called pr
3. RS232 Atmega 48 1 Raspberry Pi gt Atmega 328 RS232 Atmega a buffers buffers I I I I I I I I I I I 1 Atmega 328 RS232 I I I I 48 I I I 5lPage elementi 3 Atmega 328 3 1 Features This device is compatible with the Arduino Uno In contrast to the 328 on the GERTBOARD this device runs of 5V has the 16MHz oscillator and has connectors which are 100 Arduino Uno compatible It also contains the reset switch This board also has the following components which you will not find on the Uno e 2 User push buttons e 6LEDs LEDs One LED is connected to PB5 aka Port 13 aka SCK This is compatible with the UNO The GertDuino has a five more LEDs The total list of LEDs is PB5 Port 13 PB1 Port 9 PB2 Port 10 PD3 Port 3 PD5 Port 5 PD6 Port 6 The LEDs are not directly connected but are buffered and thus do not give any significant load on the signal pins User buttons The two user buttons are connected to pins PC2 and PC3 They will only function correctly if the pins have an internal or external pull up The button are connected through a 1K Ohm resistor so they will not cause a short if a pin is set as output and the button is pressed 3 2 Program the Atmega 328 To program this device from
4. S lt 21lPage elementiu avr objcopy j text j data O ihex S TARGET elf TARGI S TARGET elf OBJ echo Link lt S LD o OBJ S LDFLAGS LIBS davr size S TARGET elf Generate lst file rule Sep sc Boo echo lst S lt avr objdump a S S lt gt SG echo CC lt S CC c CFLAGS lt o SR EN clean Wim E sO elli lee CS Lee Nedd lee ask Program 328 bin bash script to program 328p device using AVRDUDE and a hex file if 1 then echo Missing argumen exit 1 Eat if ends in hex use full argument otherwise add the hex ext 1 1 4 if Sext hex then Zen oiim ewyneoluole e cio o 13265 Sil uelasiagwe Sil else usr oim anv dude e eje gt noe je Sl las Witlasinewe Sas E Save the above code in a file called program_328 and then run chmod 777 program_328 Use program_328 lt hex file gt to program the Atmega device Initial clock setup avrdude gg c gpio p atmega328p U lock w 0x3F m U efuse w 0x07 m U lfuse w 0xE7 m U hfuse w 0xD9 m You normally run the above command when you get a brand new device It programs the Atmega328 to use the external 16MHz Crystal o 22 Pag elementiu 8 2 Atmega 48 This section shows an example program for the Atmega48 the programming files are very similar to the 328 example You will find th
5. 1 ECO Pin Signal No 6 A5 PC5 SCL 5 A4 PC4 SDA 4 A3 PC3 ADC3 BUT1 3 A2 PC2 ADC2 BUTO 2 A1 PC1 ADC1 1 A0 PCO ADCO Pin 1 is on the left hand side so these tables top to bottom are the pins from right to left Beware that Pin 8 of J9 is normally connected directly to the input voltage which has been removed and thus is NC here 13lPage 5 3 Atmega 48 elementiu All unused pin of the Atmega 48 are brought out to a 20 pin connector 1 1 5V VBAT 5V ADCO PCO AO 13 PB5 SCK 12 PB4 MISO 11 PB3 MOSI ADC1 PC1 A1 10 PB2 SS ADC2 PC2 A2 9 PB1 PCINT1 ADC3 PC3 A3 8 PBO CLKO RXD PDO 0 7 PD7 AIN1 TXD PD1 1 6 PD6 AINO TO PD4 4 5 PD5 T1 Ground Ground The supply 5V VBAT which goes to the Atmega 48 also goes to the connector pin 3 Any equipment connected to that pin will also draw current from the battery if the 5V is switched off The supply comes through a Schottky diode so the actual voltage is lower 4 5 Volts Also the current consumption should be limited 100mA The following pins of the ATmega 48 are dedicated connected Pin Hard wired to Function PD2 5V Supply Detect absence of 5V supply for RTC PD3 IRDA output Receive RDA signal PC5 SCL 12C connection with the Pi PC4 SDA IC connection with the Pi PB7 XTAL1 32768Hz Tuning crystal PB6 XTAL2 32768
6. contains a number of connectors You will find that in the document the connectors of the Atmega devices have two ways of numbering There are the single numbers 0 13 and A1 A3 These are the numbers used in many Arduino example programs Alongside those use the official pin names PBO PB7 PDO PD7 PCO PC3 The latter are easier to use if you have to work with the AVR datasheet 5 1 Alternate functions The Atmega 328 and the Atemege 48 have exactly the same pins with the same functionality The devices only differ in the size of their various memories The following is a table of the pins and all the functions they can carry These where copied from the AVR datasheet For details of the functions you should read that datasheet Name Functions PB7 XTAL2 Chip Clock Oscillator pin 2 TOSC2 Timer Oscillator pin 2 PCINT7 Pin Change Interrupt 7 PB6 XTAL1 Chip Clock Oscillator pin 1 or External clock input TOSC1 Timer Oscillator pin 1 PCINT6 Pin Change Interrupt 6 13 PB5 SCK SPI Bus Master clock Input PCINT5 Pin Change Interrupt 5 12 PB4 MISO SPI Bus Master Input Slave Output PCINT4 Pin Change Interrupt 4 11 PB3 MOSI SPI Bus Master Output Slave Input OC2A Timer Counter2 Output Compare Match A Output PCINT3 Pin Change Interrupt 3 10 PB2 SS SPI Bus Master Slave select OC1B Timer Counter1 Output Compare Match B Output PCINT2 Pin Change Interrupt 2 9 PB1 OC1A Timer Co
7. the Raspberry Pi you have to place the following 4 jumpers Then run the script Program 328as described in section 8 1 Atmega 328 To program the 328 using a JTAG ICE you need to use the squid cable and make the following connections LED The first debug tool any programmer grabs for 6lPage elementiu At the left there are the GND white and 5V Purple connections At the top row right are the Reset green Mosi Red Clk Black and Miso Grey The equivalent JTAG names for these are nSRST TDI TCK TDO 3 3 Using running the Atmega 328 When the device has been programmed it will run that program independent of the Raspberry Pi In fact you can remove the board from the Raspberry Pi and use it standalone When developing programs you may leave the jumpers in place as the programme will tri state its pins and set the reset pin high when it has finished This is NOT the case if the Pl is reset or not powered Especially the reset jumper needs to be removed otherwise the Raspberry Pi GPIO pin 8 which is default ow will the keep the 328 device in reset or you can run the reset_off script You should also remove the jumpers if you want to use any of the following pins B3 B4 B5 C6 4 Atmega 48 4 1 Features This device is intended to be used as Real Time Clock RTC and or as IRDA front end However it is also freely programmable by the user and thus can be used for any other application giving the
8. user the power of not one but TWO Atmega devices to play with Note The 2C interface of the Atmega 48 is connected permanently to the Raspberry Pi 12C interface lt GOIO0 1 on rev1 GPIO 2 3 on rev2 gt Also beware that if you make programming errors with the Atmege 328 the device can easily be replaced This is not the case with the Atmega 48 lt is therefore strongly recommended that you are extra careful and do not damage any of the I O ports Spare connections The following I O pins of the Atmega 48 are not used and are brought out to a connector B0 B1 B2 B3 B4 B5 C0 C1 C2 C3 D0 D1 D4 D5 D6 D7 Beware that B3 B4 and B5 are also used for programming the device 4 2 Program the Atmega 48 To program the Atmega 48 from the Raspberry Pi you have to place the following 4 jumpers The programming is the same as the 328 but replace 328p with 48pa The colours used here are the same as on MY squid cable but I can t guarantee all squid cables are the same TlPage elementiu To program the 48 using a JTAG ICE you need to use the Squid cable and make the following connections may At the left there are the GND white and 5V Purple connections At the bottom row right are the Reset green Mosi Red Clk Black and Miso Grey 3 The equivalent JTAG names for these are nSRST TDI TCK TDO 4 3 Using running the Atmega 48 What was written about the 328 also is valid for the 48 when th
9. Henderson projects drogon net who has provided these Standard Debian Squeeze cd tmp wget http project downloads drogon net gertboard avrdude 5 10 4 armel deb sudo dpkg i avrdude 5 10 4 armel deb sudo chmod 4755 usr bin avrdude Debian Raspbian cd tmp wget http project downloads drogon net gertboard avrdude 5 10 4 armhf deb sudo dpkg i avrdude 5 10 4 armhf deb sudo chmod 4755 usr bin avrdude You can now compile programs for the Atmega devices and upload the program into the chip on the GertDuino Example source code Makefile and how to upload the program can all be found in section 8 Example programs If you want to use the Arduino development environment you have to adapt it See projects drogon net raspberry pi gertboard arduino ide installation isp how to do that 7 2 OnaPC Atmel have a free C compiler You can get information about the latest version here http www atmel com tools ATMELSTUDIO aspx You can compile on the PC but you need to transfer the final hex file to the Raspberry Pi before you can program the Atmega devices 17 Page elementiu Alternative is that you buy a JTAG ICE box and use that to program and the devices but that is a lot more expensive It does have the advantage that you can use it for debugging as well Step through the program set breakpoints inspect variables etc l8lPage elementiu 8 Example programs 8 1 Atmega 328 blink c source code TG dL a
10. Hz Tuning crystal PC6 Program reset Reset when programming The Atmege 48 does not have a dedicated reset pin as that would interfere with its function as real time clock A reset can be obtained by pulling pin 4 of J13 low 14 Page elementiu 5 4 Raspberry Pi All connections between the board and the Raspberry Pi are protected against 5V signals The 1 C bus has FET level switches All the other signals use resistive dividers The following connections of the Raspberry Pi are used 5V 3V3 1 C level converters only GPIO0 2 1 C SDA GPIO1 3 1 C SCL The following connections of the Raspberry Pi are used if the programming jumpers or UART jumpers are placed GPIO14 GPIO15 GPIO8 GPIO9 GPIO10 GPIO11 UART Tx UART Rx Reset MISO MOSI SCLK 15lPage elementiu 6 Frequently Asked Questions FAQs Some questions you may ask and the answers avrdude AVR device not responding O When I try to program the device get an error avrdude AVR device not responding A The most likely cause is that you have forgotten to place the four programming jumpers See section 3 2 Program the Atmega 328 Why is my program slow Q When I run the program it is very slow Where expect a delay of 1second it takes much longer A Straight from the factory the CPU runs from the internal 8MHz clock and that is divided by 8 Thus the processor runs at 1 MHz To switch to the full speed using the external 16MHz o
11. at the makefile and low_power c source code Example code which uses the 32767KHz Crystal to implement a 1 second event handler Atmega Low power operation example Using a 32768 Khz crystal on timer 2 and full power down mode to implement a 1 second event handler This code is written for the GCC compiler Example for the GertDuino Atmega 48PA device This program will NOT run on the 328 incl This code is freeware lude incl lude lt avr interrupt h gt lt avr sleep h gt volatile unsigned long count_seconds main set DDRB Set up 32 KHz TIMSK2 ASSR PBO as output OxFE OSCaL ll llain 0x00 No interrupts Washa os all hi TCNT2 TCCR2B 0x20 0 0x05 async run from xtal Cle creme Oumar Il presceale 5 128 busy bits to be clear That happens on the first timer overflow which can take 8 seconds if you have a max pre scaler while TIMSK2 0x01 count_seconds sei ASSR amp 0x07 0 overflow IRQ enable clear seconds counter set the Global Interrupt Enable Bit while 1 SMCR 0x7 Go into lowest power sl asm sleep asm nop fi Tarcerrwo If we ge p mod woke us up here the interrupt routine has already been called M toggle UU on porce B0 using LS team Dit PORTS count_seconds amp 0x01 main 23lPage elementiu T
12. e device has been programmed it will run that program independent of the Raspberry Pi In fact you can remove the board from the Raspberry Pi and use it standalone When developing programs you may leave the jumpers in place as the programme will tri state its pins and set the reset pin high when it has finished This is NOT the case if the Pl is reset or not powered Especially the reset jumper needs to be removed otherwise the Raspberry Pi GPIO pin 8 which is default low will the keep the 48 device in reset or you can run the reset_off script You should also remove the jumpers if you want to use any of the following pins B3 B4 B5 C6 4 4 Real Time Clock The Atmege 48 device has a 32768Hz crystal connected to operate as a Real Time Clock RTC Example code for this can be found under section 8 2 Atmega 48 The Crystal is a high quality type and under normal conditions a deviation is less than 1 sec 3 days The other part of the RTC is that the Atmega 48 has a 3V battery It will switch to that battery when the 5V power is removed As the Atmega 48 is a fully programmed microcontroller it can be set up to perform other operations or hold other data when the main power of the BCM2835 is removed If you have programmed the Atmege 48 correctly it uses 11A when powered down 4 5 Infra red receiver remote control receiver The BCM2835 does not have a native IRDA interface The protocol can be implemented using a standard GPIO pin but tha
13. elementi GertDuino Board Exclusively From A elementiu GERTBOARD User Manual By G J van Loo Version 1 4 Dated 6 Nov 2013 elementiu 1 Contents CONTENES cent 2 T Fninoducuon ese caste aaa aa a a aaa i a i GM DO 3 1 1 Ldent Ty T 3 1 2 0100 Of 1 EE HE da did HF 4 ae MON aui a GC a a a y a a a Y a 4 2 RS232 TE EE H 2 1 Atmega 328 amp LAU NU 222222 wa 5 2 2 Atmega 48 UART A 5 9 Atmega 328 iia 6 3 1 FeatUures T 6 3 2 Program the Aimega 228 6 3 3 Using running the Atmega 228 7 4 ALM E EE 7 4 1 SET cui T 7 4 2 Program the AtMEeda 48 iii di 7 4 3 Using running the Atmega A8 8 4 4 Real Time Cloud va S seis tied ee a aka 8 4 5 Infra red receiver remote control receiver 20 eee eeeeseeeeeeceeceeseesececeeseeseceeeeeeeseeeenreeees 8 4 6 Battery Dain vesscscecessescccaicessivescecsdsaaeaesieasceaidnrsesecemaeeetivatenisaanaeciaiseasatidnnaneentd FD Cd 9 4 7 Atmega 48 LED Trick 10 O e ele EE 11 5 1 Alternate SA 11 5 2 ALI CQO ARG E 13 5 8 ge EE 14 b 4 Raspberry Pins 15 6 Frequently Asked Questions FAQs wawa 16 7 How to E A A A i i al r ia a WD 17 7 1 On the EE el ed E EE 17 1 2 TOMA RN 17 8 Example prograim s iio a a R E 19 8 1 AtMeda 328 misis a e i i dias 19 8 2 AUMIA AA DF YY GYFF yy 23 9 Control Arduino AS SU e eecrrrero ciio orea E noa EE EEE E EER 265 10 Appendix A GertDuino Gchematic non cc conocio aaa 26 2lPage elementiu 1 Introduction The GertDu
14. im o e Creacecds 23 09 2013 212042102 Author G J van Loo Simple example program to walk the LE me Lance lt awie lo n gt define DELAY 250 define F CPU 16000000 macros that make the code more readable output_low port pin port l lt lt pin Ottot del poa Pore AS set_input portdir pin portdir g 1 lt lt pin Sek Een force jasa verb tzt L lt lt Dim Onnen ALE LEDO PB5 LED1 PBI LED2 PB2 LED3 PD3 LED4 PD5 LED5 PD6 void delay_ms unsigned int ms vila lO delay count F CPU 1750075 volarile ubmel e ils while ms 0 zos ai Op a l ckeulewy comite las I MS delay_ms void delay long d unsigned char oldb ol for d 0 d lt DELAY d delay_ms 1 if PINC 6 0b00001000 0 oldb PORTB 19 Page elementiu oldd PORTD PORTB OxFF PORTD OxFF delay_ms 1 PORTB oldb PORTD oldd else if PINC amp 0600000100 0 g else delay_ms 1 if button pressed i button pressed delay int main void mg los Set all LED connections to output DDRB 0b00100110 DDRD 0b01101000 PORTB 0x00 PORTD 0x00 fi Sec button Port C to aput DDRC 0b00000000 M ewull up om C2 e CSS PORTC 0b00001100 while 1 convoluted but simple walk the leds atout nigh PORTS 5 D er Cr gt
15. imer 2 overflow if we set timer2 up correctly this routine is called every second ii ISR TIMER2_OVF_vect count_seconds all we do here is count seconds elapsed Makefile t Makefile Make the GertDuino m48p firmware Copyright c 2013 Gordon Henderson lt projects drogon net gt EE TE FE HH FE E HH E HE TE FE HE FE FE EO EH aE HE HE HEE FE FE FE HE FE FE EE HEH EEE A This file is part of gertduino m328 Software to run on the Atmega328p processor on the Gerduino board Han be used for the Atmega328p processor on the GERTBOARD as well This is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 of the License or at your option any later version This is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU Gene along with this If not see lt http www gnu o HEHEHE EH EH TE HH HHH EH FE HE FE EEE EE EEE EH EH EH EH EH EH E E E EE
16. ino is a Raspberry Pi add on board which offers the same functionality as an Arduino Uno but with some extra added features 1 1 Identify The picture below lets you identify the various functions on the board e RS232 level converter can be used by o Raspberry Pi o or Atmega 328 o or Atmega 48 e Atmega 328 Arduino Uno compatible with o Arduino Uno compatible connectors o Reset button o 2 user push buttons o 6 LEDs e Atmega 48 with o l O connector with 20 pins High precision RTC crystal Battery backup power supply IRDA interface ooo PCB Overview wee Y ww we mg me e 2 2 2 e e A e e e e e e e 0 L IRDA receiver 4 ED JJ ee ee ee 4 Battery for RTC 4 Lk aeeeeeeee 122 _ Reset button SY A e SG Ae AG We M mir y ee E E Px ps azi os ws PAF i aa gara LLU UR E y x 2user buttons 6LEDS p More I O WI RTCX tal EEE i aaa rra aa mm boon aaa af Picture 1 GertDuino Functions 3lPage elementiu 1 2 Comparison There are some differences between a normal Arduino Uno and the Gert Duino Function Arduino Uno GertDuino USB Slave interface Reset button Yes Yes Power supply 7 12V gt 250mA lt 5V Raspberry Pi gt 3V3 supply 50mA 150mA LED s One Not buffered Six Buffered User pushbuttons Two RS232 buffer Yes Real Time Clock Yes Infra red interface Yes Table 1 Comparison GertDui
17. l assert the Arduino reset and thus make that the Arduino chip stops is held in reset It only works if the GertDuino is plugged in to the Raspberry Pi and the reset jumper is in place usr bin sudo bash Set GPIO pin 8 low activating Arduino reset sudo echo 8 gt sys class gpio export sudo echo out gt sys class gpio gpio8 direction sudo echo 0 gt sys class gpio gpio8 value sudo echo 8 gt sys class gpio unexport 10 Appendix A GertDuino Schematic 26lPage
18. mge 48 It is one of the I2C pins Thus if your 48 is driving a LOW on that pin the Pi always boots in safe mode To prevent this you can put avoid safe mode 1 in the config txt file and the pi will boot normally Why is there no battery supplied G The GertDuino has a battery holder but there is no battery in there Why do I have to buy my own A These batteries are lithium batteries Those are classified as Dangerous Goods and require special paper work warning labels and other precautions when shipped And that is for shipping within the UK International shipping becomes a nightmare So we decided to leave it off l6lPage elementiu 7 How to start Before you can program the devices you need to have a cross compiler A cross compiler is a compiler which runs on one type of processor but generates code for a different type In this case the compiler runs on the Raspberry Pi ARM11 device but makes code for the Atmel devices 7 1 On the Raspberry Pi When programming the Atmel devices on the Raspberry Pi you have two choices e Use the Arduino GUI e Use the GCC Atmel compiler For both you need to have across compiler for the Atmega devices Easiest is to install the Arduino package sudo apt get install arduino avrdude You need to use a program called avrdude to program the devices BUT you need a special version of avrdude which can program the devices using the GPIO of the Raspberry Pi Thanks for Gordon
19. no vs Arduino Uno 1 3 Vext As the board does not have a separate supply the Vext is not connected If you want it connected you have to add the following components J1 L4 or a short instead of L4 D20 or a short instead of D20 2 RS232 UART The Gerduino board has a RS232 level converter which will convert the signals form a UART to the RS232 standard voltages And invert them as per that same standard The RS232 signals come from J12 Pin 3 is the receive Pin 2 is the transmit Pin 1 is the ground 4lPage elementi Connections can be made in many ways 2 1 Atmega 328 amp Pi UART Pi to RS232 buffers Atmega 328 to RS232 buffers Pi to Atmega 328 FE SSS SS SS SS SSS SSS Sea ah EE Seal Pe SS SS Se ees Raspberry Pi gt I I I Raspberry Pi A _ l i I I lt Atmega 328 l l RS232 I I I I I I l Atmega 328 RS232 l Raspberry Pi gt Wa lt Atmega 328 RS232 buffers buffers Atmega Atmega 48 48 2 2 Atmega 48 UART Atmega 48 to RS232 buffers Atmega 48 to Atmega 328 Atmega 48 to Pi SSS SSS SS SSS SS SS ee 2 p SSeS SSeS SSS ees SSS Sa SSS S235 SSS SSS SS Ha Raspberry Pi gt lt q Atmega 328
20. ogram_48 and then run chmod 777 program_48 Use program_48 lt hex file gt to program the Atmega 48 device 9 Control Arduino Reset The Raspberry Pi GPIO 8 pin controls the Arduino reset pin when the jumpers are in place When starting the pin is LOW and thus the Arduino chip is held in reset To control the reset gpio 8 pin you can use the scripts shown below Don t forget to change the mode of the text file to executable format chmod 777 reset_off Depending on your path you may have to call the script starting with a lt dot gt lt slash gt reset_off Alternative copy the scripts to usr bin sudo cp reset off usr bin If you want the Raspberry Pi to always execute the script at boot up you have to edit the etc rc local file Make sure that you have the full path in there Thus if you have installed the script in usr bin you have to add the following line to etc rc local usr bin reset_off 25lPage elementiu reset off The following script will release the Arduino reset and thus make that the Arduino chip runs It only works if the GertDuino is plugged in to the Raspberry Pi and the reset jumper is in place usr bin sudo bash Set GPIO pin 8 high releasing Arduino reset sudo echo 8 gt sys class gpio export sudo echo out gt sys class gpio gpio8 direction sudo echo 1 gt sys class gpio gpio8 value sudo echo 8 gt sys class gpio unexport reset_on The following script wil
21. r but between the supply and the battery holder you have to place a current Ampere meter Optionally you can connect a scope on one of the I O pins of the Atmege48 to see if the program is running You should NOT connect anything to one of the output which loads an I O pin as that will cause extra current consumption This is a block diagram of the setup Gertduino eee Won Atmega48pa os Se OS Se ses ees ce eee oon ai ee cn And this is how it looks in real life The meter shows a current consumption of 1 3uAmp The meter is shown enlarged in the lower left hand corner of the picture 9lPage elementiu If possible limit the current from your power source to a few milli amps managed to blow a fuse of my meter performing the measurements because accidentally shorted the supply when placing the probe on the battery holder 4 7 Atmega 48 LED trick If you are debugging an LEDs is often the first tool you reach for But the Atmega 48 does not have any LEDs However the Atmega 328 does There are two ways in which you can use these LEDs e The safest way is to remove the 328 from its socket e The second way is to erase the 328 so that all its pins are inputs You can then use the connectors to feed a signal to an LED Simplest way is to use a female male strap between connector J10 and e g pins 2 3 or 6 of J14 10lPage elementiu 5 Connectors The board
22. rsion 3 of the License or at your option any later version m u f This is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of m m y MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with this If not see lt http www gnu o licenses gt E AE IE E E AE E AE FE AE E AE E AE FE AE E AE E AE FE AE E AE AE E FE AE E E AE AE FE FE AE E AE AE E AE AE E AE AE AE AE AE FEAE E AF EAE AE AE TF TF TE AE AE AE TE TE AE AEAF TARGET blink U atmega328p EWQ 16000000 Debug EBUG gstabs C flags ea avr gee CFLAGS DEBUG 03 Mall std gnu99 mmcu MCU DF CPU FREWQ INCLUD CFLAGS DEBUG O2 mcall prologues Wall std gnu99 mmcu MCU DF CPU FREWQ S INCLUDE LD 21529 FLDFLAGS2 W1 uvfprintf lprintf flt LDFLAGS mmcu MCU DEBUG S LIBLOC LDFLAGS2 LIBS l ross lin SRC S TARGET c OBJ SSRA O TARGET hex ARGET hex TARGI echo hex
23. scillator run the avrdude command as described in 8 1Atmega 328under Initial clock setup Why does my program not run Q When I upload the program it runs fine but when halt the Raspberry Pi or when I start the Raspberry Pi my program does not work A GPIO 8 controls the Reset of the Arduino This pins must be high but for your program to run The simplest solution is to remove the programming jumpers Alternative is to program the GPIO 8 pin high using the reset_off script The avrdude with the c gpio option does this for you so normally after programming the reset has been removed have a different compiler O use the AVR compiler on my PC How do I program the Atmega on the Raspberry Pi A I have only experience with the GCC version AVR 5 1 and higher After compilation you find a hex file in the debug directory You have to transfer that file somehow to the Raspberry Pi and use the programmer script Program 328 as described in 8 1Atmega 328 to program the device s on the GertDuino If you have the script already installed use program_328 lt hex file gt The Raspberry Pi boots different it has big text and not the normal prompt G When I plug the GertDuino on the Raspberry Pi it boots different It has big text and not the normal prompt A Pin 5 of the GPIO connector is used to indicate safe boot mode If that pin is low when booting the Raspberry Pi boots in safe mode Pin 5 is also connected to the At
24. t puts a very heavy burden on the CPU To support IRDA the Atmega 48 has a TSSOP4038 IRD device connected to pin D3 This device supports the most common IRDA protocol 38KHz IR signal Unfortunately we could not run the IRDA interface from the battery as it uses too much current 450 uA Thus you need the 5V present for it to operate The colours used here are the same as on MY squid cable but I can t guarantee all squid cables are the same 8lPage elementi The IRDA can also be used if the GertDuino is used stand alone to control the connected logic using a remote control Note that 95 of all TV Video CD remote controls use the 38KHz infra red signal but the coding varies greatly from type to type 4 6 Battery Drain If a battery is present and the power of the Raspberry Pi is switched of the Atmega 48 will still remain powered by the Battery lt will also keep running Unless the battery is removed or the Atmega 48 is programmed to go into a special ultra low power condition the battery will be drained in a short time Even if you think the device is in ultra low power mode it can still consume power if it has to drive outputs high Measurements have also show that if a UART connection exists between the Atmega 48 to the Raspberry Pi even if it is not used that increases the lower power current from 1uA to about 100uA To measure the current consumption you have to use a 3V supply and connect it to the battery holde
25. unter1 Output Compare Match A Output PCINT1 Pin Change Interrupt 1 8 PBO ICP1 Timer Counter1 Input Capture Input CLKO Divided System Clock Output PCINTO Pin Change Interrupt 0 lllPage elementiu Name Functions ADC5 ADC Input Channel 5 A5 PC5 SCL 2 wire Serial Bus Clock Line PCINT13 Pin Change Interrupt 13 ADC4 ADC Input Channel 4 A4 PC4 SDA 2 wire Serial Bus Data Input Output Line PCINT12 Pin Change Interrupt 12 ADC3 ADC Input Channel 3 AS PC3 PCINT11 Pin Change Interrupt 11 A2 PC2 ADC2 ADC Input Channel 2 PCINT10 Pin Change Interrupt 10 Al PC1 ADC1 ADC Input Channel 1 PCINT9 Pin Change Interrupt 9 AO PCO ADCO ADC Input Channel 0 PCINT8 Pin Change Interrupt 8 Name Functions PD7 AIN1 Analog Comparator Negative Input PCINT23 Pin Change Interrupt 23 6 PD6 AINO Analog Comparator Positive Input OCOA Timer Counter0 Output Compare Match A Output PCINT22 Pin Change Interrupt 22 5 PD5 T1 Timer Counter 1 External Counter Input OCOB Timer Counter0 Output Compare Match B Output PCINT21 Pin Change Interrupt 21 4 PD4 XCK USART External Clock Input Output TO Timer Counter 0 External Counter Input PCINT20 Pin Change Interrupt 20 3 PD3 INT1 External Interrupt 1 Input OC2B Timer Counter2 Output Compare Match B Output PCINT19 Pin Change Interrupt 19 2 PD2 INTO External Interrupt 0 Inp
26. ut PCINT18 Pin Change Interrupt 18 1 PD1 TXD USART Output Pin PCINT17 Pin Change Interrupt 17 0 PDO RXD USART Input Pin PCINT16 Pin Change Interrupt 16 12lPage 5 2 Atmega 328 The Atmega 328 pins are brought to connectors compatible with the Arduino Uno J14 J7 elementiu OOO 90000000000 0000000000 0O00 oo 9000000000 20000000 Pin Signal A5 PC5 SCL A4 PC4 SDA AREF Ground 13 PB5 SCK LEDO 12 PB4 MISO 11 PB3 MOSI 10 PB2 SS LED2 9 PB1 PCINT1 LED1 Z P o aloa lujo oi le 8 PBO CLK0 Pin Signal 7 PD77AIN1 6 PD6 AINO LED6 5 PD5 T1 LED5 4 PD4 TO 3 PD3 INT1 LED4 2 PD2 INTO 1 PD1 TXD NP OF O GO IO 0 PD0 RXD Pin 1 is on the right hand side so these tables top to bottom are the pins from left to right J9 Ooo Pin Signal NC Ground Ground 5V 3V3 Reset Active low 5V 1M O B O O I NC J6

Download Pdf Manuals

image

Related Search

Related Contents

Cooper Lighting AR111 User's Manual  EMC VSPEX-Anwender-Computing, VMware Horizon View 6.0 und    超漢字Vインストールガイド[最新版]  くわしーい作り方解説  none IF-LA100-000 Installation Guide  Manual del Propietario  Netgear WN121T User's Manual  informação de funcionamento e manutenção  HP Photosmart 6510  

Copyright © All rights reserved.
Failed to retrieve file