打印
[应用相关]

STM32 JTAG 接口是不是不需要上拉电阻?

[复制链接]
10699|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我是MT|  楼主 | 2015-4-23 19:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了避免出现任何不受控制的I/O电平,STM32F10xxx在JTAG输入引脚内部嵌入了上拉和下拉
电阻:
●  JNTRST:内部上拉
●  JTDI:内部上拉
●  JTMS/SWDIO:内部上拉
●  TCK/SWCLK:内部下拉

一旦JTAG的I/O被用户代码释放,GPIO控制器就再次取得了控制权。复位时这些I/O口的状态被
设置到相应的状态:
●  JNTRST:带上拉的输入
●  JTDI:带上拉的输入
●  JTMS/SWDIO:带上拉的输入
●  JTCK/SWCLK:带下拉的输入
●  JTDO:浮空输入
软件可以把这些I/O引脚用作普通的I/O。
注意: JTAG的IEEE标准推荐对TDI,TMS和nTRST上拉,但是对TCK没有特别建议。然而,在
STM32F10xxx中JTCK引脚有下拉电阻。
有了嵌入的上拉和下拉电阻,就不需要加外部电阻了


沙发
我是MT|  楼主 | 2015-4-23 19:25 | 只看该作者
而且手册上面的JTAG  插座的11 17 19脚 接了个下拉电阻。  这个有什么作用的?

使用特权

评论回复
板凳
我思故我在12345| | 2015-4-23 19:26 | 只看该作者
这些电阻是按标准的JTAG接口来设计的.

使用特权

评论回复
地板
我是MT|  楼主 | 2015-4-23 19:27 | 只看该作者
JTAG引脚PA13,PA15做外部输出电平时,拉不低电平是外接电阻的关系吗?

使用特权

评论回复
5
戈卫东| | 2015-4-23 19:27 | 只看该作者
照它的搞吧。。。。如果可以不要那就不焊元件就是。
如果哪一天发现不要不行而板子上没有元件的位置就麻烦了。

使用特权

评论回复
6
我思故我在12345| | 2015-4-23 19:28 | 只看该作者
我是MT 发表于 2015-4-23 19:27
JTAG引脚PA13,PA15做外部输出电平时,拉不低电平是外接电阻的关系吗?

不是.
外部上拉电阻很大,如果作为输出,肯定可以把它输出低的.
你的问题多半是没有关闭JTAG.

使用特权

评论回复
7
我是MT|  楼主 | 2015-4-23 19:29 | 只看该作者
我思故我在12345 发表于 2015-4-23 19:28
不是.
外部上拉电阻很大,如果作为输出,肯定可以把它输出低的.
你的问题多半是没有关闭JTAG. ...

这个语句关闭JTAG,  JTAG_Set(JTAG_SWD_DISABLE);上电源后,PA13,PA15,PC1等,PA14没问题的.

使用特权

评论回复
8
我是MT|  楼主 | 2015-4-23 19:29 | 只看该作者
我是MT 发表于 2015-4-23 19:29
这个语句关闭JTAG,  JTAG_Set(JTAG_SWD_DISABLE);上电源后,PA13,PA15,PC1等,PA14没问题的. ...

PA1,PC4,PC5没问题的,上电以后不是1.25v,而是3.3v,够启动ULN2003时,拉低以后有2.几伏吧.

使用特权

评论回复
9
我思故我在12345| | 2015-4-23 19:30 | 只看该作者
我是MT 发表于 2015-4-23 19:29
PA1,PC4,PC5没问题的,上电以后不是1.25v,而是3.3v,够启动ULN2003时,拉低以后有2.几伏吧.  ...

拉不低?

使用特权

评论回复
10
我是MT|  楼主 | 2015-4-23 19:31 | 只看该作者

所以现在用PC4,PC5和PA1,3个脚不挨在一起,PC1,PC4,PC5用在一起时PC1有同样的现象.

使用特权

评论回复
11
我是MT|  楼主 | 2015-4-23 19:31 | 只看该作者

还有输出脚外接拉低电阻话更好吗?,10k的怎样?好象mini板用在控制板上的时候容易受干扰?

使用特权

评论回复
12
我思故我在12345| | 2015-4-23 19:32 | 只看该作者
我是MT 发表于 2015-4-23 19:31
还有输出脚外接拉低电阻话更好吗?,10k的怎样?好象mini板用在控制板上的时候容易受干扰? ...

你说的不挨在一起什么意思?同样现象指什么现象?
输出拉低拉高看你需求吧。如果使用内部拉低拉高,是比较弱的,也就可能出现像你说的受干扰,使用外部拉高拉低一般10K是个不错的选择。

使用特权

评论回复
13
我是MT|  楼主 | 2015-4-23 19:32 | 只看该作者
我思故我在12345 发表于 2015-4-23 19:32
你说的不挨在一起什么意思?同样现象指什么现象?
输出拉低拉高看你需求吧。如果使用内部拉低拉高,是比 ...

