Is there a list of AVR acronyms anywhere?

Go To Last Post
43 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The AVR datasheets are full of acronyms for registers, signals, etc., and there have been many times when looking or their meanings has cost me two or three minutes.  It would be so handy to have a list of them open on another screen for quick reference when reading the datasheet.  A search of the site didn't throw up a list - but there may be one tucked away somewhere.

Does anybody know of one?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The name of the register is right above its acronym in the section devoted to the peripheral to which it is a part of....what more do you need?

Jim

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Although I'm only sure of Atmel-8271I-AVR, but it has a summarization of registers and opcodes starting on page 612. I would image other datasheets oriented around a specific family of AVR's would have the same thing.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AVR_coder_1, thanks for the pointer.  I looked up your datasheet, and yes, the chip I'm working with has a similar list of registers, but not all acronyms are register names.

 

"what more do you need?" - a list of acronyms.

I have spent quite a bit of time, cumulatively, looking for acronyms.  As you suggest, jgmdesign, they are all in there somewhere, and when I search the sheet, I always find what I'm looking for, but sometimes I may find the acronym used 30 times, and for each one, I need to read the text around it to see if the acronym is expanded.  In most cases, the expansion of an acronym only happens once in the datasheet.  The one that prompted my question was PCK.  The CK told me that it was likely to be a clock, but I couldn't think what the P might be, and sometimes, acronyms turn out to be not what I had thought probable.  I know now that it's the fast peripheral clock, although the datasheet never actually spells it out.  It talks about "the fast 64 MHz (or 32 MHz in Low Speed Mode) PCK clock in the asynchronous mode", and "Internal PLL for Fast Peripheral Clock Generation - clkPCK", which suggest what it is.  This was the first time I had encountered it (I'm starting to look at the timers), and it took a couple of minutes to find.  If there was an alphabetic list, it would be much quicker.

However, if there isn't, then it's no big deal.  Like everybody else that starts to learn AVR, I'll look for them and spend the time necessary.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 I was not sure what PCK was, so I used GOOGLE, and typed in "Atmel PCK" and in 2 seconds I had my answer. Programmable ClocK, and a list of datasheets that when clicked on, some take me right to the section of the data sheets where it is explained...another 5 seconds. The others I had to look around but the Google results already told me where to look so that took a minute more.  The dominant hits though were for ARM devices

 

I then typed "Atmel AVR PCK" and in less than a second I get the datasheets for all the AVR's that have that feature, click on one of the links and there it is in the datasheet in some cases, in others I had to do a cursory look around but I found it in about a minute as well.

 

 

In the datasheets I have on the AVR there is a section called "Register Summary", maybe thats what you are looking for? 

 

 

I tok the time and went through a few of our new owners datasheets for the PIC's I am getting acquainted with, and those datasheets do not have a register summary.  If I want to find out what a register is I have to look for it.  Either wade through the data sheet or Google.  With Google being the better path.

 

Can you post a datasheet that has this summary you are describing?  I can bring it up with the admins.

 

JIm

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

armstack wrote:
I'll look for them and spend the time necessary.

One thing I've come to learn about Atmel, is that their register naming convention be fairly intuitive.  Another was in AS7, have a register window visible while coding. That way if there is an acronym I wasn't to sure about, with a quick click I could see register name and any associated bits. It helps too that they are grouped in a manner associated with the module one is working on.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AVR_Coder_1 wrote:
It helps too that they are grouped in a manner associated with the module one is working on.

 

Sounds familiar:

jgmdesign wrote:
The name of the register is right above its acronym in the section devoted to the peripheral to which it is a part of.

 

AS I do not use AS7 much at all, I am going to have to take a look at that.  In AS6_2 I only see what you describe in Simulator, or during a Debug session.  Great tip!!

 

JIm

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

As Jim say.

In the datasheet just before instruction set there is a register summary , and it have a page number for the different registers, that have always been my index to find the settings.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The datasheet is a PDF document.

 

