<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="https://iysheng.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://iysheng.github.io/" rel="alternate" type="text/html" /><updated>2021-06-28T06:37:00+00:00</updated><id>https://iysheng.github.io/feed.xml</id><title type="html">Iysheng’s Blog</title><subtitle>Blog for my notes</subtitle><author><name>Yang Sheng</name></author><entry><title type="html">Fight</title><link href="https://iysheng.github.io/fight/" rel="alternate" type="text/html" title="Fight" /><published>2021-06-20T00:00:00+00:00</published><updated>2021-06-20T00:00:00+00:00</updated><id>https://iysheng.github.io/fight</id><content type="html" xml:base="https://iysheng.github.io/fight/">&lt;p&gt;每天进步一点点, &lt;strong&gt;fight for my family&lt;/strong&gt;. 上午学习了点 python 相关的知识,多看书少年.还要多练习,抽空还要学习 C++.还要学习算法,感觉好多东西都不会,都要学习,生活的意义就是这样.可以每天学习,不要荒废年轻的时光,生命不息,奋斗不止.&lt;/p&gt;</content><author><name>Yang Sheng</name></author><summary type="html">每天进步一点点, fight for my family. 上午学习了点 python 相关的知识,多看书少年.还要多练习,抽空还要学习 C++.还要学习算法,感觉好多东西都不会,都要学习,生活的意义就是这样.可以每天学习,不要荒废年轻的时光,生命不息,奋斗不止.</summary></entry><entry><title type="html">Can</title><link href="https://iysheng.github.io/can/" rel="alternate" type="text/html" title="Can" /><published>2021-03-08T00:00:00+00:00</published><updated>2021-03-08T00:00:00+00:00</updated><id>https://iysheng.github.io/can</id><content type="html" xml:base="https://iysheng.github.io/can/">&lt;p&gt;刚刚过去的周六周日，真是“充实”，特别是周六晚上和周日晚上。调试 CAN 调试的真心激动。最开始的时候数据就不通。这里记录下自己的排查过程吧：&lt;/p&gt;

&lt;p&gt;1.怀疑 GPIO 复用问题导致 CANTX 的没有关联到 PA12，当时我也疑惑，有些 GPIO 可以复用多个外设的功能，当两个外设均为使能状态时，该怎么选择复用为哪个功能呢，我看网上有人说，两个外设都无效，我也没有实际去测试，看下 PA12 和 PA11，分别对应 CAN_TX 和 CAN_RX 了。&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/assets/assets4posts/PA11_PA12.png&quot; alt=&quot;PA11_PA12&quot; /&gt;
当时我看到 PA12 是不是复用为 UART0_RTS 了？然后我就尝试关闭 UART0 的时钟发现还是不行，使用示波器检测 CAN_H 和 CAN_L 的差分波形，只能捕捉到一瞬间的低电平。看来不是管脚复用的问题。&lt;/p&gt;

&lt;p&gt;2.当时我也测试了是不是 ADM3053 这个 CAN 的转换芯片电路出问题，根据手册:&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/assets/assets4posts/can_def.png&quot; alt=&quot;can_def&quot; /&gt;&lt;/p&gt;

&lt;p&gt;可以看出来 TXD 输出为低电平时，CANH 和 CANL 的查分是高电压，我直接将 PA12 管脚接地，示波器发现 CANH 和 CANL 的查分的确是高电压，此时我感觉 CAN ADM3053 外部电路应该是没有问题的。&lt;/p&gt;

&lt;p&gt;3.后来尝试看手册，看有人用回环模式测试外部电路是否存在问题的，所以看了 32 的手册，回环模式，只是输入和外部断开了，输出是可以发送到外部，如图所示：&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;&lt;img src=&quot;/assets/assets4posts/can_loop.png&quot; alt=&quot;can_loop&quot; /&gt;&lt;/p&gt;

