资讯详情

第五周工作纪要

📅 2026/11/1 1:45:15 | 华诺云谱 👁 阅读
第五周工作纪要
工作内容通过测试EKT-YMCC8405AAAVUCL-HT16C23I2C、YMMO0216AAAAUGN-ST7567ISP8080、YMC128128-96AAAFDGLUART、YMC9284-01AAANUGN4SPI各类产品排查问题深究不同传输方式EKT-YMCC8405AAAVUCL展盒制作和工艺制作流程。本周09/18加班修改EKT-YMCC8405AAAVUCL-HT16C23I2C展盒文件感悟一方面锻炼硬件技术让排查硬件链接、断短、供电、电流功率和设计电路板的阻值排线引脚等。另一方面深耕软件技术了解探究最底层的连接方式时序图对于IC资料来规定初始化进行软件编排✍️习惯性的理解不同产品的特殊性对于IC选型的考究。心得在派发任务发现问题时先考虑是知识点还是技术性问题还是人员安排尽可能不影响时间调度提前做时间规划给领导及时汇报以免耽误进程两头催。每一周做一份工作汇报为下周工作做规划排好进度同时回顾这周所做把知识点问题跟进解决现有漏洞尽可能让技术性问题形成经验之谈。YMC12864-447AAAFUGL 4spi/****************************************************** write_com(uchar) write_dat(uchar) *******************************************************/ //serial 4-SPIÐ void write_com(unsigned char byte) { unsigned char i; cd0; for(i0;ilt;8;i) { sck0; _nop_(); _nop_(); sda(bit)(byteamp;0x80); bytebytelt;lt;1; sck1; _nop_(); _nop_(); } } //serial 4-SPIÐ void write_dat(unsigned char byte) { unsigned char i; cd1; for(i0;i8;i) { sck0; nop(); nop(); sda(bit)(byte0x80); sck1; bytebyte1; nop(); nop(); } }EKT-YMCC8405AAAVUCL i2c#include Reg52.h #include intrins.h bit ack; void Start_I2c(); void start_i2c() { sda1; nop(); sck1; nop(); nop(); nop(); nop(); nop(); sda0; nop(); nop(); nop(); nop(); nop(); sck0; nop(); nop(); } void Stop_I2c(); void stop_i2c() { sda0; nop(); sck1; nop(); nop(); nop(); nop(); nop(); sda1; nop(); nop(); nop(); nop(); } void SendByte(unsigned char c); void sendbyte(unsigned char c) { unsigned char BitCnt; for(BitCnt0;BitCnt8;BitCnt) { if((cBitCnt)0x80)sda1; else sda0; nop(); sck1; nop(); nop(); nop(); nop(); nop(); sck0; } _nop_(); _nop_(); sda1; _nop_(); _nop_(); sck1; _nop_(); _nop_(); _nop_(); if(sda1)ack0; else ack1; sck0; _nop_(); _nop_(); } unsigned char RcvByte(); unsigned char RcvByte() { unsigned char retc; unsigned char BitCnt; retc0; sda1; for(BitCnt0;BitCnt8;BitCnt) { nop(); sck0; nop(); nop(); nop(); nop(); nop(); sck1; nop(); nop(); retcretc1; if(sda1)retcretc1; nop(); nop(); } sck0; nop(); nop(); return(retc); } void Ack_I2c(bit a); void Ack_I2c(bit a) { if(a0)sda0; else sda1; nop(); nop(); nop(); sck1; nop(); nop(); nop(); nop(); nop(); sck0; nop(); nop(); } bit ISendByte(unsigned char sla,ucahr c); bit ISendByte(unsigned char sla,unsigned char c) { Start_I2c(); SendByte(sla); if(ack0)return(0); SendByte(c); if(ack0)return(0); Stop_I2c(); return(1); } bit ISendStr(unsigned char sla,unsigned char suba,ucahr *s,unsigned char no); bit ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no) { unsigned char i; Start_I2c(); SendByte(sla); if(ack0)return(0); SendByte(suba); if(ack0)return(0); for(i0;ino;i) { SendByte(*s); if(ack0)return(0); s; } Stop_I2c(); return(1); } bit IRcvByte(unsigned char sla,ucahr *c); bit IRcvByte(unsigned char sla,unsigned char *c) { Start_I2c(); SendByte(sla1); if(ack0)return(0); *cRcvByte(); Ack_I2c(1); Stop_I2c(); return(1); } bit ISendStr(unsigned char sla,unsigned char suba,ucahr *s,unsigned char no); bit IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no) { unsigned char i; Start_I2c(); SendByte(sla); if(ack0)return(0); SendByte(suba); if(ack0)return(0); Start_I2c(); SendByte(sla1); if(ack0)return(0); for(i0;ino-1;i) { *sRcvByte(); Ack_I2c(0); s; } *sRcvByte(); Ack_I2c(1); Stop_I2c(); return(1); }YMC128128-96AAAFDGL软件uart串口中断void int0_int(void) interrupt 0 { if(pause_en) { pause_en0; pause(pause?0:1); TH2RCAP2H; TL2RCAP2L; timer2_int_times0; TR21; } } void t0_int(void) interrupt 1 { delay0; TR00; } void t2_int(void) interrupt 5 { if(EXF2)EXF20; if(TF2) { TF20; timer2_int_times; if(timer2_int_times6)//300ms { timer2_int_times0; TR20; pause_en1; } } } void uart_int(void) interrupt 4 { if(RI)uart_rx(); if(TI)uart_tx(); } void uart_rx(void) { RI0; mSBUF; rx[rx_n]m; if(rx_nrx_max){rok1;rx_n0;} } void uart_tx(void) { TI0; tok1; } void mcu_initial(void) { rok0; rx_n0; rx_max1; tok1; tx_n0; tx_max0; P00xff; P10xff; P20xff; P30xff; //T0-timer ,T1-Baud Generator TMOD0x21;//T1 Timer-8bit auto reload ,T0 Timer-16 bit SCON0x70;//mode-1 [8bit ,strict stop-bit ,enable Rx-work] PCON0x3F;// //TH1253;//BAUD11.0592M/12/32/39600 (At 12T) TH1243;//BAUD12M/12/32/132403 (At 12T) TR11; T2CON0x00; T2MOD0x00; RCAP2L(65536-50000)%256; RCAP2H(65536-50000)/256; EA1; ES1; ET01; ET21; IT01; EX01; AUXR0x01; }YMMO0216AAAAUGN-ST7567 8080sfr ISP_CONTR 0xe7; void isp_delay( unsigned int i ) using 1 { while( i-- 0); } void isp_init(void) { delay_10us(); delay_100us(); delay_us(0); delay_ms(0); delay_ss(0); IP 0x10; IE 0x90; TMOD 0x20; TL1 0xfd; TH1 0xfd; SCON 0xd8; PCON 0x00; TR1 1; EA1; } void isp_seria() interrupt 4 using 1{ EA0;RI0;TR10; isp_delay(50000); isp_delay(50000); ISP_CONTR 0x60; }ISP传输/****************************************************** write_com(uchar) write_com2(uchar,uchar) write_dat(uchar) *******************************************************/ void write_com(unsigned char byte) { // unsigned char i; rs0; wr1; // db0xff; // do // { // // rd0; // idb; // rd1; // }while(i0x80); dbbyte; wr0; wr1; } //void write_com2(unsigned char byte1,unsigned char byte2) //{ //// unsigned char i; // rs0; // wr1; //// db0xff; //// do //// { //// //// rd0; //// idb; //// rd1; //// }while(i0x80); // // dbbyte1; // wr0; // wr1; // // dbbyte2; // wr0; // wr1; //} void write_dat(unsigned char byte) { // unsigned char i; rs0; wr1; // db0xff; // do // { // rd0; // idb; // rd1; // }while(i0x80); rs1; dbbyte; wr0; wr1; }对比表名称类型线数同步/异步双工拓扑速度典型用途SPI通信接口4同步全双工一主多从片选高Flash、传感器、LCD4线SPISPI接线方式4同步通常全双工LCD单向一主多从高LCD、FlashI2C通信接口2同步半双工多主多从地址寻址中低传感器、EEPROMUART通信接口2异步全双工点对点中低调试、模块通信UART串口中断处理方式-----UART中断收发8080并行接口8/16控制同步通常单向写点对点高LCD并口屏ISP下载方式2~4取决于接口---单片机烧录ISPISP In-System Programming在系统编程。意思是不用把芯片拆下来直接在主板上通过某些接口给单片机下载程序。常见 ISP 接口SPI ISPUART ISPJTAGSWDISP 是下载/烧录方式不是通信协议。8080It usually refers to the8080 parallel interface, also known as the MCU interface, commonly used in LCD screens.通常指8080 并口也叫 MCU 接口常见于 LCD 屏幕。它模仿 Intel 8080 总线时序线比较多It mimics the Intel 8080 bus timing and uses quite a few lines:D0~D7orD0~D15:data linesD0~D7或D0~D15数据线CS:chip selectCS片选WR:writeWR写RD:readRD读DC:command/dataDC命令/数据RST:resetRST复位Features:Parallel transmission, fast speed 并行传输速度快Many lines, takes up a lot of I/O 线多占 IO 多Often used for MCU to directly drive TFT LCD 常用于单片机直接驱动 TFT LCDCompared with SPI screens, it refreshes faster but requires more wiring 和 SPI 屏相比刷屏更快但接线更多There is also the6800 parallel interface, which follows Motorola 6800 timing and is similar to 8080 but with different control lines.另外还有6800 并口是 Motorola 6800 时序和 8080 类似但控制线不同。UART异步串行、全双工、点对点通信。两根线TX发送RX接收注意两个设备要交叉连接textA.TX - B.RX A.RX - B.TX特点没有时钟线靠双方约定波特率点对点不适合一条总线挂很多设备常用于调试串口、GPS、蓝牙、WiFi、4G 模块常见波特率9600、115200 等UART串口中断这不是一种接口而是 UART 的软件处理方式。UART 收发数据时有两种方式轮询主程序不停查标志位看有没有收到数据。中断收到数据或发送完成时硬件触发中断CPU 跳去执行中断函数。比如 8051 里cvoid uart_int(void) interrupt 4 { if(RI) uart_rx(); if(TI) uart_tx(); }RI接收中断标志TI发送中断标志好处不阻塞主程序实时性更好。所以“UART串口中断” 用中断方式处理 UART 收发不是和 SPI、I2C 并列的硬件接口。I2C同步串行、半双工、两线制总线。两根线SCL时钟SDA数据特点一根总线上可以挂很多设备每个设备有唯一地址速度较慢100kHz、400kHz、1MHz 等常用于传感器、EEPROM、小 OLED、RTC优点线少多设备方便。缺点速度不如 SPI总线容易被拉死。SPI 本身最常见就是 4 线textSCLK, MOSI, MISO, CS但用在LCD/OLED 屏上时经常说的“4线SPI”是textSCLK, MOSI, CS, DC其中DC数据/命令选择没有MISO因为屏幕通常只收不发“4线SPI”不是另一种协议而是SPI 的一种接线/使用方式。“4线ISP”那它通常指用 4 根线给单片机下载程序比如textSCK, MOSI, MISO, RESET这是下载方式不是通信协议。SPI同步串行通信接口全双工主从结构。常见 4 根线SCLK时钟MOSI主机发从机收MISO从机发主机收CS/SS片选特点速度快常见几 MHz 到几十 MHz一主多从每个从机一个片选没有地址概念靠片选选设备常用于 Flash、SD 卡、传感器、LCD 屏
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