02:53\\\\\\\\\\\\\\\\r\\\\\\\\\\\\\\\\nHK24C02 EEPROM
01 EEPROMHK24C02
一、前言
购买的 HK24C02 芯片到货了。 这款 EEPROM 具有 264 字节的存储空间。 每页为 8 字节。 特别偏移, 具有 SOT-3 非常小的封装。 今天收到的芯片是 SOP8 封装的。 其中 WE 以及三个地址管脚实际上都是 NC 管脚。 下面制作电路板进行测试一下。
AD\Test\2024\April\TestHK24C02F030.SchDoc
二、电路设计
设计基于 F030 单片机的测试电路。 这个电路刚才用于测量 MCP4017 电子电位器。 只是把其中 MCP4017修改成 HK24C02。 它们都是通过 I2C 总线进行访问。 设计单面PCB, 其中包括有两个 飞线。
▲ 图1.2.1 测试电路原理图
▲ 图1.2.2 测试电路 PCB
一分钟之后得到了测试电路板。 在这次电路板设计中, 故意将线与线之间的间距最小修改成 6mil, 线径修改为 8mil。 可以看到 一分钟制板还是能够保证电路的质量。 不过, 对于 6mil 的间距还是有点危险。 之后需要将这个间距还是改为 8mil 为好。 一旦腐蚀过程控制不好, 有可能造成电路线与线之间的发生短路。
将前面电路板上的 F030单片机以及 XC6206拆卸下来, 重新焊接在新作的电路板上。 可以看到电路已经能够工作了。
三、软件测试
根据 HK24C02的数据手册, 编写相应的读写程序。 因为 HK24C02 不需要专门的擦除指令, 所以使用起来非常方便, 只是需要在每次写之前等待5毫秒。 这是 HK24C02 数据手册上给出的写操作的最大时间。 经过测试, 可以对 HK24C02内部 256 个字节进行写和读 操作, 一切功能正常。
/*
**==============================================================================
** HK24C02.C: -- by Dr. ZhuoQing, 2024-04-05
**
**==============================================================================
*/
//------------------------------------------------------------------------------
extern I2C_HandleTypeDef hi2c1;
//------------------------------------------------------------------------------
int HK24C02Read(unsigned char ucAddress, int nLength, unsigned char * pBuffer) {
int nReturn;
nReturn = HAL_I2C_Master_Transmit(&hi2c1, HK24C02_ADD, &ucAddress, 1, 100);
if(nReturn != HAL_OK) return nReturn;
nReturn = HAL_I2C_Master_Receive(&hi2c1, HK24C02_ADD, pBuffer, nLength, 100);
return nReturn;
}
int HK24C02Write(unsigned char ucAddress, int nLength, unsigned char * pBuffer) {
int nReturn;
unsigned char ucBuffer[2];
int i;
for(i = 0; i < nLength; i ++) {
ucBuffer[0] = ucAddress + i;
ucBuffer[1] = *(pBuffer + i);
nReturn = HAL_I2C_Master_Transmit(&hi2c1, HK24C02_ADD, ucBuffer, 2, 100);
if(nReturn != HAL_OK) return nReturn;
WaitTime(5);
}
return HAL_OK;
}
//==============================================================================
// END OF FILE : HX24C02.C
//------------------------------------------------------------------------------
/*
**==============================================================================
** HK24C02.H: -- by Dr. ZhuoQing, 2024-04-05
**
** Description:
**
**==============================================================================
*/
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//==============================================================================
//------------------------------------------------------------------------------
int HK24C02Read(unsigned char ucAddress, int nLength, unsigned char * pBuffer);
int HK24C02Write(unsigned char ucAddress, int nLength, unsigned char * pBuffer);
//==============================================================================
// END OF FILE : HK24C02.H
//------------------------------------------------------------------------------
※ 总 结 ※
本文测试了 HK24C02 芯片。 这颗芯片是EEPROM, 不需要专门的擦除指令 。 它自行可以在每次写入之前对需要擦除的页内容进行擦除。 在制作测试PCB的过程中, 遇到了线路之间短路的情况。 这是 绘制PCB的时候, 设置最小间隔为 6mil 造成的。 之后制作线路, 应该设置最小间隔为 8mil。
■ 相关文献链接:
- [ HK24C02 ](https://v4.cecdn.yun300.cn/100001_1901185243/HK24C02%20Datasheet(21.5.27)
● 相关图表链接: