历史上的今天
返回首页

历史上的今天

今天是:2024年12月08日(星期日)

正在发生

2021年12月08日 | STM32F4学习笔记10——RTC实时时钟

2021-12-08 来源:eefocus

RTC实时时钟

实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器。RTC 提供一个日历时钟、两个可编程 闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC 还包含用于管理低功耗模 式的自动唤醒单元。


两个 32 位寄存器包含二进码十进数格式 (BCD) 的秒、分钟、小时(12 或 24 小时制)、星 期几、日期、月份和年份。此外,还可提供二进制格式的亚秒值。


系统可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。并且还可以进行夏令时 补偿。


其它 32 位寄存器还包含可编程的闹钟亚秒、秒、分钟、小时、星期几和日期。


此外,还可以使用数字校准功能对晶振精度的偏差进行补偿。


上电复位后,所有 RTC 寄存器都会受到保护,以防止可能的非正常写访问。


无论器件状态如何(运行模式、低功耗模式或处于复位状态),只要电源电压保持在工作范围内,RTC 便不会停止工作。


RTC主要特性

● 包含亚秒、秒、分钟、小时(12/24 小时制)、星期几、日期、月份和年份的日历。

● 软件可编程的夏令时补偿。

● 两个具有中断功能的可编程闹钟。可通过任意日历字段的组合驱动闹钟。

● 自动唤醒单元,可周期性地生成标志以触发自动唤醒中断。

● 参考时钟检测:可使用更加精确的第二时钟源(50 Hz 或 60 Hz)来提高日历的精确度。

● 利用亚秒级移位特性与外部时钟实现精确同步。

● 可屏蔽中断/事件:

— 闹钟 A

— 闹钟 B

— 唤醒中断

— 时间戳

— 入侵检测

● 数字校准电路(周期性计数器调整)

— 精度为 5 ppm

— 精度为 0.95 ppm,在数秒钟的校准窗口中获得

● 用于事件保存的时间戳功能(1 个事件)

● 入侵检测:

— 2 个带可配置过滤器和内部上拉的入侵事件

● 20 个备份寄存器(80 字节)。发生入侵检测事件时,将复位备份寄存器。

● 复用功能输出 (RTC_OUT),可选择以下两个输出之一:

— RTC_CALIB:512 Hz 或 1 Hz 时钟输出(LSE 频率为 32.768 kHz)。

可通过将 RTC_CR 寄存器中的 COE[23] 位置 1 来使能此输出。该输出可连接到器件 RTC_AF1 功能。

— RTC_ALARM(闹钟 A、闹钟 B 或唤醒)。

可通过配置 RTC_CR 寄存器的 OSEL[1:0] 位选择此输出。该输出可连接到器件RTC_AF1 功能。

● RTC 复用功能输入:

— RTC_TS:时间戳事件检测。该输入可连接到器件 RTC_AF1 和 RTC_AF2 功能。

— RTC_TAMP1:TAMPER1 事件检测。该输入可连接到器件 RTC_AF1 和 RTC_AF2功能。

— RTC_TAMP2:TAMPER2 事件检测。

— RTC_REFIN:参考时钟输入(通常为市电,50 Hz 或 60 Hz)。

RTC实时时钟框图

对于 STM32F4xx 器件,RTC_AF1 和 RTC_AF2 复用功能分别与 PC13 和 PI8 相连。


RTC功能说明

时钟和预分频器

RTC时钟源RTCCLK通过时钟控制器LSE时钟,LSI振荡器时钟一级HSE时钟三者中选者。可编程预分频器阶段可以生成1Hz的时钟,用于更新日历。为最大程度价格低功耗,预分频器分为两个可编程的预分频器:

· 一个通过RTC_PRER寄存器的PREDIV_A位配置的7位异步分频器。

· 一个通过RTC_PRER寄存器的PREDIV_S位配置的15位同步预分频器。

