想做STM32菜鸟有几个苯问题

tiandi8734   2007-12-19 12:56 楼主
1.如果俺有个199元的集成仿真器STM32板(第二版),是否可以直接用串口ISP下载程序进行"裸奔裸调"???
能否给个ISP软件的链接???
谢谢!!!

2.ISP软件可以自己编写吗???
因为可能通用的ISP很难完全达到用户的需求.

3.ISP有几线控制(不包括地线).
  除了TX,RX还有其他线吗???如RTS,DTR等.
如果只有TX,RX两线,那么ISP是搞软件握手???还是要硬件配合???

不会是要跳线吧???如果是需要几个跳线???

俺想最好不要超过2根线,否则用PC的串口实现功能切换口线可能不够.


谢谢!!!俺先只有这3个(实际是1个)问题~~~

回复评论 (31)

一直有2个心愿为了~~~1个是飞思卡尔单片机,1个就是STMCU

一直没时间和机会~~~上次差点用飞思卡尔单片机,但有个要求不能满足...

原本都准备借张教主的开发板玩玩...机会就这么错过了...

这次总算"鼓足勇气"与STM32"亲密接触"~~~肯定不会让俺失望~~~
点赞  2007-12-19 13:15

同是小白鼠的跟帖问问题

如何将程序烧RAM?
不烧在FLASH上。。 总觉得10K次很快就烧完了。

还有就是两根USB线链接电脑的时候,程序在运行。如果按了RESET,会出现 硬件无法识别的问题。 
奇怪。
点赞  2007-12-19 13:15

我回几个

1.如果俺有个199元的集成仿真器STM32板(第二版),是否可以直接用串口ISP
2.ISP软件可以自己编写吗???
3.ISP有几线控制(不包括地线).



其实按楼上的说法就是一个问题。

首先可以到ST的网站上下载最新的Bootloader程序,和公开的BootLoader协议手册。这个bootloader指的是固化在STM32的System memory内的,不是User Memory那个需要自己动手编程进去的。


下载地址:
1、所有已公开的STM32资料:
http://www.st.com/mcu/familiesdocs-110.html#Application%20Note

2、STM32固化的BootLoader协议:
http://www.st.com/stonline/products/literature/an/13801.pdf

3、STM32固化的BootLoader的上位机PC端程序:
http://www.st.com/stonline/products/support/micro/files/um0462.zip

4、STM32固化的BootLoader的上位机PC端程序使用说明:
http://www.st.com/stonline/products/literature/um/13916.pdf

5、STM32的Flash编程使用说明:
http://www.st.com/stonline/products/literature/pm/13259.pdf


对于Bootload只要RxD、TxD,通过软件方式握手。












点赞  2007-12-19 13:50

199元的仿真板,还不如自己来做一个

                                  
点赞  2007-12-19 13:53

回楼主

那个199开发板不用ISP线(貌似ARM板都不用ISP),直接用USB线接在开发板上,用MDK就能下载调试了。
至于裸奔嘛,跟这个没关系,PC也可以裸奔啊。
点赞  2007-12-19 18:23

非常感谢4楼的回复和链接

对于Bootload只要RxD、TxD,通过软件方式握手。

这么说俺自己的通讯协议必须饶开它???

它是刚复位时握手的???有时间限制???

波特率是否是自适应方式???

俺在农忙之中...没时间看这些资料~~~

期待后天能拿到开发板,早日STM32菜鸟毕业...
点赞  2007-12-19 18:52

哈哈,支农下乡,任务繁重啊

四楼的已经基本上讲的非常详细了,针对7楼的问题我补充两点:

1)  Bootloader是在System Memory,这个区域必须通过设置Boot1和Boot0引脚才能启动,正常工作状态下,这部分区域是被隔离开的,自动被绕开,Bootloader绝对不占用任何用户程序的资源。
  简单地说:当你要使用ISP烧写数据到Flash时,需要设置Boot1和Boot0启动System Memory中的Bootloader;烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作。

