ATTiny didn't come with TX/RX Pins, so I have to make it by myself.
Got it from http://www.bot-thoughts.com/2012/12/attiny-software-serial-tx-in-assembly.html
Slightly modify it because avra didn’t compile it original source
.include "../tn13Adef.inc" ; definitions for ATtiny13A
.cseg
.org 0x00
rjmp start ; executed after reset
start:
ldi r16, 0x6D ; 'm'
ldi r17, 8 ; put 8 in counter register
txloop:
lsr r16 ; shift off the next bit, LSB first
brcs Send1 ; if it is 1 (C=1) then send 1
Send0:
cbi PORTB, PB0 ; send a 0=low
rjmp BitDone
Send1:
sbi PORTB, PB0 ; send a 1=high
BitDone:
dec r17 ; bitcnt--
breq start ; if bitcnt == 0, start over
rjmp txloop ; else do the next bit
Build, compile and upload it
Nugrohos-MacBook-Air:serial nugroho$ avra -o serialTX.hex serialTX.s
AVRA: advanced AVR macro assembler Version 1.3.0 Build 1 (8 May 2010)
Copyright (C) 1998-2010. Check out README file for more info
AVRA is an open source assembler for Atmel AVR microcontroller family
It can be used as a replacement of 'AVRASM32.EXE' the original assembler
shipped with AVR Studio. We do not guarantee full compatibility for avra.
AVRA comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of avra under the terms
of the GNU General Public License.
For more information about these matters, see the files named COPYING.
Pass 1...
Pass 2...
done
Used memory blocks:
Code : Start = 0x0000, End = 0x000A, Length = 0x000B
Assembly complete with no errors.
Segment usage:
Code : 11 words (22 bytes)
Data : 0 bytes
EEPROM : 0 bytes
Nugrohos-MacBook-Air:serial nugroho$
Nugrohos-MacBook-Air:serial nugroho$ ls
serialTX.s serialTX.s.eep.hex serialTX.s.obj
serialTX.s.cof serialTX.s.hex serialTX1.s
Nugrohos-MacBook-Air:serial nugroho$ avrdude -p t13 -c usbasp -P usb -B4 -n
avrdude: set SCK frequency to 187500 Hz
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9007
avrdude: safemode: Fuses OK (H:FF, E:FF, L:6A)
avrdude done. Thank you.
Nugrohos-MacBook-Air:serial nugroho$ avrdude -p t13 -c usbasp -P usb -B4 -U flash:w:serialTX.s.hex
avrdude: set SCK frequency to 187500 Hz
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9007
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: set SCK frequency to 187500 Hz
avrdude: reading input file "serialTX.s.hex"
avrdude: input file serialTX.s.hex auto detected as Intel Hex
avrdude: writing flash (22 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 22 bytes of flash written
avrdude: verifying flash memory against serialTX.s.hex:
avrdude: load data flash data from input file serialTX.s.hex:
avrdude: input file serialTX.s.hex auto detected as Intel Hex
avrdude: input file serialTX.s.hex contains 22 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 22 bytes of flash verified
avrdude: safemode: Fuses OK (H:FF, E:FF, L:6A)
avrdude done. Thank you.
Nugrohos-MacBook-Air:serial nugroho$
I use USB-to-TTL, and after several fail attempt to compile and upload using usbasp, I’m getting annoyed, so I use hc-05 (a bluetooth module) to communicate with ATTiny. Just connect the RX pin to PB0.
Nugrohos-MacBook-Air:serial nugroho$ screen /dev/cu.HC-05-DevB
avr
modify it
note that
L1: dec r20
brne L1
will generate error
Pass 1...
Abort trap: 6
edit it to
L1:
dec r20
brne L1
not sure why avra refuse the first formatting
(of course the code above still won't work, it lacks the baud rate :) )
(of course the code above still won't work, it lacks the baud rate :) )
No comments:
Post a Comment