为了最大程度的降低功耗,推荐将异步预分频器配置为较高的值。

要使用频率为 32.768 kHz 的 LSE 获得频率为 1 Hz 的内部时钟 (ck_spre),需要将异步预分 频系数设置为 128,并将同步预分频系数设置为 256。


分频系数的最小值为 1,最大值为 2^22。

这对应于约为 4 MHz 的最大输入频率。

fck_apre 可根据以下公式得出:

这里写图片描述

ck_apre 时钟用于为二进制 RTC_SSR 亚秒递减计数器提供时钟。当该计数器计数到 0 时, 会使用 PREDIV_S 的内容重载 RTC_SSR。

fck_spre 可根据以下公式得出:

这里写图片描述

ck_spre 时钟既可以用于更新日历,也可以用作 16 位唤醒自动重载定时器的时基。为获得较 短的超时周期,还可以将 16 位唤醒自动重载定时器与经可编程的 4 位异步预分频器分频的 RTCCLK 一同运行。


实时时钟和日历

RTC 日历时间和日期寄存器可通过与 PCLK1(APB1 时钟)同步的影子寄存器来访问。这 些时间和日期寄存器也可以直接访问,这样可避免等待同步的持续时间。

● RTC_SSR 对应于亚秒

● RTC_TR 对应于时间

● RTC_DR 对应于日期

每隔两个 RTCCLK 周期,便将当前日历值复制到影子寄存器,并将 RTC_ISR 寄存器的 RSF 位置 1。在停机和待机模式下不会执行复制操作。退出这两种模式 时,影子寄存器会在最长 2 个 RTCCLK 周期后进行更新。

当应用读取日历寄存器时,它会访问影子寄存器的内容。也可以通过将 RTC_CR 寄存器的 BYPSHAD 控制位置 1 来直接访问日历寄存器。默认情况下,该位被清零,用户访问影子寄 存器。

在 BYPSHAD=0 模式下读取 RTC_SSR、RTC_TR 或 RTC_DR 寄存器时,APB 时钟频率 (fAPB) 必须至少为 RTC 时钟频率 (fRTCCLK) 的 7 倍。

影子寄存器通过系统复位来复位。


可编程闹钟

RTC 单元提供两个可编程闹钟,即闹钟 A 和闹钟 B。

可通过将 RTC_CR 寄存器中的 ALRAE 和 ALRBE 位置 1 来使能可编程闹钟功能。如果日历 亚秒、秒、分钟、小时、日期或日分别与闹钟寄存器 RTC_ALRMASSR/RTC_ALRMAR 和RTC_ALRMBSSR/RTC_ALRMBR 中编程的值相匹配,则 ALRAF 和 ALRBF 标志会被置为 1。可通过 RTC_ALRMAR 和 RTC_ALRMBR 寄存器的 MSKx 位以及 RTC_ALRMASSR 和 RTC_ALRMBSSR 寄存器的 MASKSSx 位单独选择各日历字段。可通过 RTC_CR 寄存器中 的 ALRAIE 和 ALRBIE 位使能闹钟中断。

闹钟 A 和闹钟 B(如果已通过 RTC_CR 寄存器中的位 OSEL[0:1] 使能)可连接到 RTC_ALARM 输出。可通过 RTC_CR 寄存器的 POL 位配置 RTC_ALARM 极性。

注意: 如果选择秒字段(RTC_ALRMAR 或 RTC_ALRMBR 中的 MSK0 位复位),则 RTC_PRER

寄存器中设置的同步预分频器分频系数必须至少为 3,才能确保闹钟正确地运行。


周期性自动唤醒

周期性唤醒标志由 16 位可编程自动重载递减计数器生成。唤醒定时器范围可扩展至 17 位。

可通过 RTC_CR 寄存器中的 WUTE 位来使能此唤醒功能。

唤醒定时器的时钟输入可以是:

● 2、4、8 或 16 分频的 RTC 时钟 (RTCCLK)。

当 RTCCLK 为 LSE (32.768 kHz) 时,可配置的唤醒中断周期介于 122 μs 和 32 s 之间,且分辨率低至 61 μs。

● ck_spre(通常为 1 Hz 内部时钟)

当 ck_spre 频率为 1 Hz 时,可得到的唤醒时间为 1s 到 36h 左右,分辨率为 1 秒。这一较大的可编程时间范围分为两部分:

— WUCKSEL [2:1] = 10 时为 1s 到 18h。

— WUCKSEL [2:1] = 11 时约为 18h 到 36h。在后一种情况下,会将 216 添加到 16 位计数器当前值。完成初始化序列后(请参见第 577 页的编程唤醒定时器),定时器开始递减计数。在低功耗模式下使能唤醒功能时,递减计数保持有效。此外,当计数器计数到 0 时,RTC_ISR 寄存器的 WUTF 标志会置 1,并且唤醒寄存器会使用其重载值(RTC_WUTR 寄存器值)动重载。之后必须用软件清零 WUTF 标志。

通过将 RTC_CR2 寄存器中的 WUTIE 位置 1 来使能周期性唤醒中断时,它会使器件退出低 功耗模式。

如果已通过 RTC_CR 寄存器中的位 OSEL[0:1] 使能周期性唤醒标志,则该标志可连接到 RTC_ALARM 输出。可通过 RTC_CR 寄存器的 POL 位配置 RTC_ALARM 极性。

系统复位以及低功耗模式(睡眠、停机和待机)对唤醒定时器没有任何影响。


RTC的初始化和配置

RTC 寄存器访问

RTC 寄存器为 32 位寄存器。除了当 BYPSHAD=0 时对日历影子寄存器执行的读访问之外, APB 接口会在访问 RTC 寄存器时引入 2 个等待周期。

RTC 寄存器写保护

系统复位后,可通过 PWR 电源控制寄存器 (PWR_CR) 的 DBP 位保护 RTC 寄存器以防止 非正常的写访问。必须将 DBP 位置 1 才能使能 RTC 寄存器的写访问。

上电复位后,所有 RTC 寄存器均受到写保护。通过向写保护寄存器 (RTC_WPR) 写入一个 密钥来使能对 RTC 寄存器的写操作。

要解锁所有 RTC 寄存器(RTC_ISR[13:8]、RTC_TAFCR 和 RTC_BKPxR 除外)的写保护, 需要执行以下步骤:

1.将“0xCA”写入 RTC_WPR 寄存器。

2. 将“0x53”写入 RTC_WPR 寄存器。

写入一个错误的关键字会再次激活写保护。

保护机制不受系统复位影响。

复位 RTC

日历影子寄存器(RTC_SSR、RTC_TR 和 RTC_DR)以及 RTC 状态寄存器 (RTC_ISR) 的 某些位通过所有可用的系统复位源复位为各自的默认值。

相反,以下寄存器则通过上电复位来复位为各自的默认值并且不受系统复位的影响:RTC 当 前日历寄存器、RTC 控制寄存器 (RTC_CR)、预分频器寄存器 (RTC_PRER)、RTC 校准寄 存器(RTC_CALIBR 或 RTC_CALR)、RTC 移位寄存器 (RTC_SHIFTR)、RTC 时间戳寄 存器(RTC_TSSSR、RTC_TSTR 和 RTC_TSDR)、RTC 入侵和复用功能配置寄存器 (RTC_TAFCR)、RTC 备份寄存器 (RTC_BKPxR)、唤醒定时器寄存器 (RTC_WUTR) 以及 闹钟 A 和闹钟 B 寄存器(RTC_ALRMASSR/RTC_ALRMAR 和 RTC_ALRMBSSR/

RTC_ALRMBR)。