&lt;p&gt;我怀着试试的心态切换到换回模式，通过示波器发现 TX 断有 CAN 的帧发送出来。此时的心情是意外的惊喜。看网上的描述如果回环模式正常，normal 模式应该也正常，此时我切换到正常模式，发现尴尬，没什么反应。又变成了之前情况，仅仅能捕捉到一个低电平，没有完整的 CAN 帧数据。这时候我尝试看看能不能用 CAN 的调试器在电脑上是否可以接收到数据，理论上来讲是可以的，因为环回模式发送端是正常接收到外部的 CAN_TX 的管脚的，即 PA12 是有 CAN 的数据帧的，但是尴尬了，发现 CAN 的调试器还是没有打印出数据。这时候我在想是不是 CAN_RX 有问题呢，就是没有收到正常的应答导致，接到调试器后就不往外面发送数据了呢。这时候我就用电压表在我老婆的帮助下测试看看 PA11 和 CAN_RX 有没有接通，竟然没有接通。此时我补焊了一下，重新测试接通了。测试 CAN 的调试器发现还是接收到不到数据。这时候我很郁闷。用示波器继续观察 CAN_H 和 CAN_L 的差分波形，发现高电压的时候只有 0.5V 左右，感觉不对啊。因为之前测试高电压的时候是可以达到 2.8V 附近的。想想这么贵的芯片 ADM3053 （接近 30 块钱 /pcs）不能这么容易就坏掉啊。仔细看下芯片的管脚，电表测试是通的，但是看着有些地方是有虚焊的地方，补焊一下了。惊喜来了，补焊后，商店测试，发现 CAN_H 和 CAN_L 的压差高的时候可以达到 2.8V 附近了。并且可以看到 CAN 的数据帧的，连接 CAN 的调试器，久违的数据终于看到了，对了之前我还用示波器测试了 CAN_H 和 CAN_L 的确定了 CAN bit 的频率是我设置的 10KHz。果然，接到 CAN 的调试器后数据就收到了，对了这个时候是回环模式，是可以顺利发送数据到外部的。因为 RX 我也已经重新补焊了，这时候修改代码，添加读取 CAN 数据的代码，发现可以读到 CAN 调试器发送的数据了，至此 CAN 的双向通讯已经通了，开心。&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;最后的结论是焊接问题！！！&lt;/li&gt;
  &lt;li&gt;总结就是，示波器是一个好东西
    &lt;ul&gt;
      &lt;li&gt;首先排查硬件 CAN 转换电路，手动修改 CAN_TX 看 CAN_H 和 CAN_L 的压差是否随着变化&lt;/li&gt;
      &lt;li&gt;然后测试回环模式，看输出的 CAN_TX 以及 CAN_H 和 CAN_L 的压差是否正常&lt;/li&gt;
      &lt;li&gt;在正常模式下，连接 CAN 的调试器，确认下 CAN_RX 是否正常联通&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</content><author><name>Yang Sheng</name></author><summary type="html">刚刚过去的周六周日，真是“充实”，特别是周六晚上和周日晚上。调试 CAN 调试的真心激动。最开始的时候数据就不通。这里记录下自己的排查过程吧：</summary></entry><entry><title type="html">One</title><link href="https://iysheng.github.io/one/" rel="alternate" type="text/html" title="One" /><published>2021-02-28T00:00:00+00:00</published><updated>2021-02-28T00:00:00+00:00</updated><id>https://iysheng.github.io/one</id><content type="html" xml:base="https://iysheng.github.io/one/">&lt;p&gt;今天开始上班了，假期过的好快啊，现在看看当时顶下的目标，只能苦笑一下，8 个目标实现了 1.5 个，其中的 RTC 的 patch 还在 review 中，不知道是怎么了。等待的时间真是煎熬。 CCD 目前的进度感觉还可以，待会需要继续看下代码了，看看 AD 和 DMA 的转换是怎么和 ICD 的扫描保持同步的。嗯，生活需要目标，人的一生需要做些自己喜欢的事情，跟随自己的内心，保持阳光，也要保持慎重，不要太张扬，内敛，谦逊。&lt;/p&gt;</content><author><name>Yang Sheng</name></author><summary type="html">今天开始上班了，假期过的好快啊，现在看看当时顶下的目标，只能苦笑一下，8 个目标实现了 1.5 个，其中的 RTC 的 patch 还在 review 中，不知道是怎么了。等待的时间真是煎熬。 CCD 目前的进度感觉还可以，待会需要继续看下代码了，看看 AD 和 DMA 的转换是怎么和 ICD 的扫描保持同步的。嗯，生活需要目标，人的一生需要做些自己喜欢的事情，跟随自己的内心，保持阳光，也要保持慎重，不要太张扬，内敛，谦逊。</summary></entry><entry><title type="html">Calmdown</title><link href="https://iysheng.github.io/calmdown/" rel="alternate" type="text/html" title="Calmdown" /><published>2021-02-09T00:00:00+00:00</published><updated>2021-02-09T00:00:00+00:00</updated><id>https://iysheng.github.io/calmdown</id><content type="html" xml:base="https://iysheng.github.io/calmdown/">&lt;p&gt;明天开始正式放假了，上午学习了下 ranger 这个文件管理器，输出了一些学习笔记，还添加了几个 ranger 的插件，一个是 autojump，另一个是 devicons。通过看 ranger 的 wiki 一步步配置，尝试去使用发现还是很好用的。而不是在网上漫无目的的搜索。
