Questions tagged «avr»

AVR是Atmel开发的8位和32位微控制器内核。AVR被选为流行的Arduino SBC的微控制器。

3
如何在Linux PC上使用gdb调试Arduino Uno?
如何在Linux PC上使用gdb调试(单步执行源代码)Arduino Uno?请注意,我不喜欢在wine或VirtualBox中使用AVR Studio。 问题1:物理连接 如何和什么连接到Uno板?我的猜测是,由于Uno板上装有ATmega328,因此应该可以使用一步式源代码?我还猜想我可以在ICSP头上使用AVR JTAGICE mkII或AVR Dragon? 问题2: GDB服务器 然后我注意到有一些项目,例如AVaRICE,似乎为gdb函数提供了jtag,但可能还有其他项目吗? 问题3:小精灵在哪里? 如果我启动并运行它,那么Arduino IDE在哪里将生成的输出像带有调试符号的elf文件一样隐藏(应该有一个)?还是我需要生成仅使用Ardino库的经典Makefile? 我试图找到有关使用什么/如何使用的信息,但是我只发现了那些告诉我可以做什么的线索。有人可以将我推向正确的方向吗?
10 arduino  avr  linux  debugging 

10
带有Java API的微控制器
我的硬件团队计划在未来的项目中使用Atmel AVR 8位微控制器。 据我所知,它必须用C编程。我已经找到了用于AVR 的JVM,尽管它比Atmel的本机C库更受限制。 您能建议我一个支持Java的8位微控制器吗? PS。我不了解C,并且我对微处理器编程没有经验。

2
恢复ATtiny13
我正在玩ATtiny13,我认为将它与外部8Mhz陶瓷振荡器代替内置的1.2Mhz振荡器一起使用会很好。(我想以9600 bps的速度进行uart测试,所以我认为1.2 Mhz太慢了) 要更改为外部振荡器,我运行了“ avrdude -c usbtiny -p attiny13 -U lfuse:w:0x70:m -U hfuse:w:0xff:m” 不幸的是,我现在无法访问该设备。那里的“ PB0上的LED闪烁”程序不再运行,程序员无法连接到它。 不知道在这里做什么。我可以扔掉这个芯片还是有办法挽救它?

3
如何测量流向组件的电流?
我正在使用简单的伺服器构建六脚机器人,我想知道测量每个伺服器的电流(5-6V DC至最大0.25-1A)的可行性(我尚未找到伺服器失速的规格当前)),例如使用ATMega168。为了给我一个有用的读数,我需要与哪种伺服电源线串联构建哪种电路?我假设我会在该电路上出现电压降,这可能是什么?等等


3
随机且不可预测的模拟比较器行为
我正在一个相对“简单”的项目中工作,我需要测量振幅和频率变化的正弦波的频率。为了简化起见,现在,我只有一个固定频率(27Hz)的正弦波输入(比较器的负输入),该振幅只能通过幅度(使用电位计)进行改变。比较器的正输入设置为Vcc / 2。然后,将比较器的输出馈送到atmega2560微控制器的输入捕获寄存器,以测量频率。 问题是,在输入信号的某些振幅下,我在输出上会出现非常强烈的切换(有时甚至是死区),如下所示: 预期输出应如下所示: 到目前为止我尝试过的事情: 使用内部atmega2560的内部比较器。使用外部比较器。使用软件和施密特触发器电路介绍磁滞。尝试了各种输入设置,包括固定参考设置和数据切片器设置。尝试使用不同的atmega2560。尝试不同的时钟速度。 一些解决方案比其他解决方案更稳定,但没有一个是可以接受的。到目前为止,我已经采用了最稳定的配置: 使用此设置,某些功能可以改善/更改稳定性,但是仍然远远不能达到完美: 更改R5的值以增加磁滞。完全删除C2(不知道为什么)。面包板上的触摸导线(很多导线彼此相邻)。将电源从外部切换到USB,反之亦然。 此时,要么是噪声,要么是我的DAC(正弦波),要么是我做的非常根本的错误操作。该电路已经为其他人工作,没有任何问题,因此我的配置或环境一定存在问题。 如果有人有任何建议,我将不胜感激。 这是我的最小资源: #include <avr/io.h> void init(void); void init(void) { /* Setup comparator */ ACSR = (1 << ACIE) | (1 << ACIS1); /* Initialize PORTD for PIND5 */ DDRD = 0x00; PORTD = 0x00; /* Enable global interrupts */ …