此外,如果复位源不是上电复位源,则发生系统复位时,RTC 会继续工作。发生上电复位 时,RTC 会停止工作,并且所有 RTC 寄存器都会设置为各自的复位值。

RTC 同步

RTC 可与高精度的远程时钟同步。在读取亚秒字段后(RTC_SSR 或 RTC_TSSSR),即 可计算远程时钟的时间与 RTC 之间的精准偏差。之后,可使用 RTC_SHIFTR 对 RTC 的时 钟进行零点几秒的“平移”,经过调整后可消除此偏差。

RTC_SSR 包含同步预分频器计数器的值。这样,便可计算分辨率低至 1/(PREDIV_S + 1) 秒的 RTC 的准确时间。因此,可通过增大同步预分频器的值 (PREDIV_S[14:0]) 来提高 分辨率。将 PREDIV_S 设置为 0x7FFF 时,可得到允许的最大分辨率(30.52 μs,时钟频率 为 32768 Hz)。

但是,提高 PREDIV_S 意味着必须降低 PREDIV_A 才能将同步预分频器的输出维持在 1 Hz。 这样,异步预分频器的输出频率会增大,RTC 的动态功耗也会相应增加。

可以使用 RTC 平移控制寄存器 (RTC_SHIFTR) 对 RTC 进行微调。可以用大小为 1/

(PREDIV_S + 1) 秒的分辨率对 RTC_SHIFTR 进行写操作,将时钟平移(延迟或提前)最长 1 秒。在这种平移操作中,会将 SUBFS[14:0] 值加到同步预分频器计数器 SS[15:0] 中:这将使时钟产生延迟。如果同时将 ADD1S 位置 1,则会增加一秒,与此同时减去的时间为零点几秒,因此将使时钟提前。

注意: 初始化平移操作前,用户必须检查确认 SS[15] = 0,以确保不会发生上溢。

对 RTC_SHIFTR 寄存器执行写操作以启动平移操作时,硬件会将 SHPF 标志置 1 以指示平 移操作挂起。完成平移操作时,硬件会将将该位清零。

注意: 该同步功能与参考时钟检测功能不兼容:当 REFCKON=1 时,固件不能对 RTC_SHIFTR 执

行写操作。

Error StatusRTC_DeInit(void)功能:重定义RTC寄存器到他们的复位值,这个函数不能复位RTC时钟源跟RTC备份数据寄存器。

ErrorStatus RTC_Init(RTC_InitTypeDef*RTC_InitStruct)功能:根据RTC参数配置RTC例子,RTC分频器寄存器是写保护的,只能在初始化模式才能写。

void RTC_StructInit(RTC_InitTypeDef*RTC_InitStruct)功能:将RTC_InitStruct成员全部初始化成为复位值。

void RTC_WriteProtectionCmd(FunctionalState NewState)功能:使能或禁止写保护。所有的RTC寄存器都是写保护的除(RTC_ISR[13:8],RTC_TAFCR,RTC_BKBxR)。写入错误的秘钥将从新激活写保护,写保护机制不收系统复位影响。

ErrorStatue RTC_EnterInitMode(viod)功能:进入RTC初始化模式,RTC初始化模式是写保护模式,调用这个函数之前要先调用函数RTC_WriteProtectionCmd(DISABLE)。

void RTC_ExitInitMode(void)功能:退出RTC初始化模式,当初始化时序完成后,4个RTCCLK时钟后日历才开始工作。RTC初始化模式是写保护的,调用这个函数之前要先调用函数RTC_WriteProtectionCmd(DISABLE)。

ErrorStatus RTC_WaitForSynchro(void)功能:等待直到RTC时间和日期寄存器与APB时钟同步。RTC同步·模式是写保护的,使用前要先调用函数RTC_WriteProtectionCmd(DISABLE)。

ErrorStatus RTC_RefClockCmd(FunctionalState NewState)使能或禁止RTC参考时钟。