2)STM32中的Bootloader使用USART1做为通信端口,它使用8个数据位、1个停止位和偶校验,具有自动波特率检测功能。

在另一个帖子中还有讨论这个问题的,也许对理解有所帮助:https://bbs.eeworld.com.cn/club/bbs/list.asp?boardid=49&t=2791287
点赞  2007-12-19 21:30

感谢香主扶贫下乡,继续探讨ISP问题(案没时间看,来个空想吧)

因为这几天几个产品同时干,没时间研究STM32~~~

不过听香主的ISP解说,俺琢磨它的ISP也是要又硬件握手的.

1)  Bootloader是在System Memory,这个区域必须通过设置Boot1和Boot0引脚才能启动,正常工作状态下,这部分区域是被隔离开的,自动被绕开,Bootloader绝对不占用任何用户程序的资源。
  简单地说:当你要使用ISP烧写数据到Flash时,需要设置Boot1和Boot0启动System Memory中的Bootloader;烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作。

2)STM32中的Bootloader使用USART1做为通信端口,它使用8个数据位、1个停止位和偶校验,具有自动波特率检测功能。


"需要设置Boot1和Boot0启动System Memory中的Bootloader"
从1)中能"听到"Boot1和Boot0需要某个固定电平信号才能进入ISP模式.
在工控中应该如此,这样安全系数很提高很多~~~

"烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作"

再"听说"后感觉要回到运行状态,必须要设置Boot1和Boot0为其他的某个固定电平信号.

这么说2者的信号组合不同(密码),就会在reset后进入不同的"分枝"???

因为在产品定型后,软件的升级当然用ISP较好,应该比USB好些,因为要考虑工业现场和通讯距离问题.

但肯定不能打开机壳来转换ISP和RUN方式,所以要通过外部对Boot1和Boot0控制

以实现不开壳来ISP升级产品的软件.

如果菜农说得(理解)对了,那么STM32做产品俺是铁了心了~~~

下面是俺在LPCARM上实现的"不开壳来ISP升级"~~~3年来很完美,现场改程序很方便~~~

而且本身串口就是做数据采集的,所以俺期待香主的回答是肯定的~~~

那么,STM32的ISP软件可以控制其他232信号吗???

就像LPCARM的DTR/RTS???估计STM32不会这样做的,它会感觉NXP会笑话它的~~~

"牛人是不会抄袭的"~~~可是一定害苦了贫民百姓~~~

所以俺肯定要自己编写STM32的ISP软件~~~这样可以完成远程数据通讯附带ISP软件升级~~~


再次感谢香帮主的教诲!!!!!!!!!!!!!!!!!!!!!!!
相关链接:http://blog.ednchina.com/hotpower/12800/category.aspx
点赞  2007-12-19 22:28

看样子扶贫下乡是不够的,还需要扶贫下田

到了田里一看,发现农民兄弟比我们聪明,什么样的庄稼都被他们倒塌了,怪不得现在粮食涨价了。我们要听老人家的话,到农村去接受贫下中农的再教育。


“这么说2者的信号组合不同(密码),就会在reset后进入不同的"分枝"???”,老农的理解完全正确,请看下面的摘录,这是从STM32的技术参考手册中截取下来的:


这里可以看出不同的Boot0和Boot1的设置,决定了Reset后进入哪部分代码空间。至于实现不开壳来ISP升级产品,估计要发挥农民伯伯的聪明才智了。

关于“STM32的ISP软件可以控制其他232信号吗???”这个问题,我的理解是——不可以。不知您“其他232信号”是什么意思,是否指CTS/RTS等?如果是这样,则答案是:ISP软件只控制TX和RX。

顺便提一下,俺正在拜读农民朋友的大作,看样子种地也不容易啊。
点赞  2007-12-19 23:06

扶贫的不错,