PDF readers have a 'Search' facility; so use it: put your acronym/abbreviation into the 'Search' facility to find where it is described!

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Not clear to me if you are asking about generic microcontroller terms such as SPI, GPIO, I2C/TWI, ADC, DAC, PWM, UART, USB, CAN, LIN and many others, all of which apply to pretty much any micro and as such are all widely documented on Wikipedia and similar sites (note however that TWI is an Atmel specific name for I2C to avoid infringing Philip's copyrighted name).

 

Or are you talking about Atmel specific register and bit names like TCNT1, ADCSRA, TXEN, ADLAR, etc, etc? The latter are made up terms by Atmel and only exist in their datasheets (where they are fully defined).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for the comments, everyone.  This has generated far more conversation than I had expected.  All I asked was whether an acronym list existed.  Clearly, it doesn't, and that's fine.  I'm not asking for anything to be done about it.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
TWI is an Atmel specific name for I2C to avoid infringing Philip's copyrighted name

It's not just Atmel - others also do that.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sorry no "cliffs notes", you will need to read all of the fine manual datasheet, and will soon be using the acronyms like it is a  part of your natural language!  q:-)

 

 

FF = PI > S.E.T

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

armstack wrote:
I'm not asking for anything to be done about it.

 

Apparently you have asked before:

https://www.avrfreaks.net/forum/s...

 

 

And the link I posted is an excellent thread describing why things are the way they are in many respects.  No manufacturer can make their documentation perfect for everyone.  Plus that would make the communities like AVRfreaks unnecessary. wink

 

JIm

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

jgmdesign wrote:
Apparently you have asked before: https://www.avrfreaks.net/forum/s...

If you re-read that post, you'll find out that it doesn't even mention acronyms.  You're suggesting that I'm asking the same question in several places, but the two questions are entirely different.  The other post was about the potential for improvement to the datasheet, which was not popular, I think, because those who make the decisions about such matters already know the datasheet well enough that they don't need any improvement to help newbies.  Such improvements would have no benefit to them, so they're not interested.  So be it!  It turns out that the AVR processors have been around a lot longer than I thought when I made that suggestion about improving the datasheet, and all manufacturers end product support at some point.

jgmdesign wrote:
Plus that would make the communities like AVRfreaks unnecessary
.  Ah, yes! I think you put your finger on it there.cheeky

 

I believe the acronym problem was highlighted by your post #5.  You said "I was not sure what PCK was, so I used GOOGLE, and typed in "Atmel PCK" and in 2 seconds I had my answer. Programmable ClocK".  I'm dealing with the ATtiny85, and I have just searched its datasheet for "Programmable ClocK", and it's not there.  To me, within the confines of the chip I'm looking at, "Programmable Clock" suggests the main system clock (designated CK), which is programmable through OSCCAL and the prescaler.  As I understand it, PCK is the Peripheral clock, which is independent from the system clock, and asynchronous with it.  An acronym list would have ...

CK - System clock

PCK - Peripheral Clock

... and any confusion would be obviated.

 

jgmdesign wrote:
No manufacturer can make their documentation perfect for everyone.

Yes, I'm sure you're right.  The Atmel literature is beyond improvement and if anybody does suggests any, they should be slapped down immediately. devil

Last Edited: Fri. Apr 14, 2017 - 02:55 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

armstack wrote:
The Atmel literature is beyond improvement and if anybody does suggests any, they should be slapped down immediately. devil

 

WRONG!!!!

 

Read here:

https://www.avrfreaks.net/comment...

 

If you look through the entire thread, and not just THAT post, you will see we are having quite the conversation regarding datasheet accuracy.  Joey just sealed the deal.

 

No one is 'slapping down' anyone immediately, and improving the datasheets has always come up, and it is indeed noticed by the admins back in the big office.

 

armstack wrote:
I'm dealing with the ATtiny85, and I have just searched its datasheet for "Programmable ClocK", and it's not there.

 

I just downloaded teh Tiny 85 Datasheet and did what was suggested in post #9 which use the FIND feature of a PDF reader and simply put PCK in the find window and the first mention of PCK is on page 23 in the CLock Distribution, the second is on page 24 and 25 where a detailed explanation is given on its operation, page 83 also goes into great detail about the PCK and the PCKE bit.

 

All of this was done with the FIND feature of my PDF reader and tapping the enter button.  It indeed took a few minutes, but thats part of engineering, taking time to read the documentation and finding the answers.....A rule at which I do admit I at times am guilty of not following myself wink

 

Cheers,

Jim

 

 

 

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sure, the pdfs have search. But it would be cool if there was a tooltip glossary for the acronyms. You would just float the mouse over an acronym, and a small box with an explanation would appear.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'd like to take a somewhat middle ground, here. Yes, I have run up against many of those acronyms that armstack write about. And, sometimes, like PCK in Tiny85, the acronym just does not seem findable in the text. Sometimes, you can find it as a label in a diagram and your PDF reader might not find it there - mine happens to, pretty much (in Atmel docs, at least). So, searching the document is not always fruitful but that OUGHT to be the first line of inquiry for any spec sheet reader. <EDIT>Hint: many PDF find tools start searching on your currently viewed page. Go back to the start of the document and do your search from there - it is often much more fruitful. </EDIT>

 

Second point - Atmel (and most MCU providers) tend to be quite consistent across members of their product lines. And they are even more so within specific device families. They cannot afford NOT to be, because not being consistent prevents them from using copy/paste when creating new documents. So, if you can find a definition in another member of the broad family (Tiny AVRs, in this case), then there is little reason to think that it would not be representative of the specific one you are looking at. To exercise THIS "feature", the Google search that jgm suggests is usually very productive. Key to success is a good search phrase and jgm showed you exactly how to do it. Couple of seconds, and you are there. Big deal.

 

Now, it is very easy to decry the obfuscation of acronyms. Certainly, I have done it. But, across engineering disciplines, generally, you will find using acronyms is SOP (look that up in your acronym finder!) Its really easy to do, they have the illusion of saving time and space (both, allegedly Good Things). And, besides, "everybody" (who counts) knows them. Its not just a United States issue; England and Germany both rank high in use of technical acronyms (to name just two). If you think engineering is bad, try government (NASA, EPA, and on and on).  My point, here, is that you need to learn to live with it. Not love, but get along. Acronyms are not going to be reduced any time soon, and will probably continue to proliferate. Its a "fact of life"!

 

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

Last Edited: Fri. Apr 14, 2017 - 05:31 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

But i don't get that? Say you encounter ADLAR then surely that occurs in a chapter about ADC? If you diligently read the entire chapter about ADC where it occurs won't you have then been told the significance of ADLAR anyway?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just for fun, I arbitrarily picked another microcontroller datasheet for comparison, as the theme here seemed to be AVR datasheet bashing.  I had LPC111n (Cortex M0) from NXP handy.

 

Both the datasheet and user manual have a table of abbreviations:

But on the first page (summary description) there are a number of acronyms used not in the table above.  Many have the meaning there at first use e.g.

 

When e.g. POR is found elsewhere in the document it isn't always expanded with the Power-On Reset.  So one needs to do just what one does with AVR datasheets:  use search to find instances that include a definition.

 

Some acronyms are never defined/expanded in a quick scan, such as C_CAN.

 

So this experiment with an arbitrary but unrelated to Atmel/AVR microcontroller docs seems to be a similar approach to writing those docs.  FWIW

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I just wrote a utility (well, OK, added a feature to a utility I had previously written) so it would auto-generate this... 

ACBG : bit within ACSR = Analog Comparator Bandgap Select
ACD : bit within ACSR = Analog Comparator Disable
ACI : bit within ACSR = Analog Comparator Interrupt Flag
ACIC : bit within ACSR = Analog Comparator Input Capture Enable
ACIE : bit within ACSR = Analog Comparator Interrupt Enable
ACIS0 : bit within ACSR = Analog Comparator Interrupt Mode Select bits
ACIS1 : bit within ACSR = Analog Comparator Interrupt Mode Select bits
ACME : bit within SFIOR = Analog Comparator Multiplexer Enable
ACO : bit within ACSR = Analog Compare Output
ACSR = Analog Comparator Control And Status Register
ADATE : bit within ADCSRA = ADC Auto Trigger
ADC = ADC Data Register  Bytes
ADCSRA = The ADC Control and Status register
ADEN : bit within ADCSRA = ADC Enable
ADIE : bit within ADCSRA = ADC Interrupt Enable
ADIF : bit within ADCSRA = ADC Interrupt Flag
ADLAR : bit within ADMUX = Left Adjust Result
ADMUX = The ADC multiplexer Selection Register
ADPS0 : bit within ADCSRA = ADC Prescaler Select Bits
ADPS1 : bit within ADCSRA = ADC Prescaler Select Bits
ADPS2 : bit within ADCSRA = ADC Prescaler Select Bits
ADSC : bit within ADCSRA = ADC Start Conversion
ADTS0 : bit within SFIOR = ADC Auto Trigger Sources
ADTS1 : bit within SFIOR = ADC Auto Trigger Sources
ADTS2 : bit within SFIOR = ADC Auto Trigger Sources
AS2 : bit within ASSR = Asynchronous Timer/counter2
ASSR = Asynchronous Status Register
BLBSET : bit within SPMCSR = Boot Lock Bit Set
BORF : bit within MCUCSR = Brown-out Reset Flag
C : bit within SREG = Carry Flag
COM00 : bit within TCCR0 = Compare Match Output Modes
COM01 : bit within TCCR0 = Compare Match Output Modes
COM1A0 : bit within TCCR1A = Compare Output Mode 1A, bits
COM1A1 : bit within TCCR1A = Compare Output Mode 1A, bits
COM1B0 : bit within TCCR1A = Compare Output Mode 1B, bits
COM1B1 : bit within TCCR1A = Compare Output Mode 1B, bits
COM20 : bit within TCCR2 = Compare Output Mode bits
COM21 : bit within TCCR2 = Compare Output Mode bits
CPHA : bit within SPCR = Clock Phase
CPOL : bit within SPCR = Clock polarity
CS00 : bit within TCCR0 = Clock Selects
CS01 : bit within TCCR0 = Clock Selects
CS02 : bit within TCCR0 = Clock Selects
CS10 : bit within TCCR1B = Prescaler source of Timer/Counter 1
CS11 : bit within TCCR1B = Prescaler source of Timer/Counter 1
CS12 : bit within TCCR1B = Prescaler source of Timer/Counter 1
CS20 : bit within TCCR2 = Clock Select bits
CS21 : bit within TCCR2 = Clock Select bits
CS22 : bit within TCCR2 = Clock Select bits
DDRA = Port A Data Direction Register
DOR : bit within UCSRA = Data overRun
DORD : bit within SPCR = Data Order
EEAR = EEPROM Address Register  Bytes
EECR = EEPROM Control Register
EEDR = EEPROM Data Register
EEMWE : bit within EECR = EEPROM Master Write Enable
EERE : bit within EECR = EEPROM Read Enable
EERIE : bit within EECR = EEPROM Ready Interrupt Enable
EEWE : bit within EECR = EEPROM Write Enable
EXTRF : bit within MCUCSR = External Reset Flag
FE : bit within UCSRA = Framing Error
FOC0 : bit within TCCR0 = Force Output Compare
FOC1A : bit within TCCR1A = Force Output Compare 1A
FOC1B : bit within TCCR1A = Force Output Compare 1B
FOC2 : bit within TCCR2 = Force Output Compare
GICR = General Interrupt Control Register
GIFR = General Interrupt Flag Register
H : bit within SREG = Half Carry Flag
I : bit within SREG = Global Interrupt Enable
ICES1 : bit within TCCR1B = Input Capture 1 Edge Select
ICF1 : bit within TIFR = Input Capture Flag 1
ICNC1 : bit within TCCR1B = Input Capture 1 Noise Canceler
ICR1 = Timer/Counter1 Input Capture Register  Bytes
INT0 : bit within GICR = External Interrupt Request 0 Enable
INT1 : bit within GICR = External Interrupt Request 1 Enable
INT2 : bit within GICR = External Interrupt Request 2 Enable
INTF0 : bit within GIFR = External Interrupt Flags
INTF1 : bit within GIFR = External Interrupt Flags
INTF2 : bit within GIFR = External Interrupt Flag 2
ISC00 : bit within MCUCR = Interrupt Sense Control 0 Bits
ISC01 : bit within MCUCR = Interrupt Sense Control 0 Bits
ISC10 : bit within MCUCR = Interrupt Sense Control 1 Bits
ISC11 : bit within MCUCR = Interrupt Sense Control 1 Bits
ISC2 : bit within MCUCSR = Interrupt Sense Control 2
IVCE : bit within GICR = Interrupt Vector Change Enable
IVSEL : bit within GICR = Interrupt Vector Select
JTD : bit within MCUCSR = JTAG Interface Disable
JTRF : bit within MCUCSR = JTAG Reset Flag
MCUCR = MCU Control Register
MCUCSR = MCU Control And Status Register
MPCM : bit within UCSRA = Multi-processor Communication Mode
MSTR : bit within SPCR = Master/Slave Select
MUX0 : bit within ADMUX = Analog Channel and Gain Selection Bits
MUX1 : bit within ADMUX = Analog Channel and Gain Selection Bits
MUX2 : bit within ADMUX = Analog Channel and Gain Selection Bits
MUX3 : bit within ADMUX = Analog Channel and Gain Selection Bits
MUX4 : bit within ADMUX = Analog Channel and Gain Selection Bits
N : bit within SREG = Negative Flag
OCDR = On-Chip Debug Related Register in I/O Memory
OCF0 : bit within TIFR = Output Compare Flag 0
OCF1A : bit within TIFR = Output Compare Flag 1A
OCF1B : bit within TIFR = Output Compare Flag 1B
OCF2 : bit within TIFR = Output Compare Flag 2
OCIE0 : bit within TIMSK = Timer/Counter0 Output Compare Match Interrupt register
OCIE1A : bit within TIMSK = Timer/Counter1 Output CompareA Match Interrupt Enable
OCIE1B : bit within TIMSK = Timer/Counter1 Output CompareB Match Interrupt Enable
OCIE2 : bit within TIMSK = Timer/Counter2 Output Compare Match Interrupt Enable
OCR0 = Output Compare Register
OCR1A = Timer/Counter1 Output Compare Register  Bytes
OCR1B = Timer/Counter1 Output Compare Register  Bytes
OCR2 = Timer/Counter2 Output Compare Register
OCR2UB : bit within ASSR = Output Compare Register2 Update Busy
OSCCAL0 : bit within OCDR = Oscillator Calibration 
OSCCAL1 : bit within OCDR = Oscillator Calibration 
OSCCAL2 : bit within OCDR = Oscillator Calibration 
OSCCAL3 : bit within OCDR = Oscillator Calibration 
OSCCAL4 : bit within OCDR = Oscillator Calibration 
OSCCAL5 : bit within OCDR = Oscillator Calibration 
OSCCAL6 : bit within OCDR = Oscillator Calibration 
OSCCAL7 : bit within OCDR = Oscillator Calibration 
PGERS : bit within SPMCSR = Page Erase
PGWRT : bit within SPMCSR = Page Write
PINA = Port A Input Pins
PORF : bit within MCUCSR = Power-on reset flag
PORTA = Port A Data Register
PSR10 : bit within SFIOR = Prescaler Reset Timer/Counter1 and Timer/Counter0
PSR2 : bit within SFIOR = Prescaler reset
PUD : bit within SFIOR = Pull-up Disable
REFS0 : bit within ADMUX = Reference Selection Bits
REFS1 : bit within ADMUX = Reference Selection Bits
RWWSB : bit within SPMCSR = Read While Write Section Busy
RWWSRE : bit within SPMCSR = Read While Write section read enable
RXB8 : bit within UCSRB = Receive Data Bit 8
RXC : bit within UCSRA = USART Receive Complete
RXCIE : bit within UCSRB = RX Complete Interrupt Enable
RXEN : bit within UCSRB = Receiver Enable
S : bit within SREG = Sign Bit
SE : bit within MCUCR = Sleep Enable
SFIOR = Special Function IO Register
SM0 : bit within MCUCR = Sleep Mode Select
SM1 : bit within MCUCR = Sleep Mode Select
SM2 : bit within MCUCR = Sleep Mode Select
SP = Stack Pointer 
SPCR = SPI Control Register
SPDR = SPI Data Register
SPE : bit within SPCR = SPI Enable
SPI2X : bit within SPSR = Double SPI Speed Bit
SPIE : bit within SPCR = SPI Interrupt Enable
SPIF : bit within SPSR = SPI Interrupt Flag
SPMCSR = Store Program Memory Control Register
SPMEN : bit within SPMCSR = Store Program Memory Enable
SPMIE : bit within SPMCSR = SPM Interrupt Enable
SPR0 : bit within SPCR = SPI Clock Rate Selects
SPR1 : bit within SPCR = SPI Clock Rate Selects
SPSR = SPI Status Register
SREG = Status Register
T : bit within SREG = Bit Copy Storage
TCCR0 = Timer/Counter Control Register
TCCR1A = Timer/Counter1 Control Register A
TCCR1B = Timer/Counter1 Control Register B
TCCR2 = Timer/Counter2 Control Register
TCN2UB : bit within ASSR = Timer/Counter2 Update Busy
TCNT0 = Timer/Counter Register
TCNT1 = Timer/Counter1  Bytes
TCNT2 = Timer/Counter2
TCR2UB : bit within ASSR = Timer/counter Control Register2 Update Busy
TICIE1 : bit within TIMSK = Timer/Counter1 Input Capture Interrupt Enable
TIFR = Timer/Counter Interrupt Flag Register
TIMSK = Timer/Counter Interrupt Mask register
TOIE0 : bit within TIMSK = Timer/Counter0 Overflow Interrupt Enable
TOIE1 : bit within TIMSK = Timer/Counter1 Overflow Interrupt Enable
TOIE2 : bit within TIMSK = Timer/Counter2 Overflow Interrupt Enable
TOV0 : bit within TIFR = Timer/Counter0 Overflow Flag
TOV1 : bit within TIFR = Timer/Counter1 Overflow Flag
TOV2 : bit within TIFR = Timer/Counter2 Overflow Flag
TWA0 : bit within TWAR = TWI (Slave) Address register Bits
TWA1 : bit within TWAR = TWI (Slave) Address register Bits
TWA2 : bit within TWAR = TWI (Slave) Address register Bits
TWA3 : bit within TWAR = TWI (Slave) Address register Bits
TWA4 : bit within TWAR = TWI (Slave) Address register Bits
TWA5 : bit within TWAR = TWI (Slave) Address register Bits
TWA6 : bit within TWAR = TWI (Slave) Address register Bits
TWAR = TWI (Slave) Address register
TWBR = TWI Bit Rate register
TWCR = TWI Control Register
TWDR = TWI Data register
TWEA : bit within TWCR = TWI Enable Acknowledge Bit
TWEN : bit within TWCR = TWI Enable Bit
TWGCE : bit within TWAR = TWI General Call Recognition Enable Bit
TWIE : bit within TWCR = TWI Interrupt Enable
TWINT : bit within TWCR = TWI Interrupt Flag
TWPS0 : bit within TWSR = TWI Prescaler
TWPS1 : bit within TWSR = TWI Prescaler
TWS3 : bit within TWSR = TWI Status
TWS4 : bit within TWSR = TWI Status
TWS5 : bit within TWSR = TWI Status
TWS6 : bit within TWSR = TWI Status
TWS7 : bit within TWSR = TWI Status
TWSR = TWI Status Register
TWSTA : bit within TWCR = TWI Start Condition Bit
TWSTO : bit within TWCR = TWI Stop Condition Bit
TWWC : bit within TWCR = TWI Write Collition Flag
TXB8 : bit within UCSRB = Transmit Data Bit 8
TXC : bit within UCSRA = USART Transmitt Complete
TXCIE : bit within UCSRB = TX Complete Interrupt Enable
TXEN : bit within UCSRB = Transmitter Enable
U2X : bit within UCSRA = Double the USART transmission speed
UBRRH = USART Baud Rate Register Hight Byte
UBRRL = USART Baud Rate Register Low Byte
UCPOL : bit within UBRRH = Clock Polarity
UCSRA = USART Control and Status Register A
UCSRB = USART Control and Status Register B
UCSZ0 : bit within UBRRH = Character Size
UCSZ1 : bit within UBRRH = Character Size
UCSZ2 : bit within UCSRB = Character Size
UDR = USART I/O Data Register
UDRE : bit within UCSRA = USART Data Register Empty
UDRIE : bit within UCSRB = USART Data register Empty Interrupt Enable
UMSEL : bit within UBRRH = USART Mode Select
UPE : bit within UCSRA = Parity Error
UPM0 : bit within UBRRH = Parity Mode Bits
UPM1 : bit within UBRRH = Parity Mode Bits
URSEL : bit within UBRRH = Register Select
USBS : bit within UBRRH = Stop Bit Select
V : bit within SREG = Two's Complement Overflow Flag
WCOL : bit within SPSR = Write Collision Flag
WDE : bit within WDTCR = Watch Dog Enable
WDP0 : bit within WDTCR = Watch Dog Timer Prescaler bits
WDP1 : bit within WDTCR = Watch Dog Timer Prescaler bits
WDP2 : bit within WDTCR = Watch Dog Timer Prescaler bits
WDRF : bit within MCUCSR = Watchdog Reset Flag
WDTCR = Watchdog Timer Control Register
WDTOE : bit within WDTCR = RW
WGM00 : bit within TCCR0 = Waveform Generation Mode 0
WGM01 : bit within TCCR0 = Waveform Generation Mode 1
WGM10 : bit within TCCR1A = Waveform Generation Mode
WGM11 : bit within TCCR1A = Waveform Generation Mode
WGM12 : bit within TCCR1B = Waveform Generation Mode
WGM13 : bit within TCCR1B = Waveform Generation Mode
WGM20 : bit within TCCR2 = Waveform Genration Mode
WGM21 : bit within TCCR2 = Waveform Generation Mode
Z : bit within SREG = Zero Flag

this particular example generated for mega16 - it will work for any mega chip though and I guess probably for tiny. It could be made to work for Xmega too but I never tried that as I don't see the point in the entire Xmega range myself.

 

Will post this to a public SVN repository in a moment.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

OK I have pushed the changes I made to avrread.py here:

 

https://spaces.atmel.com/gf/proj...

 

One can now use this with a copy of AS7 by switching to the:

C:\Program Files (x86)\Atmel\Studio\7.0\packs\atmel\ATmega_DFP\1.2.132\atdf

directory and just using a command such as:

python avrread.py -i atmega16.adtf --symbols

This will then create a new atmega16.sym file with the text of my previous post.

 

As a tiny85 was mentioned above I just switched to:

C:\Program Files (x86)\Atmel\Studio\7.0\packs\atmel\ATtiny_DFP\1.2.118\atdf

and tried:

python avrread.py -i ATtiny85.adtf --symbols

it generated...

C:\altheadergen\trunk>type ATtiny85.sym
ACBG : bit within ACSR = Analog Comparator Bandgap Select
ACD : bit within ACSR = Analog Comparator Disable
ACI : bit within ACSR = Analog Comparator Interrupt Flag
ACIE : bit within ACSR = Analog Comparator Interrupt Enable
ACIS0 : bit within ACSR = Analog Comparator Interrupt Mode Select bits
ACIS1 : bit within ACSR = Analog Comparator Interrupt Mode Select bits
ACME : bit within ADCSRB = Analog Comparator Multiplexer Enable
ACO : bit within ACSR = Analog Compare Output
ACSR = Analog Comparator Control And Status Register
ADATE : bit within ADCSRA = ADC Auto Trigger Enable
ADC = ADC Data Register  Bytes
ADC0D : bit within DIDR0 = ADC0 Digital input Disable
ADC1D : bit within DIDR0 = ADC1 Digital input Disable
ADC2D : bit within DIDR0 = ADC2 Digital input Disable
ADC3D : bit within DIDR0 = ADC3 Digital input Disable
ADCSRA = The ADC Control and Status register
ADCSRB = ADC Control and Status Register B
ADEN : bit within ADCSRA = ADC Enable
ADIE : bit within ADCSRA = ADC Interrupt Enable
ADIF : bit within ADCSRA = ADC Interrupt Flag
ADLAR : bit within ADMUX = Left Adjust Result
ADMUX = The ADC multiplexer Selection Register
ADPS0 : bit within ADCSRA = ADC  Prescaler Select Bits
ADPS1 : bit within ADCSRA = ADC  Prescaler Select Bits
ADPS2 : bit within ADCSRA = ADC  Prescaler Select Bits
ADSC : bit within ADCSRA = ADC Start Conversion
ADTS0 : bit within ADCSRB = ADC Auto Trigger Sources
ADTS1 : bit within ADCSRB = ADC Auto Trigger Sources
ADTS2 : bit within ADCSRB = ADC Auto Trigger Sources
AIN0D : bit within DIDR0 = AIN0 Digital Input Disable
AIN1D : bit within DIDR0 = AIN1 Digital Input Disable
BIN : bit within ADCSRB = Bipolar Input Mode
BORF : bit within MCUSR = Brown-out Reset Flag
C : bit within SREG = Carry Flag
CLKPCE : bit within CLKPR = Clock Prescaler Change Enable
CLKPR = Clock Prescale Register
CLKPS0 : bit within CLKPR = Clock Prescaler Select Bits
CLKPS1 : bit within CLKPR = Clock Prescaler Select Bits
CLKPS2 : bit within CLKPR = Clock Prescaler Select Bits
CLKPS3 : bit within CLKPR = Clock Prescaler Select Bits
COM0A0 : bit within TCCR0A = Compare Output Mode, Phase Correct PWM Mode
COM0A1 : bit within TCCR0A = Compare Output Mode, Phase Correct PWM Mode
COM0B0 : bit within TCCR0A = Compare Output Mode, Fast PWm
COM0B1 : bit within TCCR0A = Compare Output Mode, Fast PWm
COM1A0 : bit within TCCR1 = Compare Output Mode, Bits
COM1A1 : bit within TCCR1 = Compare Output Mode, Bits
COM1B0 : bit within GTCCR = Comparator B Output Mode
COM1B1 : bit within GTCCR = Comparator B Output Mode
CS00 : bit within TCCR0B = Clock Select
CS01 : bit within TCCR0B = Clock Select
CS02 : bit within TCCR0B = Clock Select
CS10 : bit within TCCR1 = Clock Select Bits
CS11 : bit within TCCR1 = Clock Select Bits
CS12 : bit within TCCR1 = Clock Select Bits
CS13 : bit within TCCR1 = Clock Select Bits
CTC1 : bit within TCCR1 = Clear Timer/Counter on Compare Match
CTPB : bit within SPMCSR = Clear temporary page buffer
DDRB = Data Direction Register, Port B
DIDR0 = Digital Input Disable Register 0
DT1A = Dead time value register
DT1B = Dead time value B
DTPS = Dead time prescaler register
DTPS0 : bit within DTPS =
DTPS1 : bit within DTPS =
DTVH0 : bit within DT1A =
DTVH0 : bit within DT1B =
DTVH1 : bit within DT1A =
DTVH1 : bit within DT1B =
DTVH2 : bit within DT1A =
DTVH2 : bit within DT1B =
DTVH3 : bit within DT1A =
DTVH3 : bit within DT1B =
DTVL0 : bit within DT1A =
DTVL0 : bit within DT1B =
DTVL1 : bit within DT1A =
DTVL1 : bit within DT1B =
DTVL2 : bit within DT1A =
DTVL2 : bit within DT1B =
DTVL3 : bit within DT1A =
DTVL3 : bit within DT1B =
DWDR = debugWire data register
EEAR = EEPROM Address Register  Bytes
EECR = EEPROM Control Register
EEDR = EEPROM Data Register
EEMPE : bit within EECR = EEPROM Master Write Enable
EEPE : bit within EECR = EEPROM Write Enable
EEPM0 : bit within EECR = EEPROM Programming Mode Bits
EEPM1 : bit within EECR = EEPROM Programming Mode Bits
EERE : bit within EECR = EEPROM Read Enable
EERIE : bit within EECR = EEPROM Ready Interrupt Enable
EXTRF : bit within MCUSR = External Reset Flag
FOC0A : bit within TCCR0B = Force Output Compare A
FOC0B : bit within TCCR0B = Force Output Compare B
FOC1A : bit within GTCCR = Force Output Compare 1A
FOC1B : bit within GTCCR = Force Output Compare Match 1B
GIFR = General Interrupt Flag register
GIMSK = General Interrupt Mask Register
GPIOR0 = General purpose register 0
GPIOR1 = General Purpose register 1
GPIOR2 = General Purpose IO register 2
GTCCR = Timer counter control register
H : bit within SREG = Half Carry Flag
I : bit within SREG = Global Interrupt Enable
INT0 : bit within GIMSK = External Interrupt Request 0 Enable
INTF0 : bit within GIFR = External Interrupt Flag 0
IPR : bit within ADCSRB = Input Polarity Mode
ISC00 : bit within MCUCR = Interrupt Sense Control 0 Bit 0
ISC01 : bit within MCUCR = Interrupt Sense Control 0 Bit 1
LSM : bit within PLLCSR = Low speed mode
MCUCR = MCU Control Register
MCUSR = MCU Status register
MUX0 : bit within ADMUX = Analog Channel and Gain Selection Bits
MUX1 : bit within ADMUX = Analog Channel and Gain Selection Bits
MUX2 : bit within ADMUX = Analog Channel and Gain Selection Bits
MUX3 : bit within ADMUX = Analog Channel and Gain Selection Bits
N : bit within SREG = Negative Flag
OCF0A : bit within TIFR = Timer/Counter0 Output Compare Flag 0A
OCF0B : bit within TIFR = Timer/Counter0 Output Compare Flag 0B
OCF1A : bit within TIFR = Timer/Counter1 Output Compare Flag 1A
OCF1B : bit within TIFR = Timer/Counter1 Output Compare Flag 1B
OCIE0A : bit within TIMSK = Timer/Counter0 Output Compare Match A Interrupt Enable
OCIE0B : bit within TIMSK = Timer/Counter0 Output Compare Match B Interrupt Enable
OCIE1A : bit within TIMSK = OCIE1A: Timer/Counter1 Output Compare Interrupt Enable
OCIE1B : bit within TIMSK = OCIE1A: Timer/Counter1 Output Compare B Interrupt Enable
OCR0A = Timer/Counter0 Output Compare Register
OCR0B = Timer/Counter0 Output Compare Register
OCR1A = Output Compare Register
OCR1B = Output Compare Register
OCR1C = Output compare register
OSCCAL = Oscillator Calibration Register
OSCCAL0 : bit within OSCCAL = Oscillator Calibration
OSCCAL1 : bit within OSCCAL = Oscillator Calibration
OSCCAL2 : bit within OSCCAL = Oscillator Calibration
OSCCAL3 : bit within OSCCAL = Oscillator Calibration
OSCCAL4 : bit within OSCCAL = Oscillator Calibration
OSCCAL5 : bit within OSCCAL = Oscillator Calibration
OSCCAL6 : bit within OSCCAL = Oscillator Calibration
OSCCAL7 : bit within OSCCAL = Oscillator Calibration
PCIE : bit within GIMSK = Pin Change Interrupt Enable
PCIF : bit within GIFR = Pin Change Interrupt Flag
PCKE : bit within PLLCSR = PCK Enable
PCMSK = Pin Change Enable Mask
PGERS : bit within SPMCSR = Page Erase
PGWRT : bit within SPMCSR = Page Write
PINB = Input Pins, Port B
PLLCSR = PLL Control and status register
PLLE : bit within PLLCSR = PLL Enable
PLOCK : bit within PLLCSR = PLL Lock detector
PORF : bit within MCUSR = Power-On Reset Flag
PORTB = Data Register, Port B
PRADC : bit within PRR = Power Reduction ADC
PRR = Power Reduction Register
PRTIM0 : bit within PRR = Power Reduction Timer/Counter0
PRTIM1 : bit within PRR = Power Reduction Timer/Counter1
PRUSI : bit within PRR = Power Reduction USI
PSR0 : bit within GTCCR = Prescaler Reset Timer/Counter1 and Timer/Counter0
PSR1 : bit within GTCCR = Prescaler Reset Timer/Counter1
PUD : bit within MCUCR = Pull-up Disable
PWM1A : bit within TCCR1 = Pulse Width Modulator Enable
PWM1B : bit within GTCCR = Pulse Width Modulator B Enable
REFS0 : bit within ADMUX = Reference Selection Bits
REFS1 : bit within ADMUX = Reference Selection Bits
REFS2 : bit within ADMUX = Reference Selection Bit 2
RFLB : bit within SPMCSR = Read fuse and lock bits
RSIG : bit within SPMCSR = Read Device Signature Imprint Table
S : bit within SREG = Sign Bit
SE : bit within MCUCR = Sleep Enable
SM0 : bit within MCUCR = Sleep Mode Select Bits
SM1 : bit within MCUCR = Sleep Mode Select Bits
SP = Stack Pointer  Bytes
SPMCSR = Store Program Memory Control Register
SPMEN : bit within SPMCSR = Store Program Memory Enable
SREG = Status Register
T : bit within SREG = Bit Copy Storage
TCCR0A = Timer/Counter  Control Register A
TCCR0B = Timer/Counter Control Register B
TCCR1 = Timer/Counter Control Register
TCNT0 = Timer/Counter0
TCNT1 = Timer/Counter Register
TIFR = Timer/Counter Interrupt Flag Register
TIMSK = Timer/Counter Interrupt Mask Register
TOIE0 : bit within TIMSK = Timer/Counter0 Overflow Interrupt Enable
TOIE1 : bit within TIMSK = Timer/Counter1 Overflow Interrupt Enable
TOV0 : bit within TIFR = Timer/Counter0 Overflow Flag
TOV1 : bit within TIFR = Timer/Counter1 Overflow Flag
TSM : bit within GTCCR = Timer/Counter Synchronization Mode
USIBR = USI Buffer Register
USICLK : bit within USICR = Clock Strobe
USICNT0 : bit within USISR = USI Counter Value Bits
USICNT1 : bit within USISR = USI Counter Value Bits
USICNT2 : bit within USISR = USI Counter Value Bits
USICNT3 : bit within USISR = USI Counter Value Bits
USICR = USI Control Register
USICS0 : bit within USICR = USI Clock Source Select Bits
USICS1 : bit within USICR = USI Clock Source Select Bits
USIDC : bit within USISR = Data Output Collision
USIDR = USI Data Register
USIOIE : bit within USICR = Counter Overflow Interrupt Enable
USIOIF : bit within USISR = Counter Overflow Interrupt Flag
USIPF : bit within USISR = Stop Condition Flag
USISIE : bit within USICR = Start Condition Interrupt Enable
USISIF : bit within USISR = Start Condition Interrupt Flag
USISR = USI Status Register
USITC : bit within USICR = Toggle Clock Port Pin
USIWM0 : bit within USICR = USI Wire Mode Bits
USIWM1 : bit within USICR = USI Wire Mode Bits
V : bit within SREG = Two's Complement Overflow Flag
WDCE : bit within WDTCR = Watchdog Change Enable
WDE : bit within WDTCR = Watch Dog Enable
WDIE : bit within WDTCR = Watchdog Timeout Interrupt Enable
WDIF : bit within WDTCR = Watchdog Timeout Interrupt Flag
WDP0 : bit within WDTCR = Watchdog Timer Prescaler Bits
WDP1 : bit within WDTCR = Watchdog Timer Prescaler Bits
WDP2 : bit within WDTCR = Watchdog Timer Prescaler Bits
WDP3 : bit within WDTCR = Watchdog Timer Prescaler Bits
WDRF : bit within MCUSR = Watchdog Reset Flag
WDTCR = Watchdog Timer Control Register
WGM00 : bit within TCCR0A = Waveform Generation Mode
WGM01 : bit within TCCR0A = Waveform Generation Mode
WGM02 : bit within TCCR0B =
Z : bit within SREG = Zero Flag

I don't actually see "PCK" in that. But there is...

PCKE : bit within PLLCSR = PCK Enable

The XML in the ADTF file that created this does not seem to be too forthcoming about what "PCK" actually means in this context!

 

(which is probably why it's a better idea to simply Ctrl-F the datasheet!)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That's terrific, Clawson.  I'll save that list, and I'm sure it will help.  I guess, since you wrote a utility to produce it, you had a similar difficulty at some time?

I'm working on one too.  I made a list of all the "words" that are written in upper case in the datasheet, got rid of everything in lower case, sorted what was left into alpha order, and I'm currently on "L" (so still some way to go), and I'm on line 514.  Looking them all up to find the meanings will be the longest part - but your list may answer a good many of them.

 

For what it's worth, I just looked up "Microprocessor data sheet".  The first one I opened was "AM1808 ARM ® Microprocessor" by Texas Instruments.  In the Contents, I saw "Glossary" with a link to P.258.  I clicked the link, and on Page 258 is a link to a document on the TI website, with a 76-page glossary.  Page 1 states : "This glossary lists and explains terms, acronyms, and definitions".  I'll bet that's a major help to those learning their products.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Nope I don't need such a list, I always read and memorise the entire datasheet for any micro I program so don't need an acronym list.

 

IF you read the site where I host my Python code you'll see why I wrote the utility (alternative IO headers)

 

It just struck me that Atmel's XML in the ATDF files happens to have reg/bit names with "captions" so it was easy to modify my Python to parse these out of the data and create an alpha sorted list.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
I always read and memorise the entire datasheet

You're very lucky to be able to do it.  I have herd that for multilinguists, each new language is easier than the one before.  I haven't learned much Spanish, but I certainly see a lot of parallels between it and French, and from the little I know of it, Italian also.  I'm sure it is similar with MCU datasheets - they get easier because there's so much commonality with the terms you have already learned.  I'm a long way from that point, however.  Maybe in 6 months time I'll have most of the AVR acronyms in my head.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Frankly, after 15+ years working with AVRs of one kind or another, I still run into acronyms that stall me. Even on a device that I have used intensively for the last 3 years (Mega328P). You just have to search. The most recent batch were the control signals and conditions for an IO Pin. And, I use PWM so little that I cam constantly having to go back and review the control bits when I need to do something. Quick, now, tell me just what COM0A0 and COM0A1 do (no looking at spec sheet allowed)?

 

It just comes with the territory. I know that that time is needed and I do it. End of (my) story.

 

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

Last Edited: Fri. Apr 14, 2017 - 09:51 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The COM bits set what the driven output of a timer do at compare match.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

COM0A0/COM0A1 - Compare Match Output A Mode (in TCCR0A)
COM0A1/COM0B1 - Compare Match Output B Mode (in TCCR0B)
COM1A0/COM1A1 - Compare Mode Select in PWM Mode
COM1B0/COM1B1 - Compare Mode Select in PWM Mode

 

And I didn't look at the spec sheet.  I looked at the acronym list I'm busy making.  I'll post it when it's finished - but The acronyms above were pretty close to where I got up to last night before bed time.  I'm working alphabetically, so there's only CP... to Z to go!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Above says... 

 

COM0A0 : bit within TCCR0A = Compare Output Mode, Phase Correct PWM Mode
COM0A1 : bit within TCCR0A = Compare Output Mode, Phase Correct PWM Mode
COM0B0 : bit within TCCR0A = Compare Output Mode, Fast PWm 
COM0B1 : bit within TCCR0A = Compare Output Mode, Fast PWm
COM1A0 : bit within TCCR1 = Compare Output Mode, Bits
COM1A1 : bit within TCCR1 = Compare Output Mode, Bits
COM1B0 : bit within GTCCR = Comparator B Output Mode
COM1B1 : bit within GTCCR = Comparator B Output Mode

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Come on guys, I believe West Coast Jim was asking that we do this from memory, not just "technically" avoiding the spec.

And my answer is (without referring to anything but memory), "They determine the action of the COM bits depending on processor, timer, and mode of timer operation."

 

(Of course, my mind has been recently refreshed by reading the previous posts...wink)

David

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My point was that many of us will identify those bits with TimerCounter0 and maybe with the PWM function of that device. But that memory does not tell us what they DO. You have to go to the spec sheet to see what their actual function is. And, even if I "learned" it for this project, today, I would probably have to go back through the same memory recovery process the next time. Some of you might not have to, but I do. 

 

I, personally, don't have much use for the acronym lists because they don't have enough detail. And, when they do have enough detail, they ARE the spec sheet. Maybe such lists will help those just starting out; I cannot reconstruct that point in my life to tell whether that would have been true for me or not. And, of course, if you don't like such lists, don't use them. 

 

Another important point is that many of these acronyms are not universal. UART and PWM probably are. But "COM bits" are pretty likely not. So, you really need a list for every device you are using. Cliff's tool will be great for AVRs but probably not much use for MSP430s.

 

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

frog_jr wrote:
Come on guys, I believe West Coast Jim was asking that we do this from memory,
Which is EXACTLY what I did in my first reply after Jim's post.

 

Come on, most of us here have been doing AVR for a decade or more, perhaps getting on for two decades? If you aren't familiar with what COMxx or ADLAR or TXEN or SPIF etc are used for at this stage what in the name of all that's holy have you been doing for the last 10..20 years?? 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I really don't understand why you will need a list like that!

 

with this in hand (and perhaps place it in a spreadsheet with some comments).

And remember that some bit's have different use in different modes.(perhaps not a 85 I can't remember).

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Actually, as helpful as all this discussion about bit names might be, it ignores the fact that there are lots of acronyms  that are NOT register or bit names. USART, ADC, PWM, RS232, async, Vcc, AVcc, DAC, I2C, SPI, ISP, BT, I2S, and on and on. 

 

Most of the ones I have just listed are pretty much understood, industry-wide. But TWI? Could probably make an even longer list of more obscure ones.

 

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Jim that's the exact point I was making in #10. As I said there the "generic" terms are pretty much all explained on Wikipedia with that notable exception of TWI. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Come on, most of us here have been doing AVR for a decade or more

... and some of us have been doing it for around a month.  I wasn't suggesting an acronym sheet for the folk who are well-versed in the technology, but for the newbies like me.  Out of interest, I searched the forums for "Overwhelmed", and there were quite a few hits, so I'm not the only one that's a bit bogged down.  In six months, I won't be needing a sheet either - but right now, it will make life a little easier.  It's not the be-all and end-all, but for what it's worth, here's what I came up with.  Do with it what you will.

This is a list of acronyms in the ATtiny85 DataSheet.
It was produced by a private user/experimenter - not by ATMEL.
It is made available to you as a privilege, not as a right,
so if you don't like it, that's fine - don't use it - but don't complain.
If you find errors in it, simply correct them.

OC0A - Timer/Counter0 Compare Match A output (pin 5)
ACBG - Analog Comparator Bandgap Select (in ACSR)
ACD - Analog Comparator Disable (in ACSR)
ACI - Analog Comparator Interrupt Flag (in ACSR)
ACIE - Analog Comparator Interrupt Enable (in ACSR)
ACIS[0:1] - Analog Comparator Interrupt Mode Select (in ACSR)
ACK - Acknowledgement signal
ACME - Analog Comparator Multiplexer Enable bit (in ADCSRB)
ACO - Analog Comparator output (in ACSR)
ACSR - Analog Comparator Control and Status Register
ADATE - ADC Auto Trigger Enable bit (ADCSRA)
ADC - Analog to Digital converter
ADC[0:9] - result of ADC conversion (in ADCH/ADCL)
ADCH/ADCL - ADC result rgister - High/Low
ADCSR - See ADCSRA/ADCSRB
ADCSRA - ADC Control and Status Register A
ADCSRB -  ADC Control and Status Register B
ADC_ISR - ADC Interrupt Vector
ADD - Instruction : add two registers
ADEN - ADC Enable (in ADCSRA)
ADIE - ADC Interrupt Enable (in ADCSRA)
ADIF - ADC Interrupt Flag (in ADCSRA)
ADIW - Instruction : Add immediate to word
ADLAR - bit in ADMUX - left adjust ADC result
ADMUX – ADC Multiplexer Selection Register
ADPS[2:0]: ADC Prescaler Select Bits (in ADCSRA)
ADSC - ADC Start Conversion (in ADCSRA)
ADTS[2:0] - ADTS[2:0]: ADC Auto Trigger Source (in ADCSRB)
AIN0 - Analog Comparator, Positive Input
AIN1 - Analog Comparator, Negative Input
AIN1D/AIN0D - Digital Input Disable (in DIDR0)
AIO - Analog I/O pin.
ALU : Arithmetic Logic Unit
ANA_COMP - Analog Comparator Interrupt vector
ANA_COMP_ISR - Analog Comparator Interrupt vector
AND - Instruction
ANDI - Instruction
AREF - External Analog Reference
ASR  - Instruction (arithmetic shift right)
ASYNC - Timer/Counter mode
AVCC - Analog reference tied to Vcc
BCD - Binary coded Decimal
BCLR - Instruction : Bit Clear in SREG
BIN - Bipolar Input Mode (in ADCSRB)
BLD - Instruction : Bit Load
BOD - Brown-out Detector
BODLEVEL[2:0] - Fuses to set Brown-out
BODS - BOD Sleep (disable) - not in all devices
BODSE - BOD Slep Enable
BORF - Brown-out Reset Flag (in MCUSR)
BOTTOM - PWM counter reaches BOTTOM when it becomes 0x00
BRBC - Instruction : Branch if Bit in status reg Cleared
BRBS - Instruction : Branch if Bit in Status reg Set
BRCC - Instruction : Branch if Carry Cleared
BRCS - Instruction : Branch if Carry Set
BREAK - Instruction for on-chip debug
BREQ - Instruction : Branch if Equal
BRGE - Instruction : Branch if Greater or Equal (signed)
BRHC - Instruction : Branch if Half-carry flag cleared
BRHS - Instruction : Branch if Half-carry flag set
BRID - Instruction : Branch if Interrupt Disabled
BRIE - Instruction : Branch if Interrupt Enabled
BRLO - Instruction : Branch if Lower
BRLT - Instruction : Branch if Less than zero
BRMI - Instruction : Branch if Minus
BRNE - Instruction : Branch if not Equal (not zero)
BRPL - Instruction : Branch if Plus
BRSH - Instruction : Branch if Same of Higher
BRTC - Instruction : Branch if T-flag cleared
BRTS - Instruction : Branch if T-flag set
BRVC - Instruction : Branch if Overflow flag cleared
BRVS - Instruction : Branch if Overflow flag set
BSET - Instruction : Set a Flag in SREG
BST - Instruction : Bit store
BSY - Busy signal (used in writing memory)
CAL[7:0] - Oscillator Calibration Value (in OSCCAL)
CBI - Instruction : Clear bit in IO reg.
CBR - Instruction : Clear bit(s) in register
CHCX - subscript - tCHCX is clock hiogh period
CK - System Clock
CKDIV8 - Clock divided by 8
CKOUT - Allows system clock to be output on pin
CKSEL[3:0] - Clock source setting
CLC - Instruction : Clear Carry
CLCH - Clock Rise time
CLCL - subscript. tCLCL is clock period.  1/tCLCL is frequency
CLCX - subscript.  tCLCX is clock Low period. See CHCX.
CLH - Instruction : Clear Half-carry flag
CLI - Instruction : Global Interrupt Disble
CLK - abbreviation - Clock
CLKI - External clock input
CLKO - System Clock Output
CLKPCE - Clock Prescaler Change Enable
CLKPR - Clock Prescale Register
CLKPS[3:0] - Clock Prescaler Select Bits
CLK_I/O - Subscript.  fCLK_I/O is Frequency of IO clock
CLN - Instruction : Clear Negative flag
CLR Instruction : Clear reg
CLS Instruction : Clear Signed test flag
CLT Instruction : Clear T in SREG
CLV Instruction : Clear 2's compliment OV flag
CLZ Instruction : Clear the Zero flag
COM Instruction :
COM0A0/COM0A1 - Compare Match Output A Mode (in TCCR0A)
COM0A1/COM0B1 - Compare Match Output B Mode (in TCCR0B)
COM1A0/COM1A1 - Compare Mode Select in PWM Mode
COM1B0/COM1B1 - Compare Mode Select in PWM Mode
CP - Instruction : Compare two regs
CPC - Instruction : Compare two regs with Carry
CPI - Instruction : Compare reg with Immediate
CPSE - Instruction : Compare.  Skip if equal
CPU - Central Processing Unit
CS0[2:0] - Clock Select
CTC - Clear Timer on Compare Match Mode
CTC1 - Clear Timer/Counter on Compare Match (in TCCR1)
CTPB - Clear Temporary Page Buffer (in SPMCSR)
CTRL - Abbrev Control
DAC - Digital to Analog Converter
DDB[5:0] - Data Direction bits (in DDRB)
DDOE - Signal : Data Direction Override Enable (interracts with DDOV)
DDOV - Data Direction Override Value (interracts with DDOE)
DDPB2 - Mentioned only once. No explanation. See "Port B, Bit 2"
DDR - Data Direction Register AKA DDRB
DDRB - Data Direction Register
DDR_OC0 - Direction for Output Compare
DEC - Instruction : Decrement a reg.
DI - Signal : Digital Input (See pin 5)
DIDR0 - Digital Input Disable Register 0
DIEOE - Signal : Digital Input Enable Override Enable
DIEOV - Digital Input Enable Override Value
DNC - Do Not Connect.  Leave Open Circuit
DNL - Differential Non-linearity.  Figure 17-11.
DO - USI Data Output (Three Wire Mode)
DT1 - Dead Time
DT1A - Dead Time Reg A
DT1AH[3:0] - Dead Time Reg A High nibble
DT1AL[3:0] - Dead Time Reg A Low nibble
DT1B - Dead Time Reg B
DT1BH[3:0] - Dead Time Reg B High nibble
DT1BL[3:0] - Dead Time Reg B Low nibble
DTPS1[1:0] - Dead Time Prescaler
DWDR[7:0] - bits in DebugWire Data Register
DWEN - DebugWire Enable fuse
EEARL[7:0] - EEPROM Address Register Low  See 5.5.2
EEARH[8] - EEPROM Address Register High  See 5.5.1
EEA[1:0] - See PCWORD in Table 20-9
EEA[6:2] -  "     "    "   "     "
EEA[7:2] -  "     "    "   "     "
EEA[8:2] -  "     "    "   "     "
EECR - EEPROM Control Register
EEDR - EEPROM Data Register
EEMPE - EEPROM Master Program Enable (in EECR)
EEMWE - Mentioned in section 28.16
EEPE - EEPROM Program Enable (in EECR)
EEPM[1:0] - EEPROM Programming Mode Bits (in EECR)
EERE - EEPROM Read Enable (in EECR)
EERIE - EEPROM Ready Interrupt Enable (in EECR)
EESAVE - EEPROM preserves chip erase (in Fuse high byte)
EE_RDY - Vector : EEPROM Ready
EE_RDY_ISR - Interrupt service Routine : EEPROM Ready
EMI - Electro-magnetic Interference
EOR - Instruction : Exclusive Or
EXTRF - External Reset Flag (in MCUCR)
FEB - Fuse Extended Byte. Sect 19.6.2
FLB - Fuse Low Byte
FOC0A - Force Output Compare A (in TCCR0B)
FOC0B - Force Output Compare B (in TCCR0B)
FOC1A - Force Output Compare Match 1A (in GTCCR)
FOC1B - Force Output Compare Match 1B (in GTCCR)
GIFR - General Interrupt Flag Register
GIMSK - General Interrupt Mask Register
GND - Signal ground.
GPIOR0 - General Purpose I/O register
GPIOR1 - General Purpose I/O register
GPIOR2 - General Purpose I/O register
GTCCR - General Timer/Counter Control Register
GTCCR_SI - Internal Input Synchronisation register
HLL - High Level Language
HVRST - Subscript - V(hvrst) Threshold voltage for Reset recognition
I/O - Input/Output
I(bg) - Bandgap reference current consumption
IC - Integrated Circuit (chip)
ICALL - Indirect Call to (Z)
I(cc) - Power supply current
ID - Identification
I(ih) - Input Leakage current
I(il) - Input leakage current on I/O pin
IJMP - Indirect Jump to (Z)
IN - Instruction : Input to a register from an I/O register or port
INC - Instruction : Increment a reg
INL - Integral Non-linearity (See Figure 17-11)
INT - Abbrev. Interrupt
INT0 - External Interrupt Request 0 Enable (in GIMSK)
INT0_ISR - Service routine for External Interrupt
INTF0 - External Interrupt Flag 0 (in GIFR)
IO - AKA I/O : Input/Output
I(oh) - Source current
I(ol) - Sink current
IPR - Input Polarity Reversal (in ADCSRB)
IRQ - Interrupt Request
ISC0[1:0] - Interrupt Sense Control 0 Bits 1 & 0 (in MCUCR)
LB[1:2] - Memory Lock bits.  See 20.1
LD - Instruction : Load Indirect from X, Y, Z
LDD - Instruction : Load Indirect with Displacement
LDI - Instruction : Load Immediate
LDS - Load direct from SRAM
LED - Light Emitting Diode
LPM - Instruction : Load Program Memory
LPM/SPM - Instruction : Load/Store Program memory
LSB - Least significant bit
LSL - Instruction : Logical Shift Left
LSM - Low Speed Mode (in PLLCSR)
LSR - Instruction : Logical Shift Right
MAX - PWM counter reaches MAX when it becomes 0xFF
MB - MegaBytes
MCU - Microcontroller Unit (eg ATtiny85)
MCUCR - MCU Control Register
MIPS - Mega-instructions per second
MISO - Master Data input, Slave Data output for SPI channel
MOSI - Master Data output, Slave Data input for SPI channel.
MOV - Instruction : Move (copy a register to another)
MOVW - Instruction : Move Word (copy a register pair to another)
MSB -  Most Significan Bit
MUX - Multiplexer
MUX[3:0] - Analog Channel and Gain Selection Bits (in ADMUX)
NEG - Instruction : Negate - take 2's compliment
NOP - Instruction : No-operation.  Uses a clock cycle. Does nothing.
OC0A - Output Compare A from the Waveform Generator
OC0B - Output Compare B from the Waveform Generator
OC1A - Output Compare Match output
OC1B - Output Compare Match output
OC1C - Mentioned below Figure 12-4.
OCF0A - Output compare flag
OCF0B - Output compare flag
OCF1A - Output compare flag
OCF1B - Output compare flag
OCIE0A - Timer/Counter Output Compare Interrupt Enable (in TIMSK)
OCIE0B -    "      "       "      "         "      "   (in TIMSK)
OCIE1A -    "      "       "      "         "      "   (in TIMSK)
OCIE1B -    "      "       "      "         "      "   (in TIMSK)
OCR0A - Timer/Counter0 Output Compare Register A
OCR0B - Timer/Counter0 Output Compare Register B
OCR1A - Timer/Counter1 Output Compare Register A
OCR1B - Timer/Counter1 Output Compare Register B
OCR1C - Timer/Counter1 Output Compare Register C
OCRA - Output compare reg compares with TCNT0
OCRB - Output compare reg compares with TCNT0
OR - Instruction : Logical OR two registers
ORI - Instruction : Or a register with an immediate value
OSC - Signal in Watchdog prescaler
OSCCAL - Oscillator Calibration Register
OUT - Instruction : Output to an I/O register
PB - Port B
PB[2:0] - Bits of Port B
PB[5:3] - Bits of Port B
PC - Program Counter (address of instruction being executed)
PCI - Pin Change Interrupt
PCIE - Pin Change Interrupt Enable (in GIMSK)
PCIF - Pin Change Interrupt Flag
PCINT[5:0] - Pin Change Enable Mask
PCINT0_ISR - Pin Change Interrupt routine
PCK - Peripheral Clock
PCKE - Enable the PCK asynchronous mode (in PLLCSR)
PCMSB - Program Counter MSB
PCMSK - Pin Change Mask Register
PDIP - Plastic Dual In-line Pins - Chip made for through-holes
PGERS - Page Erase (in SPMCSR)
PGWRT - Page Write (in SPMCSR)
PIN - Port Input
PINB - Port B Input Pins Register
PLL - Phase Locked Loop
PLLCSR - PLL Control and Status Register
PLLE - PLL Enable (in PLLCSR)
PLOCK - PLL Lock Detector (in PLLCSR)
POP - Instruction : Pop register from Stack
POR - Power-on Reset
PORF - Power-on Reset Flag (in MCUSR)
PRADC - Power Reduction ADC (in PRR)
PRR - Power Reduction Register
PRTIM0 - Shut down the Timer/Counter0 module (in PRR)
PRTIM1 - Shut down the Timer/Counter1 module (in PRR)
PRUSI - Shut down the Universal Serial Interface (in PRR)
PSR0 - Resets the prescaler for Timer/Counter 0(in GTCCR)
PSR1 - Resets the prescaler for Timer/Counter 1(in GTCCR)
PTOE - Port Toggle Override Enable.  Table 10.2 & 10.5
PUD - Pull-up Disable (in MCUSR)
PUOE - Signal : Pull-up Override Enable
PUOV - Signal : Pull-up Override Value
PUSH - Instruction : Push a register onto the stack
PVOE - Signal : Port Value Override Enable
PVOV - Signal : Port Value override Value
PWM - Pulse width Modulation
PWM1A - Pulse Width Modulator A Enable (in TCCR1)
PWM1B - Pulse Width Modulator B Enable (in GTCCR)
R/W - Read/Write
R(ain) - Analog Input Resistance
RAM - Random Access Memory
RAMEND - Last address in RAM
RC - Resistor-capacitor
RCALL - Relative Subroutine Call
RDY - Ready
RDY/BSY - Ready/Busy
REFS[2:0] - Voltage Reference Selection Bits (in ADMUX)
RET - Instruction : Return from subroutine
RETI - Instruction : Return from Interrupt
RFLB - Read Fuse and Lock Bits (in SPMCSR)
RISC - Reduced Instruction Set Computer
RJMP - Instruction : Relative Jump
ROL - Instruction : Rotate Left through Carry
ROR - Instruction : Rotate Right through Carry
RPx - Internal Signal - Read Port x
RR - Internal Signal - Read Port x Register
RSIG - Read Device Signature Imprint Table (in SPMCSR)
RST - Abbr. Reset
RSTDISBL - If this fuse is set, start-up time will increase to 14CK + 4 ms
Rn  : Register (number) eg. R2
Rnn : Register (number) eg. R23
SBC - Instruction : Subtract with Carry
SBCI - Instruction : Subtract Immediate with Carry
SBI - Instruction : Subtract Immediate
SBIC - Instruction : Skip if bit in IO reg is cleared
SBIS - Instruction : Skip if bit in IO reg is set
SBIW - Instruction : Subtract immediate from Word
SBR - Instruction : Set bit(s) in register
SBRC - Instruction : Skip id bit in register is cleared
SBRS - Instruction : Skip id bit in register is set
SCI - Signal : Serial Clock Input
SCK - Signal : Seril Clock
SCL - USI Clock (Two Wire Mode)
SDA - USI Data Input (Two Wire Mode)
SDI - Serial Data Input
SII - Serial Instruction Input
SDO - Serial Data Output
SE - Sleep Enable (in MCUSR)
SEC - Instruction : Set Carry
SEH - Instruction : Set Half-carry Flag
SEI - Instruction : Global Interrupt Enable
SELFPRGEN - Fuse: High byte bit-0.  Self Programming Enabled. Table 20-3
SEN - Instruction : Set Negative Flag
SER - Instruction : Set Reg to 0xFF
SES - Instruction : Set Signed flag in SREG
SET - Set T (Bit Copy Storage) in SREG
SEV - Set 2's compliment Overflow flag in SREG
SEZ - Set Zero flag in SREG
SLEEP - Instruction : See 7.1
SM[0:1] - Sleep Mode Select Bits 1 and 0
SOIC - Small Outline IC (surface mounted chip)
SP - Stack pointer
SPH - Stack Pointer Register (High) contains SP[9:8]
SPI - Serial Prohgramming Interface
SPIEN - Serial program and data download enabled
SPL - Stack Pointer Register (Low) contains SP[7:0]
SPM - Instruction : Store Program Memory
SPM/EEPROM -
SPMCSR– Store Program Memory Control and Status Register
SPMEN - Store Program Memory Enable (in SPMCSR)
SPn   : Stack pointer bit
SPnn  : Stack pointer bit
SRAM - Static Random Access Memory
SREG - AVR Status register
SS - Slave Select. See "15.3 Functional Descriptions"
ST - Instruction : Store Indirect using X, Y, Z
STD - Instruction : Store Indirect with Displacement
STS - Instruction : Store Direct to SRAM
SUB - Instruction : Subtract register from another
SUBI - Instruction : Subtract Immediate from Register
SUT[1:0] - Bits that set the Start Up Time.  See 6.2.5
SWAP - Instruction : Swap nibbles in Register
T/C - Abbr. Timer/Counter
T0 - Timer/Counter0 clock source
TBD - To be Decided
TCCR0A - Timer/Counter Control Register A
TCCR0B – Timer/Counter Control Register B
TCCR1 - Timer/Counter1 Control Register
TCCR1A - Timer/Counter1 Control Register
TCNT0 - Timer/Counter 0
TCNT1 - Timer/Counter 1
TIFR - Timer/Counter Interrupt Flag Register
TIM0_COMPA_ISR - Interrupt Service Routine : TIM0 compare A
TIM0_COMPB_ISR - Interrupt Service Routine : TIM0 compare B
TIM0_OVF_ISR - Interrupt Service Routine : TIM0 Overflow
TIM1_COMPA_ISR - Interrupt Service Routine : TIM1 compare A
TIM1_COMPB_ISR - Interrupt Service Routine : TIM1 compare B
TIM1_OVF_ISR - Interrupt Service Routine : TIM1 overflow A
TIMER0_COMPA - Timer0 compare A
TIMER0_COMPB - Timer0 compare B
TIMER0_OVF - Timer0 Overflow
TIMER1_COMPA - Timer1 compare A
TIMER1_COMPB - Timer1 compare A
TIMER1_OVF - Timer1 Overflow
TIMSK - Timer/Counter Interrupt Mask Register
TOIE0 - Timer/Counter0 Overflow Interrupt Enable
TOIE1 - Timer/Counter1 Overflow Interrupt Enable
TOP - top count in TCNT0 : When TCNT0 = OCR0A or 0xFF
TOV - Timer/Counter Overflow Flag (TOV0). Set according to WGM0[1:0]
TOV0/TOV1 - Counter/Timer overflow flags (in TIFR)
TSM - Timer/Counter Synchronization Mode (in GTCCR)
TST - Instruction : Test for Zero or Negative
TWI - Two Wire Interface.  Equivalent to I2C
UART - Universal Assynchronous Receiver/Transmitter
USA - Trumpland
USCK - USI Clock
USI - Universal Serial Interface
USIBR - USI Buffer register
USICLK - USI Clock
USICNT[3:0] - 4-bit USI counter (in USISR)
USICR - USI Control Register
USICS[0:1] - USI Clock Source (in USICR)
USIDC - USI Data Collision 15.5.3
USIDR - USI Data register
USIOIE - USI Start Condition Interrupt Enable (in USICR)
USIOIF - USI Counter Overflow Interrupt Flag (in USISR)
USIPF - USI Stop Condition Flag (in USISR)
USISIE - USI Start Condition Interrupt Enable (in USICR)
USISIF - USI Start Condition Interrupt Flag(in USISR)
USITC - USI Toggle Clock Port Pin (in USICR)
USIWM[0:1] - USI Wire Mode (in USICR).  See 15.5.4
USI_OVF - Vector : USI Overflow
USI_OVF_ISR - USI Interrupt routine
USI_START - Vector : USI Start
USI_START_ISR  - USI Start interrupt routine
WDCE - Watchdog Change Enable (in WDTCR)
WDE - Watchdog Enable (in WDTCR)
WDIE - Watchdog Timeout Interrupt Enable
WDIF - Watchdog Timeout Interrupt Flag (in WDTCR)
WDP[3:0] - Watchdog Timer Prescaler (in WDTCR)
WDR - Watchdog Reset
WDRF - Watchdog Reset Flag (in MCUSR)
WDT - Watchdog Timer
WDTCR - Watchdog Timer Control Register
WDTON - Fuse : Watchdog Timer always ON
WDT_ISR - Vector : Tatchdog Timeout
WGM0[2:0] - Waveform Generation Mode Bits(in TCCR0A & TCCR0B)
WPx - Write PIN x
WRx - Write PORT x

 

Last Edited: Sun. Apr 16, 2017 - 11:04 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

armstack wrote:
OC0A - Timer/Counter0 Compare Match A output (pin 5)

 

Not always Pin 5.

 

armstack wrote:
BRBC - Instruction : Branch if status flag cleared

BRanch if Bit in status register Cleared

 

armstack wrote:
BRBS - Instruction : Branch if Status Flag Set

BRanch if Bit in status register Set

 

armstack wrote:
OCIE0A - Timer/Counter1 Output Compare Interrupt Enable (in TIMSK)

Applies to Timer0, not Timer1

 

armstack wrote:
OCIE0B - " " " " " " (in TIMSK)

Applies to Timer0, not Timer1

 

armstack wrote:
SCL - USI Clock (Two Wire Mode) SDA - USI Data Input (Two Wire Mode)

These also apply to AVR's with a dedicated TWI engine

 

armstack wrote:

TCCR0A - Timer/Counter Control Register A

TCCR0B – Timer/Counter Control Register B

 

Which timers are these for?

 

 

 Don't forget about the USART(s).

 

Cheers,

JIm

 

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user

Last Edited: Sun. Apr 16, 2017 - 12:44 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Nothing like making something simple very complicated. All the info is already in the data sheets, people just need to learn to read datasheets.

 

Forgot

SEC - Instruction : Set Carry
SEH - Instruction : Set Half-carry Flag
SEI - Instruction : Global Interrupt Enable

etc. all those "acronyms" are already covered in the "AVR instruction set manual" http://www.atmel.com/images/atme...

 

John Samperi

Ampertronics Pty. Ltd.

https://www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

Last Edited: Sun. Apr 16, 2017 - 01:12 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

quiz  :)   ...what does AVR stand for...