时间和日期初始化和配置

要编程包括时间格式和预分频器配置在内的初始时间和日期日历值,需按照以下顺序操作:

1.将 RTC_ISR 寄存器中的 INIT 位置 1 以进入初始化模式。在此模式下,日历计数器将停 止工作并且其值可更新。

2. 轮询 RTC_ISR 寄存器中的 INITF 位。当 INITF 置 1 时进入初始化阶段模式。大约需要 2 个 RTCCLK 时钟周期(由于时钟同步)。

3. 要为日历计数器生成 1 Hz 时钟,应首先编程 RTC_PRER 寄存器中的同步预分频系数, 然后编程异步预分频系数。即使只需要更改这两个字段中之一,也必须对 RTC_PRER 寄存器执行两次单独的写访问。

4. 在影子寄存器(RTC_TR 和 RTC_DR)中加载初始时间和日期值,然后通过 RTC_CR 寄存器中的 FMT 位配置时间格式(12 或 24 小时制)。

5. 通过清零 INIT 位退出初始化模式。随后,自动加载实际日历计数器值,在 4 个 RTCCLK 时钟周期后重新开始计数。

当初始化序列完成之后,日历开始计数。

注意:系统复位后,应用可读取 RTC_ISR 寄存器中的 INITS 标志,以检查日历是否已初始化。如 果该标志为 0,表明日历尚未初始化,因为年份字段设置为其上电复位时的默认值 (0x00)。

要在初始化之后读取日历,必须首先用软件检查 RTC_ISR 寄存器的 RSF 标志是否置 1。

ErrorStatus RTC_SetTime(uint32_tRTC_Format,RTC_TimeTypeDef*RTC_TimeStruct)功能:设置当前RTC时间

void RTC_TimeStructInit(RTC_TimeTypeDef*RTC_TimeStruct)功能:初始化RTC_TimeStruct结构体成员到复位值

void RTC_GetTime(uint32_t RTC_Format,RTC_TimeTypeDef*RTC_TimeStruct)功能得到RTC时间。

uint_32t RTC_GetSubSecond(void)功能:得到亚秒

ErrorStatus RTC_SetDate(uint32_t RTC_Format,RTC_DateTypeDef*RTC_DateStruct)

void RTC_DateStructInit(RTC_DateTypeDef*RTC_DateStruct)

void RTC_GetDate(uint32_t RTC_Format,RTC_DateTypeDef*RTC_DateStruct)这几个函数都是设置日期的,功能与设置时间的函数是一样的。


编程闹钟

要对可编程的闹钟(闹钟 A 或闹钟 B)进行编程或更新,必须执行类似的步骤:

1.将 RTC_CR 寄存器中的 ALRAE 或 ALRBE 位清零以禁止闹钟 A 或闹钟 B。

2. 轮询 RTC_ISR 寄存器中的 ALRAWF 或 ALRBWF 位,直到其中一个置 1,以确保闹钟 寄存器可以访问。大约需要 2 个 RTCCLK 时钟周期(由于时钟同步)。

3. 编程闹钟 A 或闹钟 B 寄存器(RTC_ALRMASSR/RTC_ALRMAR 或 RTC_ALRMBSSR/RTC_ALRMBR)。

4. 将 RTC_CR 寄存器中的 ALRAE 或 ALRBE 位置 1 以再次使能闹钟 A 或闹钟 B。

注意:约 2 个 RTCCLK 时钟周期(由于时钟同步)后,将执行对 RTC_CR 寄存器的更改。

void RTC_SetAlarm(uint32_t RTC_Format, uint32_t RTC_Alarm, RTC_AlarmTypeDef*RTC_AlarmStruct)功能:RTC闹钟时间配置。

void RTC_AlarmStructInit(RTC_AlarmTypeDef*RTC_AlarmStruct)功能初始化RTC_AlarmTypeDef类型的结构体成员到复位值。