** 纸上得来终觉浅，欲知此事要躬行 ** 一边学习，一边测试这样印象才会更加深刻。发现 ranger 的很多插件是 python 写的，所以有了学习 python 的假期目标。看看这个假期自己可以完成多少个设定的目标了，让我们拭目以待。&lt;/p&gt;</content><author><name>Yang Sheng</name></author><summary type="html">明天开始正式放假了，上午学习了下 ranger 这个文件管理器，输出了一些学习笔记，还添加了几个 ranger 的插件，一个是 autojump，另一个是 devicons。通过看 ranger 的 wiki 一步步配置，尝试去使用发现还是很好用的。而不是在网上漫无目的的搜索。 ** 纸上得来终觉浅，欲知此事要躬行 ** 一边学习，一边测试这样印象才会更加深刻。发现 ranger 的很多插件是 python 写的，所以有了学习 python 的假期目标。看看这个假期自己可以完成多少个设定的目标了，让我们拭目以待。</summary></entry><entry><title type="html">Holiday_goal</title><link href="https://iysheng.github.io/holiday_goal/" rel="alternate" type="text/html" title="Holiday_goal" /><published>2021-02-08T00:00:00+00:00</published><updated>2021-02-08T00:00:00+00:00</updated><id>https://iysheng.github.io/holiday_goal</id><content type="html" xml:base="https://iysheng.github.io/holiday_goal/">&lt;p&gt;快要放假了，漫长的假期啊，需要给自己定下一些目标啊：&lt;/p&gt;

&lt;hr /&gt;
&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;完成 CCD 的测试验证，确认下焦距到底对不对，&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;争取每天都写一些博客，记录自己的学习笔记和心得&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;完善 iysheng.github.io 的搭建&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;看看买的书了，计算机结构，看了好像没有 3 页吧 &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;完善 gd32103 系列的 I2C 驱动开发和 pr&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;完善 gd32103 系列的 RTC 驱动开发和 pr，目前正在 review &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;完善 gd32103 系列的 watchdog 驱动开发和 pr&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;继续学习 python，输出 python 的学习笔记到 Notes&lt;/li&gt;
&lt;/ul&gt;</content><author><name>Yang Sheng</name></author><summary type="html">快要放假了，漫长的假期啊，需要给自己定下一些目标啊：</summary></entry><entry><title type="html">Learn_and_play</title><link href="https://iysheng.github.io/learn_and_play/" rel="alternate" type="text/html" title="Learn_and_play" /><published>2021-02-07T00:00:00+00:00</published><updated>2021-02-07T00:00:00+00:00</updated><id>https://iysheng.github.io/learn_and_play</id><content type="html" xml:base="https://iysheng.github.io/learn_and_play/">&lt;p&gt;这个文章记录下我对学习和玩耍的态度，顺便定下一些目标啊。&lt;/p&gt;

&lt;p&gt;上高中的时候，一位数学老师和我说过一句话 &lt;strong&gt;他山之石可以攻玉&lt;/strong&gt;，现在想来是有一定的道理的，软件开发过程中也有一句话，&lt;strong&gt;不要重复造轮子&lt;/strong&gt;，站在巨人的肩膀上，在滚滚历史长河中，我们都是匆匆的过客，正常的逻辑应该是顺应时代的潮流，做好自己，尽自己的力量推动社会向前.&lt;/p&gt;</content><author><name>Yang Sheng</name></author><summary type="html">这个文章记录下我对学习和玩耍的态度，顺便定下一些目标啊。</summary></entry></feed>