1
ATtiny:不支持乘法?
的确ATtiny AVR没有硬件支持乘法?当我在代码中执行乘法时,它似乎工作正常。我还包括math.h并进行了sin()和cos()的计算。有人知道吗,这些计算是否会给我带来800个周期的巨额罚款?
10 avr  attiny 

3
微控制器上的数据保留
只要阅读attiny13的数据表,它就可以在85摄氏度下保存20年,在25摄氏度下保存100年。 这是否与微型计算机上的读写无关,例如,我将其关闭并在85摄氏度的恒温下保持20年,它将丢失其数据? 它如何“松散”其数据?我看不到这个概念。 ppm数据保留部分中第6页提到的ppm(百万分之一)单位又是什么,但不了解其含义。在谈论晶体振荡器时,我经常看到它,但不明白为什么使用它。
10 avr  data 

4
使用自定义Arduino板(AVR解决方案)实现最简单,最佳的PoE以太网芯片/微型/ DIY接口设计
我正在寻找一种PoE以太网芯片,该芯片可以与一些Arduino功能一起纳入我计划使用的设计中。我宁愿为能够提供以太网的以太网设备实现独立的MCU。所有可能的解决方案都必须支持PoE才能为Micro供电。我既不打算购买Arduino,也不想自己使用任何防护罩。我正在寻找可以与Arduino固件和微控制器配合使用的PoE以太网芯片。我可以将其集成到自己的定制Arduino板上的芯片。 我也会对提供与板载以太网的Arduino ATMega168 / etc具有相同功能(逐针)的AVR芯片感兴趣。 我的开发平台将是AVRStudio或带有Jtag ICE MKII的类似平台。我没有使用PIC的能力,因为我没有程序员,软件或现金来投资另一个平台。 事先感谢您的帮助。 编辑:安德鲁指出,我应该发布更多信息。首先,安德鲁:我没有看过您提到的MFG。我现在就这样做。 我想在房子周围放置一些Freeduino类型的设置,以执行各种家庭自动化任务。我的家已经与Cat6相连,我计划将某些网络分支插入10/100 8端口Linksys POE交换机。我想为每台设备提供网络和电源,而不必破坏网络电缆。我已验证该交换机符合802.3af标准。 我想创建每块板,以便仅从PoE线上断开电源,以提供传感器和继电器功能(继电器为Crouzet的SSR-GA8-6D05,继电器需要3-32VDC。 我希望PoE芯片能够提供完整的PoE电压,或者足以将其降至7-12VDC。如果需要,我可以添加7805或适当的芯片以确保电压调节。最后,我的微型电脑需要在1A电流下调节5V + 3V DC。 希望这能回答我原来遗漏的任何内容。
10 avr  power-supply  poe 

4
为什么GCC编译器会省略一些代码?
我不明白为什么GCC编译器会在保留附近绝对相同的代码的同时删掉部分代码? C代码: #define setb_SYNCO do{(PORTA|= (1<<0));} while(0); ISR(INT0_vect){ unsigned char i; i = 10; while(i>0)i--; // first pause - omitted setb_SYNCO; setb_GATE; i=30; clrb_SYNCO; while(i>0)i--; // second pause - preserved clrb_GATE; } LSS的相应部分(汇编文件,由编译器创建): ISR(INT0_vect){ a4: 1f 92 push r1 a6: 0f 92 push r0 a8: 0f b6 in r0, 0x3f …
9 avr  c  avr-gcc  optimization  gcc 

3
ATtiny45直接USB 2.0连接的固件和电路
我想使用ATtiny45制作自己的模块化USB设备,该设备只需通过USB将数据发送到PC。我没有读取数据,因此单向连接(ATtiny-> PC)完全可以。 我正在使用Arduino Uno作为ISP,并从Arduino软件中加载了标准ArduinoISP草图。我正在考虑使用AVRDUDE与Arduino作为ISP一起对ATtiny45进行编程,因为我希望能够使用编译为HEX的C代码,因为它比Arduino编程语言更高级。 我对电路的基本想法是: 如您所见,我想要一个“直接” USB连接。到目前为止,我知道我必须为此使用基于软件的解决方案。 我已经管理SoftwareSerial与我的ATtiny45一起使用。为此,我使用了Arduino软件通过以下代码对ATtiny45进行编程: #include <SoftwareSerial.h> #define rxPin 3 #define txPin 4 SoftwareSerial serial(rxPin, txPin); void setup() { pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(led, OUTPUT); serial.begin(4800); } void loop() { serial.println("1"); delay(1000); } 请注意,我还没有使用Pin 3(但),但需要为SoftwareSerial定义它。 这样,通过使用SoftwareSerial,我能够将数据从ATtiny直接发送到我的Arduino UNO的TX引脚上,该引脚上已加载了此测试的空白草图。我使用Arduino软件的串行监视器读取COM4上的数据(在我的情况下),因为我试图将编程的ATtiny直接连接到USB电缆时,我的PC无法识别任何设备(COM端口)。 不幸的是,我在串行监视器中只有奇怪的unicode字符。我认为是因为数据采用十六进制格式左右。因此,我注意到我需要在USB和ATtiny45之间连接一个USB /串行转换器 ...我已经搜索了此类转换器,但是我不想使用任何预制板,因为我想要所有我的组件放在一块板上。我认为FTDI芯片对我的项目来说太“太多了”,不是吗?(它的引脚太细小,无法焊接...) V-USB是我的第二种方法,因为它不需要USB /串行转换器(据我所知)。因此,要使用V-USB,我需要使用前面提到的AVRDUDE。 我找到了一个很好的示例V-USB EasyLogger。它包含电路设计和示例固件。(C / C ++ …

1
ATmega328上的AVR计时器加速
当在ATmega328上以64的时钟预分频器运行时,我的一个定时器在执行的特定时间由于未知原因而加速。 我在ATmega328上使用了两个定时器来生成TLC5940所需的时钟(请参见下面的原因;这与问题无关紧要)。TIMER0使用快速PWM开启生成时钟信号OC0B,其设置如下: TCCR0A = 0 |(0<<COM0A1) // Bits 7:6 – COM0A1:0: Compare Match Output A Mode |(0<<COM0A0) // |(1<<COM0B1) // Bits 5:4 – COM0B1:0: Compare Match Output B Mode |(0<<COM0B0) |(1<<WGM01) // Bits 1:0 – WGM01:0: Waveform Generation Mode |(1<<WGM00) ; TCCR0B = 0 |(0<<FOC0A) // Force Output Compare A …
9 avr  atmega  spi  timer 

2
确定哪个引脚触发了PCINTn中断?
我是否正确地认为如果有两个引脚引起相同的AVR PCINT中断(例如,由PCINT0或PCINT1引脚引起的PCINT0 向量 -我认为向量和引脚的命名重叠会令人困惑)是确定哪个引脚的唯一方法(s)导致中断是在每次中断后记录其状态,并比较在PCMSKn中启用的所有引脚的先前值和当前值?
9 avr  interrupts  atmel 

1
用合成的ROM内核模拟一个简单的测试台
我对FPGA领域是一个全新的领域,并认为我将从一个非常简单的项目开始:一个4位7段解码器。我纯粹用VHDL编写的第一个版本(基本上是单个组合select,不需要时钟),并且似乎可以使用,但我也想尝试使用Xilinx ISE中的“ IP内核”功能。 因此,现在我正在使用“ ISE Project Explorer” GUI,并使用ROM内核创建了一个新项目。生成的VHDL代码为: LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- synthesis translate_off LIBRARY XilinxCoreLib; -- synthesis translate_on ENTITY SSROM IS PORT ( clka : IN STD_LOGIC; addra : IN STD_LOGIC_VECTOR(3 DOWNTO 0); douta : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END SSROM; ARCHITECTURE SSROM_a OF SSROM IS -- …

3
是否需要将AVR寄存器和端口初始化为零?
在我的代码的初始化例程中,我用于执行以下操作: clr r0 ; will always stay zero 和: out PORTA, r0; initialize ports out DDRA, r0 out PORTB, r0 ... 这真的有必要吗?还是可以确定重置后自动完成此操作?特别是,我是否可以默认将所有端口设置为输入,以便在不执行任何代码时外部电压没有问题?
9 avr  reset  port  register 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.