void RTC_GetAlarm(uint32_t RTC_Format, uint32_t RTC_Alarm, RTC_AlarmTypeDef*RTC_AlarmStruct)功能:得到RTC闹钟数值。

ErrorStatus RTC_AlarmCmd(uint32_t RTC_Alarm,FunctionalState NewState)功能:禁止或使能RTC闹钟。

void RTC_AlarmSubSecondConfig(uint32_t RTC_Alarm,uint32_t RTC_AlarmSubSecondValue,uint32_t RTC_AlarmSubSecondMask)功能配置RTC AlarmA/B的亚秒

RTC_GetAlarmSubSecond(uint32_t RTC_Alarm)功能:得到RTC的亚秒时间。


编程唤醒定时器

要配置或更改唤醒定时器的自动重载值(RTC_WUTR 中的 WUT[15:0]),需要按照以下顺 序操作:

1.清零 RTC_CR 中的 WUTE 以禁止唤醒定时器。

2. 轮询 RTC_ISR 中的 WUTWF,直到该位置 1,以确保可以访问唤醒自动重载定时器和 WUCKSEL[2:0] 位。大约需要 2 个 RTCCLK 时钟周期(由于时钟同步)。

3. 编程唤醒自动重载值 WUT[15:0],并选择唤醒时钟(RTC_CR 中的 WUCKSEL[2:0] 位)。 将 RTC_CR 寄存器中的 WUTE 位置 1 以再次使能定时器。唤醒定时器重新开始递减 计数。


void RTC_WakeUpClockConfig(uint32_t RTC_WakeUpClock)功能:配置RTC唤醒时钟源

void RTC_SetWakeUpCounter(uint32_t RTC_WakeUpCounter)功能:配置RTC唤醒计数,使用这个函数前要保证RTC唤醒被禁止RTC_WakeUpCmd(DISABLE)

uint32_t RTC_GetWakeUpCounter(void)功能:得到唤醒定时器的计数值

ErrorStatus RTC_WakeUpCmd(FunctionalState NewState)功能:使能或禁止唤醒定时器


时间戳功能

将 RTC_CR 寄存器的 TSE 位置 1 可使能时间戳。

当在 TIMESTAMP 备用功能映射到的引脚上检测到时间戳事件时,日历会保存到时间戳寄存 器(RTC_TSSSR、RTC_TSTR 和 RTC_TSDR)中。发生时间戳事件时,RTC_ISR 寄存 器中的时间戳标志位 (TSF) 将置 1。

通过将 RTC_CR 寄存器中的 TSIE 位置 1,可在发生时间戳事件时生成中断。

如果在时间戳标志 (TSF) 已置 1 的条件下检测到新的时间戳事件,则时间戳上溢标志 (TSOVF) 将置 1,而时间戳寄存器(RTC_TSTR 和 RTC_TSDR)将保持上一事件的结果。

注意:由于同步过程,TSF 将在时间戳事件后 2 个 ck_apre 周期置 1。

将 TSOVF 置 1 时不存在延迟。这意味着,如果两个时间戳事件接连发生,则 TSOVF 可能 为“1”而 TSF 仍为“0”。因此,建议只在检测到 TSF 为“1”后再轮询 TSOVF。

注意: 如果在 TSF 位清零后紧接着发生时间戳事件,则 TSF 和 TSOVF 位都将置 1。为防止在时间戳事件发生的同时屏蔽该事件,除非已将 TSF 位读取为“1”,否则应用程序不得将“0”写入 TSF 位。

此外,入侵事件可能导致时间戳被记录。有关 TAMPTS 控制位的说明,请参见第 23.6.17 节: RTC 入侵和复用功能配置寄存器 (RTC_TAFCR)。如果时间戳事件与配置为过滤模式的入侵 事件(TAMPFLT 设置为非零值)使用同一引脚,则必须通过将 RTC_TAFCR 寄存器中的 TAMPTS 置“1”来选择入侵检测事件的时间戳模式。

