Questions tagged «atmel»

Atmel是AVR系列(ATMega和ATtiny)和SAM设备之类的微控制器的创建者。Arduino微控制器使用Atmel的AVR系列设备。

6
串行协议定界/同步技术
由于异步串行通信甚至在当今的电子设备中也很普遍,我相信我们许多人会不时遇到这样的问题。考虑与串行线(RS-232或类似产品)连接并且需要连续交换信息的电子设备D和计算机。即每个发送一个命令帧,并每个发送一个状态报告/遥测帧答复(报告可以作为对请求的响应发送,也可以独立发送-在这里并不重要)。通信帧可以包含任何任意二进制数据。假设通信帧是固定长度的分组。PCPCX msDY ms 问题: 由于协议是连续的,因此接收方可能会失去同步,或者只是在进行中的发送帧中间“加入”,因此它只是不知道帧起始位置(SOF)在哪里。根据数据相对于SOF的位置,数据具有不同的含义,接收到的数据可能会永久损坏。 所需的解决方案 可靠的定界/同步方案可在恢复时间短的情况下检测SOF(即重新同步所需的时间不超过1帧)。 我了解(并使用了一些)的现有技术: 1)标头/校验和 -SOF作为预定义的字节值。帧末的校验和。 优点:简单。 缺点:不可靠。恢复时间未知。 2)字节填充: 优点:可靠,快速恢复,可与任何硬件一起使用 缺点:不适用于固定大小的基于帧的通信 3)第9位标记 -在每个字节之前附加一个位,而SOF标记为1和数据字节标记为0: 优点:可靠,快速恢复 缺点:需要硬件支持。大多数PC硬件和软件未直接支持。 4)第8位标记 -上面的一种模拟,同时使用第8位而不是第9位,每个数据字仅保留7位。 优点:可靠,快速的恢复,可与任何硬件一起使用。 缺点:需要从/到常规8位表示到/从7位表示的编码/解码方案。有点浪费。 5)基于超时 -假定SOF为某个已定义的空闲时间之后的第一个字节。 优点:无数据开销,简单。 缺点:不太可靠。在较差的计时系统(如Windows PC)上无法很好地工作。潜在的吞吐量开销。 问题: 还有哪些其他可能的技术/解决方案可以解决该问题?您能否指出上面列出的缺点,可以轻松解决这些缺点,从而消除它们?您(或您将)如何设计系统协议?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 


8
在脑电图上显示RnD,需要帮助,什么运放?
这是我的第一篇文章,我需要一些帮助/建议来找到合适的集成电路。我将从描述项目背景开始。我已经获得了开发开源脑电图仪的奖学金,完成的硬件将为人们开发EEG系统的各种创意和治疗用途(例如音乐控制器,游戏控制器或大脑训练程序)提供平台。我想使用Atmel MCU进行模数转换,我希望它通过USB连接到计算机,我也希望该设备由USB连接供电。我需要帮助找到合适的运算放大器IC来放大MCU之前来自电极的信号。最终的设备将是16个通道,所以我想找到一个具有多个运算放大器的IC。电极吸收的电活动将在200mV或更小的范围内,因此我需要大量增益。是否可以通过使用数字电阻器程序通过MCU调整运算放大器电路的增益?如果可以将硬件重新编程为与各种音频和传感器输入配合使用,那就太好了。任何帮助或建议都很棒。 吉姆