你说的不挨在一起什么意思?
我说的不准确,就是原来想用P5的IO口PC1,PC4,PC5三个来输出,但是PC1拉不低,所以现在PC4PC5和PA1l来使用(P5的PC4PC5和P3的PA1),

使用特权

评论回复
14
我思故我在12345| | 2015-4-23 19:34 | 只看该作者
我是MT 发表于 2015-4-23 19:32
你说的不挨在一起什么意思?
我说的不准确,就是原来想用P5的IO口PC1,PC4,PC5三个来输出,但是PC1拉不低, ...

PC1不应该拉不低的哦。

你看看是不是把PC1当成输入口用了,因为触摸屏的中断信号,就是用的PC1。

使用特权

评论回复
15
我是MT|  楼主 | 2015-4-23 19:35 | 只看该作者
我思故我在12345 发表于 2015-4-23 19:34
PC1不应该拉不低的哦。

你看看是不是把PC1当成输入口用了,因为触摸屏的中断信号,就是用的PC1。 ...

void LED_Init(void)
{
RCC->APB2ENR|=1<<2;    //使能PORTA时钟                     
RCC->APB2ENR|=1<<5;    //使能PORTD时钟
RCC->APB2ENR|=1<<4;    //使能PORTC时钟           
             
GPIOA->CRH&=0XFFFFFFF0;  
GPIOA->CRH|=0X00000003;//PA8 推挽输出             
        GPIOA->ODR|=1<<8;      //PA8 输出高

GPIOA->CRL&=0XFFFFFF0F;  
GPIOA->CRL|=0X00000030;//PA8 推挽输出             
    GPIOA->ODR|=0<<1;      //PA8 输出高
   
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出
GPIOD->ODR|=1<<2;      //PD.2输出高  

  
GPIOC->CRL&=0XFF00FF0F;//pc1,PC4/PC5 推挽输出
GPIOC->CRL|=0X00330030;            
GPIOC->ODR|=0<<1;     //PC1,4,5 输出高       
GPIOC->ODR|=0<<4;
             GPIOC->ODR|=0<<5;

PC1,PC4,PC5上电以后PC1是3.25伏,PC4,PC5为1.47伏,接拉低10K后PC1是1.2v,PC4,PC5为0.6伏,
通过ULN2003接发光管实验时,是那样每次触摸屏开始,停计时时,发光管按时灭,松时亮.不用触摸屏,用红外
时发光管不变化.

使用特权

评论回复
16
我是MT|  楼主 | 2015-4-23 19:35 | 只看该作者
PC1改PA13,PA13外接10k下拉后1.12v发光管还是一点点亮,还有哪个口能用呢,请指点吧

使用特权

评论回复
17
我思故我在12345| | 2015-4-23 19:36 | 只看该作者
我是MT 发表于 2015-4-23 19:35
PC1改PA13,PA13外接10k下拉后1.12v发光管还是一点点亮,还有哪个口能用呢,请指点吧  ...

原来你还用了LCD哦。
你要确认一点,就是这个IO口在你修改了之后,其他函数不会再修改。比如PC1,用来做触摸屏的中断输入脚,如果你用作输出,只要你后面调用了Touch_Init,就会重新被设置为输入了。
PA13是JTAG需要用的引脚,在默认条件下,他是用作JTAG的,你必须使用Jtag_sET函数,来禁止jtag。才能使用。

使用特权

评论回复
18
我是MT|  楼主 | 2015-4-23 19:42 | 只看该作者
我思故我在12345 发表于 2015-4-23 19:36
原来你还用了LCD哦。
你要确认一点,就是这个IO口在你修改了之后,其他函数不会再修改。比如PC1,用来做 ...

这个语句关闭JTAG,  JTAG_Set(JTAG_SWD_DISABLE);是关闭了吗?
PC1没有任何改动,触摸屏是要用的,原理图上PA13上拉R710K电阻的原因吧.
,还有哪个口能用呢,请指点吧

使用特权

评论回复
19
我思故我在12345| | 2015-4-23 19:42 | 只看该作者
我是MT 发表于 2015-4-23 19:42
这个语句关闭JTAG,  JTAG_Set(JTAG_SWD_DISABLE);是关闭了吗?
PC1没有任何改动,触摸屏是要用的,原理图上 ...

你是在哪里设置 JTAG_Set(JTAG_SWD_DISABLE);的?
如果其他地方又设置 JTAG_Set(使能);了呢?
你简单测试下吧。在你设置了JTAG_Set之后,别调用其他任何函数了,就这样,看是不是可以控制。

使用特权

评论回复
20
我是MT|  楼主 | 2015-4-23 19:43 | 只看该作者
我思故我在12345 发表于 2015-4-23 19:42
你是在哪里设置 JTAG_Set(JTAG_SWD_DISABLE);的?
如果其他地方又设置 JTAG_Set(使能);了呢?
你简单测 ...

我现在用的是,外接温度DS18b,触摸屏,红外遥控同时用的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

278

帖子

1

粉丝