Acronym Definition
AVR Automatic Voltage Regulator
AVR Automatic Voltage Regulation
AVR Avril (French: April)
AVR Audio/Video Receiver
AVR Aortic Valve Replacement
AVR Aviator
AVR Automated Voice Response
AVR Avery Dennison (USPS philately)
AVR Audio Visual Research (file extension)
AVR Average Vehicle Ridership
AVR Automatic Voice Recognition
AVR Audio Visual Rentals
AVR Automatic Volume Recognition
AVR Advanced Virtual RISC
AVR Avid Video Resolution
AVR Association Nationale des Victimes de la Route (French: National Association of Road Traffic Victims; Luxembourg)
AVR Allegheny Valley Railroad
AVR Australian Veterinary Reserve (est. 2004; Australia)
AVR American Volunteer Reserve
AVR Advanced Video Redirection
AVR Achat, Vente, Réparation (French: Buying, Selling, Repairs; Couëron, France)
AVR Accelerated Ventricular Rhythm
AVR Association des Villes pour Le Recyclage
AVR Advance Vendor Replacement (vendor provides replacement parts before the return of failed ones)
AVR Augmented Voltage Right Arm (EKG lead)
AVR Assembly and Verification Review
AVR Audio Video Replicator
AVR Active Voltage Regulation/Regulator
AVR Asset Visibility Report
AVR Accelerated Vector Restoration
AVR Absolute Value Rectifier
AVR Alf-Egil Bogen, Vegard Wollan, RISC microcontroller (aka Advanced Virtual RISC)
AVR Augmented and Virtual Reality

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I am with Mr Samperi. Why make life complicated?
.
I just Google "WTF" to see what it means.
If I get too much information, I soon learn how to qualify the Google search more effectively.
.
The OP is called armstack. So I guess that he has familiarity with ARM datasheets.
And knows when to search which ARM document or simply Google.
.
Likewise, it is useful to know how to use egrep or find.
Or what facilities your IDE may have.
.
Like Cliff, I recognise many AVR special function registers and BIT_NAMEs. I still need to check with the datasheet.
.
David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

