数码之家

 找回密码
 立即注册
搜索
查看: 10942|回复: 26

MY808_DIY:Hanshow_汉硕 墨水屏腾记录(2)

[复制链接]
发表于 2021-2-7 20:56:09 | 显示全部楼层 |阅读模式
https://www.mydigit.cn/forum.php?mod=viewthread&tid=225062

https://www.mydigit.cn/forum.php?mod=viewthread&tid=231292

https://www.mydigit.cn/forum.php?mod=viewthread&tid=228145

书接上文,经过一番折腾,终于搞明白了一些问题,开始装配。

这是最终成品正面:




这是背面:







操作过程:切掉内部一个边的支撑。








放入8025T比较大小,合适。




焊线。







焊到价签上。



整理走线,避开电池弹片。


用自制夹具刷入程序。





电流实测。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 3家元 +70 收起 理由
家睦 + 30
慕名而来 + 20 相当漂亮
2545889167 + 20 原創內容

查看全部打赏

发表于 2021-2-7 21:08:12 | 显示全部楼层
现在好多大商场都用这种商品价格签。
很省电,价格更新快,好管理!
回复 支持 反对

使用道具 举报

发表于 2021-2-7 21:33:58 | 显示全部楼层
也看过这种,总觉得太小了懒得折腾了,大的又没有合适的外壳
回复 支持 反对

使用道具 举报

发表于 2021-2-8 18:03:37 | 显示全部楼层
现在哪里有便宜的电子标签收呢?想搞点玩一下
回复 支持 反对

使用道具 举报

发表于 2021-2-8 18:11:42 | 显示全部楼层
朱工不错 好评  终于能无损利用上了
回复 支持 反对

使用道具 举报

发表于 2021-2-9 09:24:33 | 显示全部楼层
msp430 用arduino编程?
回复 支持 反对

使用道具 举报

发表于 2021-2-9 13:00:22 来自手机浏览器 | 显示全部楼层
kindzhon 发表于 2021-2-9 09:24
msp430 用arduino编程?

这个带的msp430g2553并不能arduino
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-9 13:37:45 | 显示全部楼层
本帖最后由 lyy-cy 于 2021-2-9 13:40 编辑




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2021-2-9 15:19:19 | 显示全部楼层
接那几根线是用来干嘛的?直接传数据到单片机?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-9 18:19:05 | 显示全部楼层
spirndai 发表于 2021-2-9 15:19
接那几根线是用来干嘛的?直接传数据到单片机?

数据加供电。
回复 支持 反对

使用道具 举报

发表于 2021-2-9 18:50:02 来自手机浏览器 | 显示全部楼层
lyy-cy 发表于 2021-2-9 13:37

energia g2553可以用了?我才知道,大意了
回复 支持 反对

使用道具 举报

发表于 2021-2-10 23:33:55 | 显示全部楼层

我本来打算弄个i2c的传进去,但发现那几个pin不支持硬件i2c,自己写有点麻烦一直没动手,老兄用什么协议传的?能共享下?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-11 01:09:24 | 显示全部楼层
本帖最后由 lyy-cy 于 2021-2-11 01:11 编辑
spirndai 发表于 2021-2-10 23:33
我本来打算弄个i2c的传进去,但发现那几个pin不支持硬件i2c,自己写有点麻烦一直没动手,老兄用什么协议 ...



库里有,这里的叫  Wire 就是IIC

和arduino一样的用,可以理解为  Ti 定制版的 arduino  里面有个软件的IIC