但是不是所用的菜农悟性都那么高,有的菜农的菜就是中的很好,有的菜农的菜就是满地长虫。
通过上面所说我知道ISP的软件只控制RX和TX的两根信号,是不是所有的ISP信号线都是这样的,还是仅仅你们那个199元的信号是这样的,其实这个主要是有ARM支持的,好像和STC的单片机类似。

指示不知道菜农的199元的仿真板哪儿搞到的,我也想来扫盲。
点赞  2007-12-19 23:14

STM32的Bootloader是嵌入在每个芯片中的,与开发板无关

                                 这个Bootloader是芯片生产中植入的,但最早一批A版本的芯片中没有。我要问一下我们的工程师如何识别,应该是芯片标记的最下面以行为“715”的芯片是最早一批的芯片,等我再确认一下。
点赞  2007-12-19 23:24

请问 香水城

进入 ISP状态 

的条件 是什么 ??
点赞  2007-12-19 23:27

13楼:请看我在8楼和10楼的回答

                                 条件是:Boot0=1  Boot1=0
点赞  2007-12-19 23:31

貌似两个跳线 boot1、2

                                  
点赞  2007-12-19 23:35

明白拉

                                 Boot0  Boot1  都是引脚的名称
点赞  2007-12-19 23:38

Boot1和Boot0在芯片上是两个管脚

                                 开发板上做了两个跳线,方便开发时设定这两个管脚的电平,以选择STM32的启动模式。
点赞  2007-12-19 23:38

哈哈~~~首次"空手道"倒塌STM32初战告捷---自贺一番

根据香帮主给的"联络图",首次倒塌成功...

1)  Bootloader是在System Memory,这个区域必须通过设置Boot1和Boot0引脚才能启动,正常工作状态下,这部分区域是被隔离开的,自动被绕开,Bootloader绝对不占用任何用户程序的资源。
  简单地说:当你要使用ISP烧写数据到Flash时,需要设置Boot1和Boot0启动System Memory中的Bootloader;烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作。


从引导管脚选择分配来看,实际产品只有运行状态和ISP状态.

  Boot1 Boot0
     X     0   运行模式
     0     1    ISP模式

这里将Boot1都接为低电平,这样本来3个状态需要2个信号控制的
就变为了一个信号Boot0的控制了,即
  Boot1 Boot0
     0     0   运行模式
     0     1    ISP模式

那么我什么时候可以自由切换呢???

难道Boot0的跳变会在运行期间改变工作模式吗???

俺估计不会的~~~Boot,Boot肯定是复位瞬间系统辨认Boot引脚的.

所以,肯定需要将reset信号也控制吧~~~

这就变为了

   Reset   Boot0
 1->0->1     0   运行模式
 1->0->1     1    ISP模式

那么不就让菜农错点鸳鸯把LPCARM非常成功和完美的经验扯入到了STM32中了吗???

图俺就不画出来了吧~~~
点赞  2007-12-19 23:41

老顽童,让我说你什么好呢?这么快~~~

难道Boot0的跳变会在运行期间改变工作模式吗???

俺估计不会的~~~Boot,Boot肯定是复位瞬间系统辨认Boot引脚的


我在10楼贴出来的那一段中有一句话说的正是你的意思“The values on the BOOT pins are latched on the 4th rising edge of SYSCLK after a Reset.”,即芯片内部是在复位后时钟的第4个上升沿检测这两个引脚的状态,之后这两个引脚的状态是什么就无所谓了。

另外,当芯片从“Standby”模式被唤醒后也会同样检测这两个引脚的状态。
点赞  2007-12-20 00:01

可以簡單的理解嗎?

1. 先設Boot1 Boot0讓IC可以使用內置的程式跟電腦Flash loader程式聯接.下載代碼.
2. 下載完成,再設回Boot0 Boot1腳.

不知我理解錯沒有?
点赞  2007-12-20 00:29
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复