jgmdesign - Thanks for the comments.  I have edited the corrections into the list, but I didn't change everything you mentioned.   I made the list available to anybody else who wants it, but remember that it was primarily for *me*.  As such, the lines for ...

OCIE0A - Timer/Counter Output Compare Interrupt Enable (in TIMSK)
OCIE0B -    "      "       "      "         "      "   (in TIMSK)
OCIE1A -    "      "       "      "         "      "   (in TIMSK)
OCIE1B -    "      "       "      "         "      "   (in TIMSK)

... are good enough for me.  I won't be held up wondering which timer they are referring to, or which compare register.  Similar for TCCR0A & TCCR0B.

And if the ATtiny85 has a USART, the datasheet doesn't say anything about it.  Where you make the comments about pin 5 (not always), and about what applies to AVR's with a dedicated TWI engine, you are thinking more broadly about the spectrum of AVR controllers than I am able to.  When I posted it, I said "Do with it what you will", so if you want to rework it to make it more generic, please feel free.  Treat it as if it was yours.

 

Mr. Samperi, I didn't understand why you picked out those three instructions with the comment "Forgot".  At first, I thought you meant I had forgotten them from the list, but you clearly didn't think that, as you had copied them from there.  In fact, I made the list by a fairly mechanical process, and without much thought.  I copied the sheet to an editor and went through it, editing out all the upper-case words (which are mostly acronyms).  Then I looked each one up in the datasheet and copied what it said.  However - I could have improved it with a little thought, and would have done so if I had been making it as a general teaching aid - but I wasn't.  I was making it for myself.  Let me illustrate my point with an example.