d:\energia-1.8.10E23\hardware\energia\msp430\libraries\Wire\utility\twi_sw.c

  1. /*
  2.   ************************************************************************
  3.   *        twi_sw.c
  4.   *
  5.   *        twi software files for MSP430
  6.   *                Copyright (c) 2015 StefanSch. All right reserved.
  7.   *
  8.   * V1.1 : updates to correct SCL and SDA assignments
  9.   *        support of connected device scan with return values defined in twi.h
  10.   *
  11.   ***********************************************************************

  12.   This library is free software; you can redistribute it and/or
  13.   modify it under the terms of the GNU Lesser General Public
  14.   License as published by the Free Software Foundation; either
  15.   version 2.1 of the License, or (at your option) any later version.

  16.   This library is distributed in the hope that it will be useful,
  17.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  19.   Lesser General Public License for more details.

  20.   You should have received a copy of the GNU Lesser General Public
  21.   License along with this library; if not, write to the Free Software
  22.   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  23. */

  24. #include "twi_sw.h"
  25. #include "twi.h"

  26. #if (DEFAULT_I2C == -1) || defined(LEGACY_I2C) // SW I2C implementation on default or legacy port

  27. #if (DEFAULT_I2C == -1) && !defined(LEGACY_I2C) /* SW I2C implementation on default and not legacy port */
  28.   #define TWISDAx TWISDA
  29.   #define TWISCLx TWISCL
  30.   #define TWISDAx_SET_MODE TWISDA_SET_MODE
  31.   #define TWISCLx_SET_MODE TWISCL_SET_MODE
  32. #endif
  33. #if defined(LEGACY_I2C) && (LEGACY_I2C == -1) /* SW I2C implementation on default and legacy port */
  34.   #define TWISDAx TWISDA1
  35.   #define TWISCLx TWISCL1
  36.   #define TWISDAx_SET_MODE TWISDA1_SET_MODE
  37.   #define TWISCLx_SET_MODE TWISCL1_SET_MODE
  38. #endif

  39. #define I2C_DELAY1() __delay_cycles(F_CPU / 1000000UL * 10)
  40. #define I2C_DELAY2() __delay_cycles(F_CPU / 1000000UL * 20)

  41. #define I2C_READ   BIT0
  42. #define I2C_WRITE  0

  43. uint8_t i2c_sw_start(uint8_t address, uint8_t rw);
  44. uint8_t i2c_sw_txByte(uint8_t data);
  45. void i2c_sw_ack(void);
  46. uint8_t i2c_sw_rxByte(uint8_t lastChar);
  47. void i2c_sw_stop(void);


  48. void i2c_sw_init(void)
  49. {
  50.   if (digitalRead(TWISDAx) == 0){ // toggle SCL if SDA is low at startup
  51.       pinMode_int(TWISDAx, TWISDAx_SET_MODE);
  52.       digitalWrite(TWISCLx, LOW);
  53.       pinMode(TWISCLx, OUTPUT);
  54.       pinMode_int(TWISCLx, TWISCLx_SET_MODE);
  55.   }
  56.   pinMode_int(TWISDAx, TWISDAx_SET_MODE);
  57.   pinMode_int(TWISCLx, TWISCLx_SET_MODE);
  58. }

  59. uint8_t i2c_sw_read(uint8_t slaveAddress,
  60.                           uint16_t numBytes, uint8_t* data, uint8_t sendStop)
  61. {
  62.   uint16_t i;
  63.   uint8_t ack_error;
  64.   
  65.   ack_error = i2c_sw_start(slaveAddress, I2C_READ);   // Send Start condition
  66.                                             // [ADDR] + R/W bit = 1
  67.   if (ack_error)
  68.   {
  69.           i2c_sw_stop();
  70.           return (ack_error);
  71.   }
  72.   for (i = 0; i < numBytes-1; i++) {
  73.     *data++ = i2c_sw_rxByte(0);             // Read data
  74.   }
  75.   *data++ = i2c_sw_rxByte(1);               // Read last data
  76.   if (sendStop) i2c_sw_stop();              // Send Stop condition
  77.   return (0);
  78. }

  79. uint8_t i2c_sw_write(uint8_t slaveAddress,
  80.                            uint16_t numBytes, uint8_t* data, uint8_t sendStop)
  81. {        
  82.    uint16_t i;
  83.    uint8_t status;
  84.    
  85.    status = i2c_sw_start(slaveAddress, I2C_WRITE);       // Send Start condition
  86.                                             // [ADDR] + R/W bit = 0
  87.    if (status) {
  88.            i2c_sw_stop();                       // Send Stop condition
  89.               return (TWI_ERROR_ADDR_NACK);
  90.    }
  91.    for (i = 0; i < numBytes; i++) {
  92.            status |= i2c_sw_txByte(*data++);    // Send data and ack
  93.    }
  94.    if (sendStop) i2c_sw_stop();             // Send Stop condition
  95.    if (status) return (TWI_ERROR_DATA_NACK);
  96.    return (status);
  97. }

  98. uint8_t i2c_sw_start(uint8_t address, uint8_t rw)               // Set up start condition for I2C
  99. {
  100.   digitalWrite(TWISDAx, LOW);
  101.   pinMode(TWISDAx, OUTPUT);
  102.   I2C_DELAY2();                             // delay
  103.   digitalWrite(TWISCLx, LOW);
  104.   pinMode(TWISCLx, OUTPUT);
  105.   I2C_DELAY2();                             // delay
  106.   return(i2c_sw_txByte((address << 1) | rw)); // [ADDR] + R/W bit
  107. }

  108. uint8_t i2c_sw_txByte(uint8_t data)
  109. {
  110.   uint8_t bits = 0x08;
  111.   uint8_t ack_error;
  112.   
  113.   while (bits != 0x00)                      // Loop until all bits are shifted
  114.   {
  115.     if (data & BIT7){                        // Test data bit
  116.       pinMode(TWISDAx, TWISDAx_SET_MODE);
  117.     }else{
  118.       digitalWrite(TWISDAx, LOW);
  119.       pinMode(TWISDAx, OUTPUT);
  120.     }
  121.     I2C_DELAY2();
  122.     pinMode(TWISCLx, TWISCLx_SET_MODE);
  123.     data <<= 1;                             // Shift bits 1 place to the left
  124.     I2C_DELAY1();                           // Quick delay
  125.     digitalWrite(TWISCLx, LOW);
  126.     pinMode(TWISCLx, OUTPUT);
  127.     bits--;                                 // Loop until 8 bits are sent
  128.   }
  129.   pinMode(TWISDAx, TWISDAx_SET_MODE);
  130.   // Get acknowledge
  131.   I2C_DELAY2();
  132.   pinMode(TWISCLx, TWISCLx_SET_MODE);
  133.   I2C_DELAY2();
  134.   ack_error = digitalRead(TWISDAx);
  135.   digitalWrite(TWISCLx, LOW);
  136.   pinMode(TWISCLx, OUTPUT);
  137.   return (ack_error);
  138. }

  139. void i2c_sw_ack(void)                       // Check for I2C acknowledge
  140. {
  141.    I2C_DELAY2();
  142.    pinMode(TWISCLx, TWISCLx_SET_MODE);
  143.    I2C_DELAY2();
  144.    digitalWrite(TWISCLx, LOW);
  145.    pinMode(TWISCLx, OUTPUT);
  146. }
  147.             
  148. uint8_t i2c_sw_rxByte(uint8_t lastChar)    // Read 8 bits of I2C data
  149. {
  150.    uint8_t bits = 0x08;
  151.    uint8_t data = 0;

  152.    pinMode(TWISDAx, TWISDAx_SET_MODE);
  153.    I2C_DELAY1();
  154.    while (bits > 0)                         // Loop until all bits are read
  155.    {
  156.       pinMode(TWISCLx, TWISCLx_SET_MODE);
  157.       I2C_DELAY1();
  158.       data <<= 1;                           // Shift bits 1 place to the left
  159.       if (digitalRead(TWISDAx))              // Check digital input
  160.         data |= 1;                          // If input is 'H' store a '1'
  161.       digitalWrite(TWISCLx, LOW);
  162.       pinMode(TWISCLx, OUTPUT);
  163.       I2C_DELAY1();
  164.       bits--;                               // Decrement I2C bit counter
  165.    }
  166.    if (lastChar == 0){
  167.      digitalWrite(TWISDAx, LOW);
  168.      pinMode(TWISDAx, OUTPUT);               // Set acknowledge
  169.    }
  170.    I2C_DELAY1();
  171.    pinMode(TWISCLx, TWISCLx_SET_MODE);
  172.    I2C_DELAY1();
  173.    digitalWrite(TWISCLx, LOW);
  174.    pinMode(TWISCLx, OUTPUT);
  175.    I2C_DELAY1();
  176.    return (data);                           // Return 8-bit data byte
  177. }   

  178. void i2c_sw_stop(void)                      // Send I2C stop command
  179. {
  180.   digitalWrite(TWISDAx, LOW);
  181.   pinMode(TWISDAx, OUTPUT);
  182.   I2C_DELAY2();
  183.   pinMode(TWISCLx, TWISCLx_SET_MODE);
  184.   I2C_DELAY2();
  185.   pinMode(TWISDAx, TWISDAx_SET_MODE);
  186.   I2C_DELAY2();
  187. }

  188. #endif // #if (DEFAULT_I2C == -1) || defined(LEGACY_I2C) // SW I2C implementation on default or legacy port