3
从PIC切换到AVR [关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我已经与PIC16和PIC18一起工作了三年多,并且也想了解AVR。我没有特定的项目,但想尝试使用不同的体系结构。我想获得有关PIC和AVR的兼容性报告。 uC的软件 我熟悉PIC16和PIC18的Assembly和C。AVR微控制器的Assembly和C变体与PIC变体有何不同?有很多区别吗? PC的软件 我需要为AVR芯片编译和组装程序的什么软件?它是免费的,我可以在哪里下载? 编程硬件 我已经使用VOTI的Wisp648对PIC进行编程,但是该板无法对AVR进行编程。我是否必须购买程序员,或者网络上有任何我可以自行构建的电路? uC的硬件 对于PIC,我已经使用了很多PIC18F4620。我正在寻找具有类似功能的AVR。我喜欢的功能有: 内部振荡器 计时器 5V和3.3V版本 ADC 具有I2C和SPI支持的MSSP (E)USART 脉宽调制 许多I / O针脚 > = 32kB程序存储器,> = 2kB RAM DIP包装 哪种AVR芯片具有相同的功能?该软件包是一个交易突破者,我真的想要DIP,PDIP或SPDIP。具有类似功能的AVR是什么? SPI和I2C变种 有人告诉我Microchip在SPI和I2C协议上有自己的变种。我经常将微芯片的SPI和I2C从器件与PIC结合使用。我可以将这些芯片(23K256,RTC,ENC28J60等)与AVR结合使用吗?除此之外,是否可以使用I2C或SPI链接AVR和PIC芯片?

2
无法使用AT32UC3L在自定义PCB上启动引导程序
我最近为客户设计了一个PCB,硬件和软件(应用程序按预期的方式运行)一切正常。现在,我们面临着更新微控制器内部程序的需求,但是由于这些PCB安装在世界各地,因此安装引导加载程序并使用与应用程序相同的UART将是完美的选择。 董事会说明 AT32UC3L032 一个UART已经用于板与PC之间的通信 应用程序的几个I / O 几个状态LED 相关的PINS和配置 PA01 # Used for entering ISP with high level PA20 # Used for application and ISP UART PA21 # Used for application and ISP UART #define COM_USART (&AVR32_USART2) #define COM_USART_RX_PIN AVR32_USART2_RXD_0_0_PIN #define COM_USART_RX_FUNCTION AVR32_USART2_RXD_0_0_FUNCTION #define COM_USART_TX_PIN AVR32_USART2_TXD_0_0_PIN #define COM_USART_TX_FUNCTION AVR32_USART2_TXD_0_0_FUNCTION #define …

1
为什么有些微控制器具有如此大的同步延迟?
在Atmel SAM-D21系列微控制器上,许多外围设备使用的时钟与主CPU时钟异步,并且对这些外围设备的访问必须通过同步逻辑进行;在时钟相对于CPU时间较慢的外设上,这会增加一些非常大的延迟。例如,如果将RTC配置为使用1024Hz时钟(这似乎是设计意图),并且CPU以48Mhz运行,则读取“当前时间”寄存器将导致总线逻辑插入超过200,000个等待状态(最小1024Hz时钟的五个周期)。尽管有可能让CPU发出读取请求,执行一些其他不相关的代码,然后在以后返回200,000个以上的周期来获取时间,但似乎没有任何方法可以更快地实际读取时间。 根据我对同步的理解,一个单位同步电路会将信号延迟目标时钟的2-3个周期。同步多位数量会比较困难,但是有多种方法可以保证目标时钟的五个周期(比源时钟快)在五个时钟周期内具有可靠的行为,如果不是,则只能保证几个周期。Atmel SAM-D21的工作将需要在源时钟域中进行六个周期来进行同步,并且哪些因素会有利于其同步延迟足够长以至于需要“同步完成”中断的设计,而确保同步的中断则需要一个周期。同步延迟足够短,以致于不需要此类中断?
11 arm  atmel  synchronous 

2
您如何确定新的微控制器是否有故障?
我从未处理过来自数码相机的故障部件,但是我收到的3台新Atmel ATmega164A一直表现出极其奇怪的性能。 我将其范围缩小到与时钟有关,结果表明,所谓的“经过工厂校准”的内部振荡器产生的时钟信号在650-700 kHz之间抖动,而不是原来的1 MHz。我能够写入校准字节以使其非常接近1 MHz(仍然有些抖动),并且大多数情况下都可以正常工作,但是UART的工作方式并不正常,无论它们似乎输出连续的短脉冲流您要求他们做什么。 我已经处理过此微控制器的低功耗版本(164P),零问题,并决定将其放下并检查时钟输出,以及其稳定的1 MHz且无抖动。我倾向于得出这些164A芯片有缺陷的结论,但是我还有其他测试可以尝试确认这一点吗? 编辑:只是以为我会描述我测量时钟的过程。我已经启用了时钟输出熔丝位,并使用逻辑分析仪以很高的速率测量了适当的引脚。我有一个程序可以写入校准寄存器,OSCCAL并且已经能够尝试并尝试将错误频率提高到1 MHz。 编辑#2:经过进一步调查,似乎在一定程序大小后,微控制器开始工作阈。一个带有一个源文件并闪烁一个LED的简单项目似乎没问题,但是编译并链接我的任何其他文件(例如UART库或任何其他文件)而没有对这些方法进行函数调用都会导致微控制器在上述行为。电源连接良好,已进行了正确的去耦。目前我没有时间进一步调试它,因此我们改用了低功耗版本。我不确定确切的问题可能出在哪里1)164A和164P不兼容代码2)这两个uC的编程步骤不同3)单元有故障。我对我们的电路板设计充满信心,并将排除电源问题。不幸的是,我不能真正选择正确的答案,所以我将这个问题保留原样-也许我 将来会再次回到该问题。感谢所有提供有见地的评论或答案的人,它们对于开箱即用的uC问题可能对其他人很有用。

5
监视时钟周期以获取arduino / AVR上的代码?
是否可以监视代码块并确定代码在Arduino和/或AVR atmel处理器上执行的处理器时钟周期数?或者,我应该监视代码运行前后经过的微秒吗?注意:我不关心实时(例如,经过了多少实际秒数),而我担心的是“此代码需要CPU多少个时钟周期” 我可以提出的当前解决方案是来自time.c: #define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) #define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) connection.c添加: #define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) 通过这个帐户,我可以通过监视经过的微秒来计算经过的时钟周期,然后将其传递给microsecondsToClockCycles()。我的问题是,有没有更好的方法? 旁注:是否有足够的资源来监视AVR的性能。lmgtfy.com和各种论坛搜索都没有提供任何明显的结果,除了探索计时器 谢谢
11 arduino  avr  atmel  timer 

3
ATtiny85功耗有望翻番
我正在尝试让ATTiny85耗尽电池电量。我有一个时钟为16.384 MHz的晶体,并配有8分频保险丝。Vcc为3.3伏。数据手册中的图22-7表示,在空闲(set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode();)时,它的功耗应约为300 µA。实际上,我看到它的功耗更接近850 µA。我不知道为什么功耗是预期的两倍。我关闭了PRR中的所有内容,但timer0除外,该计时器已配置为每25 ms中断一次。因此,它应该将其大部分时间都花在空闲状态上,考虑到我仍然希望计时器计数,这是我能做的最好的事情。 保险丝为0x7f,0xdf,0xff。 这是此测试运行的代码: #include <Arduino.h> #include <EEPROM.h> #include <avr/sleep.h> #include <avr/power.h> #define P0 0 #define P1 1 #define P_UNUSED 2 ISR(TIMER0_COMPA_vect) { // do nothing - just wake up } void setup() { power_adc_disable(); power_usi_disable(); power_timer1_disable(); //PRR = _BV(PRADC) | _BV(PRTIM1) | _BV(PRUSI); // everything …

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

4
适用于Linux上32位微控制器的最佳IDE
我选择一个32位微控制器来实现卡尔曼滤波器。 Atmel Studio 6 IDE非常吸引我。但是,它似乎只能在Windows上运行。 谁能建议一个好的Linux IDE? 否则,我想我将在虚拟机中使用Atmel Studio 6 IDE。 提前谢谢了,

4
将LED直接连接到5V Attiny可以吗?
从数据表中可以看出,尽管AT90S1200具有限流引脚,但在5V电压下运行时,它会通过连接到+的绿色LED(0点亮LED,1熄灭)吸收适当的电流,而无需任何外部电阻。不幸的是,当我连接了其中的8个芯片后,IC在几分钟后就烧毁了。我还有一块笨拙的无焊面包板,否则可能会使该零件短路。 我对该数据表有什么误解?
9 atmel  led  current 

3
查找LQFP芯片的第一引脚
我已经购买了一些LQFP 100封装的ATSAM4E8C芯片。数据表显示,IC应该有一个指示第一个引脚的点,而我的有两个点。一个较大的拐角处,一个较小的对角线白点。芯片上涂的名称的左上角与任何一个都不对齐。第一个销钉应该放在哪里?

1
PWM模式:居中对齐和左对齐
我正在使用Atmel AT32UC3C2512C,并在数据表中查找了两种PWM模式:居中对齐和左对齐。 我想知道何时应该使用这些模式中的每一种,以及它们的优缺点。
8 avr  pwm  atmel 
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.