This is a stupid example, because we all know what the SREG is, but for the sake of explanation, pretend you don't.  The SREG comes up in virtually every section of the sheet, so you might be reading about interrupts, and wonder "What's this SREG thing?"  Then, you'd have to search the datasheet for it, and it would take a while because there are so many mentions of it, and at each mention, you would have to read the text around it to see if it was explained there, or simply used there.  As I said, SREG is a bad example, but there are plenty other acronyms that are used in lots of places and only explained in one place.  Where an acronym is only used once in the datasheet (and I came across several of them), then if they are explained at all (some are not), they are used and explained in the same place - so they should have been left out of my list.  Then, all of the instructions should have been left out because they are in the Instruction Set document, and much better explained than on the datasheet - so yes, I agree that the list is more complicated than it needs to be - and with no benefit.  However, if it complicates matters, then it only complicates them for me - because nobody else is obliged to use the list - and I'm not complaining!

 

avrcandies - when I was just starting on AVR, I read somewhere that it doesn't stand for anything.  I think it was probably in Wikipedia.  Oh - hang on ... I just found it.  The Wikipedia article says "Atmel says that the name AVR is not an acronym and does not stand for anything in particular"

 

David.Prentice - "I am with Mr Samperi. Why make life complicated?"  Is this list going to make your life more complicated?  It was never intended for somebody with 26,438 forum posts under his belt.  It was intended for people like me, with 81 posts - the vast majority of them being questions - people who don't know the acronyms; who came to AVR very recently, and are still struggling with the terminology.

david.prentice wrote:
The OP is called armstack. So I guess that he has familiarity with ARM datasheets.

No, sadly, not true.  See post #15 in https://www.avrfreaks.net/forum/r....

Until big rooms full of Unix servers started to take over, I spent my life working on mainframe systems.  I had some minor involvement with Intel PC chips, and wrote a 1K section of assembler once for a timing-critical section in  a C program I wrote to support a card I designed for a desk-top PC, but this is the first MCU I have ever dealt with.  Naturally, I use grep and PDF find, and the features of NPP.  How else would I have been able to look up 441 acronyms and document them in a day?

Last Edited: Sun. Apr 16, 2017 - 12:19 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

armstack wrote:
"What's this SREG thing?"
Sure SREG is mentioned multiple times in tiny85 data but only one of the Ctrl-F search results looks like this... 

 

This is a common pattern across all AVR datasheets. The main documentation for any register lays out the bits in a grid of 8 rectangles. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

So we're at: "No, there isn't a complete list of all the acronyms used on an AVR, but you come close by combining the register summary and the instruction set summary."

 

I like to be a bit more "modular" when learning acronyms:

 

TIM* - has to do with timer

OC* - has to do with (timer) Output Compare

*CR - control register

*msk - interrupt mask

*ie - interrupt enable

BR* Branch on condition