复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2021-6-9 09:16:35 | 显示全部楼层
可以直接用,不错啊
回复 支持 反对

使用道具 举报

发表于 2021-6-29 01:50:04 来自手机浏览器 | 显示全部楼层
想问下这款墨水屏的驱动芯片是哪个型号?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-29 18:39:30 | 显示全部楼层
leftfox 发表于 2021-6-29 01:50
想问下这款墨水屏的驱动芯片是哪个型号?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2021-6-30 00:54:59 来自手机浏览器 | 显示全部楼层
lyy-cy 发表于 2021-6-29 18:39

折腾了一晚上…没有搞明白LUT里对应的W aveform setting和0X24 write RAM到底啥关系 资料越看越懵
回复 支持 反对

使用道具 举报

发表于 2021-7-9 14:44:07 | 显示全部楼层
楼主,源代码可以分享下吗?  
是不是还要买一个 msp-exp430G2  才可以下程序?
成本感觉有点高啊。。。
回复 支持 反对

使用道具 举报

发表于 2021-8-7 13:18:22 | 显示全部楼层
woozwooz 发表于 2021-7-9 14:44
楼主,源代码可以分享下吗?  
是不是还要买一个 msp-exp430G2  才可以下程序?
成本感觉有点高啊。。。 ...

咸鱼二手的开发板30~60都有:lol:
回复 支持 反对

使用道具 举报

发表于 2021-9-20 11:41:52 | 显示全部楼层

搞不了= =launchpad上的2553是20脚,价签是28脚,编译报错p3.4 p3.5 p3.6未定义
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-25 13:54 , Processed in 0.109200 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表