时间戳复用功能

时间戳复用功能 (RTC_TS) 可映射到 RTC_AF1 或 RTC_AF2,具体取决于 RTC_TAFCR 寄存器中 TSINSEL 位的值(请参见第 23.6.17 节:RTC 入侵和复用功能配置寄存器 (RTC_TAFCR))。如果 RTC_AF1 用作过滤模式的 TAMPER(TAMPFLT 设置为非零值),则不允许将时间戳事件映射到 RTC_AF2 上。

void RTC_TimeStampCmd(uint32_t RTC_TimeStampEdge,FunctionalState NewState)功能:使能或禁止RTC的时间戳。

void RTC_GetTimeStamp(uint32_t RTC_Format,RTC_TimeTypeDef*RTC_StampTimeStruct,RTC_DateTypeDef**RTC_StampDateStruct)功能:永遇得到时间戳的数值。

unit32_t RTC_GetTimeStampSubSecond(void)功能:用于得到时间戳的亚秒时间。


入侵检测

有两个入侵检测输入可用。这两个输入既可配置为边沿检测,也可配置为带过滤的电平检测。

RTC 备份寄存器

备份寄存器 (RTC_BKPxR) 包括20 个 32 位寄存器,用于存储 80 字节的用户应用数据。这 些寄存器在备份域中实现,可在 VDD 电源关闭时通过 VBAT 保持上电状态。备份寄存器不会 在系统复位或电源复位时复位,也不会在器件从待机模式唤醒时复位。

推荐阅读

史海拾趣

广东长利光电(Changli Optoelectronic)公司的发展小趣事

随着LED技术的不断进步,广东长利光电也在不断创新和升级产品。公司投入大量资源进行研发,推出了一系列高性能、高稳定性的LED产品。这些产品在照明、显示等领域得到了广泛应用,为公司带来了丰厚的回报。同时,公司还积极与客户合作,根据市场需求定制个性化产品,进一步提升了市场竞争力。

Fluke公司的发展小趣事

在广东长利光电的发展历程中,公司始终注重企业文化建设和社会责任履行。公司倡导“以人为本、诚信务实、创新进取”的价值观,为员工提供了良好的工作环境和培训机会。同时,公司还积极参与社会公益事业,为社区的发展和环境保护做出了贡献。这些举措不仅提升了公司的品牌形象,还增强了员工的归属感和凝聚力。

以上五个故事,展现了广东长利光电在电子行业的发展历程和取得的成就。从初创时期的坚持与创新,到质量管理的突破,再到市场拓展与全球化布局,以及技术升级与产品创新,最后到企业文化建设与社会责任履行,每一个阶段都充满了挑战与机遇。广东长利光电正是凭借着对LED技术的深刻理解和市场需求的敏锐洞察,不断创新和发展,成为了电子行业中的佼佼者。

Bedford Opto公司的发展小趣事

Bedford Opto公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,致力于减少生产过程中的污染和能耗。同时,公司还积极参与公益事业,为社会做出积极贡献。

Ampex Data Systems Group公司的发展小趣事

近年来,电子行业经历了深刻的变革,新兴技术的不断涌现给Bedford Opto公司带来了前所未有的挑战。然而,公司凭借敏锐的市场洞察力和灵活的战略调整,成功应对了这些变革。通过加大研发投入,积极引进新技术,公司不断推出新产品,保持了市场竞争优势。

Abracon公司的发展小趣事

Bedford Opto公司在成立初期,面临着激烈的市场竞争和技术瓶颈。然而,公司的研发团队通过不懈努力,成功开发出一款具有革命性的光电传感器。这款产品不仅提高了信号传输的效率,还降低了能耗,迅速在市场上获得了认可。Bedford Opto公司因此逐渐在电子行业中崭露头角。

科通(COMTEK)公司的发展小趣事

随着公司业务的不断拓展,科通技术开始与国际知名品牌展开合作。通过与Xilinx、Intel、SanDisk等全球领先的芯片原厂建立紧密的合作关系,科通技术获得了这些品牌的产品线授权,并为其在中国市场的拓展提供了有力的支持。这些合作不仅提升了科通技术的品牌影响力,也为其带来了更多的市场机会。

问答坊 | AI 解惑

一块需要通过多项标准的模拟电路PCB

这是一个野外使用的信号灯电源电子变换器。基本指标要求为: 1.按照军用级设计(GB2423.1-2001,GB2423.2-2001,GB/T2423.4-1993); 2.具备一级防雷8/20uS波形130kA容量(GB/T17626.5); 3.带有源功率因素矫正器(IEC-61000-3-2); 4.总体转换效率 ...…

查看全部问答>

38kHz_红外发射与接收

38kHz_红外发射与接收…

查看全部问答>

Altera白皮书-保护 FPGA 设计不受常见的入侵威胁

2009年,全球由于盗版带来的损失大约为1.5万亿美元。盗版影响了所有商业市场,从Gucci手包到计算机芯片,直至专用算法等。全球供应链越来越复杂,对企业知识产权 (IP) 的剽窃也日益增多。全球供应链的安全和保护问题是保持竞争优势的关键,需要认真 ...…

查看全部问答>

基于专用芯片PM5380的名速网络接口议计

摘 要 : 根据网络接口技术处理的需求、高速路由器的需求和结构特点,时高速网络接口的功 能需求和性能需求进行了分析;针对功能需求和性能需求,给出了硬件接口的设计方案,对实现方 案进行了详细的分析与介绍。…

查看全部问答>

散分:顺便了解下:《Intel Xscale PXA270與Windows CE 嵌入式系統設計》这本书

请问各位:    谁了解这本书《Intel Xscale PXA270與Windows CE 嵌入式系統設計》 在网上看到这本书可挺贵 但是连目录都没有介绍的·…

查看全部问答>

求大侠来给点指点。

  小弟马上要上手一个水文项目,具体就是做一个RTU设备,能够采集雨量水位等的信息,然后通过GPRS或是GSM方式发送到监控中心,监控中心也能发指令从RTU上取数据,RTU上要带键盘输入LCD的置数器,修改参数等。最好能将这个RTU扩展至很多的 ...…

查看全部问答>

错误提示

请问高手下面的警告是什么意思啊?小弟不胜感激 创建目标 \'目标 1\' 汇编 STARTUP.A51... 汇编 新建 文本文档.asm... 连接... *** WARNING L5: CODE SPACE MEMORY OVERLAP     FROM:    0000H     TO:  ...…

查看全部问答>

自己写的CPLD作为DSP外设读写数据的程序代码,请高手看看哪有问题

CPLD作为DSP外设时,DSP把数据放在IO空间,CPLD读取数据,根据相应的地址和信息控制外设工作的程序。自己编写了一段程序,但烧进CPLD后,DSP无法工作,请高手看看哪有问题 module project6(DATA,CLK,ADDLED,LED); input [7:0]DATA;   & ...…

查看全部问答>

MSP430程序库<一>综述

我的大学生活即将结束;由于本人对软件比较感兴趣,毕业之后也许就远离的我的专业(电子信息科学与技术)了;我在大学期间也参加了电子设计竞赛等,在竞赛中我主要负责单片机程序的编写,所以对msp430系列的单片机比较熟悉;在这个系列的文章里,我主 ...…

查看全部问答>

电压基准源产品

本帖最后由 天明 于 2014-7-22 09:55 编辑 这场基础教程首先会介绍电压基准源产品的基本知识、性能指标以及ADI的相关产品;然后会讨论电压基准对于数据转换器的影响,给出根据数据转换系统要求选择基准源的方法。 …

查看全部问答>