TypeC是如此通过CC pin进入Alternate mode的?沟通过程是什么?是否有官方的参考文档可供参考?
时间: 2024-06-04 19:07:27 浏览: 16
Type-C通过CC引脚进行交互以进入Alternate Mode。当设备插入Type-C线缆时,CC引脚会通过一个电阻网络连接到GND或VBUS,用于标识连接器的角色和支持的协议。通过交换消息和检测电阻值,设备可以确定连接器的角色并选择合适的协议。
在进入Alternate Mode之前,设备需要进行协商过程,以确定要使用的协议和配置。这通常涉及设备之间的交换消息和协议规范的详细了解。每种协议都有自己的规范和文档,可以在官方网站上找到,例如USB、DisplayPort和Thunderbolt。
有关Type-C的详细信息和规范,请参阅USB Implementers Forum(USB-IF)的官方网站。他们提供了大量的文档和资源,以帮助开发人员了解和遵循Type-C规范。
相关问题
type-c pin定义
Type-C连接器包含24个引脚,其中包括用于电源、数据和视频传输的引脚。以下是Type-C连接器的引脚定义:
1. VBUS:电源线,可以提供5V、9V、15V或20V的电压。
2. GND:地线。
3. CC1、CC2:通信线,用于确定连接器的角度、支持的功率等信息。
4. SBU1、SBU2:双向同轴电缆,用于支持USB 3.1 Gen 2的Alternate Mode。
5. D+/D-:用于USB 2.0数据传输。
6. TX1+/TX1-、TX2+/TX2-:用于DisplayPort Alt Mode视频传输。
7. RX1+/RX1-、RX2+/RX2-:用于DisplayPort Alt Mode视频传输和USB 3.1 Gen 2数据传输。
8. Configuration Channel (CC) Pin:用于传输连接器状态和电源协商信息。
gd32串口与基于ISO/IEC 14443 Type A标准的读卡器通信的c语言程序
好的,下面是一个简单的基于ISO/IEC 14443 Type A标准的读卡器与GD32串口通信的C语言程序:
```c
#include <stdio.h>
#include "gd32f10x.h"
#define RST_PIN GPIO_PIN_2
#define RST_PORT GPIOB
#define IRQ_PIN GPIO_PIN_3
#define IRQ_PORT GPIOB
#define BUFFER_SIZE 64
uint8_t rx_buffer[BUFFER_SIZE];
uint8_t tx_buffer[BUFFER_SIZE];
uint8_t command[] = {0x52, 0x01, 0x00, 0x00, 0x00};
void uart_init(void)
{
/* enable GPIO clock */
rcu_periph_clock_enable(RCU_GPIOA);
/* enable USART clock */
rcu_periph_clock_enable(RCU_USART0);
/* configure USART0 Tx and Rx as alternate function push-pull */
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
/* configure USART0 */
usart_deinit(USART0);
usart_baudrate_set(USART0, 115200);
usart_word_length_set(USART0, USART_WL_8BIT);
usart_stop_bit_set(USART0, USART_STB_1BIT);
usart_parity_config(USART0, USART_PM_NONE);
usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE);
usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE);
usart_receive_config(USART0, USART_RECEIVE_ENABLE);
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
/* enable USART0 */
usart_enable(USART0);
}
void spi_init(void)
{
/* enable SPI clock */
rcu_periph_clock_enable(RCU_SPI1);
/* configure SPI1 GPIO */
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5);
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7);
/* configure SPI1 */
spi_parameter_struct spi_init_struct;
spi_init_struct.device_mode = SPI_SLAVE;
spi_init_struct.trans_mode = SPI_TRANSMODE_FULLDUPLEX;
spi_init_struct.frame_size = SPI_FRAMESIZE_8BIT;
spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;
spi_init_struct.nss = SPI_NSS_SOFT;
spi_init_struct.prescale = SPI_PSC_64;
spi_init_struct.endian = SPI_ENDIAN_MSB;
spi_init(SPI1, &spi_init_struct);
/* enable SPI1 */
spi_enable(SPI1);
}
void reset_reader(void)
{
gpio_bit_reset(RST_PORT, RST_PIN);
delay_1ms(10);
gpio_bit_set(RST_PORT, RST_PIN);
delay_1ms(100);
}
void send_command(uint8_t *command, uint8_t len)
{
uint8_t i;
for (i = 0; i < len; i++) {
while (RESET == usart_flag_get(USART0, USART_FLAG_TBE));
usart_data_transmit(USART0, command[i]);
}
}
void receive_response(uint8_t *response, uint8_t len)
{
uint8_t i;
for (i = 0; i < len; i++) {
while (RESET == usart_flag_get(USART0, USART_FLAG_RBNE));
response[i] = usart_data_receive(USART0);
}
}
int main(void)
{
uart_init();
spi_init();
gpio_init(RST_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RST_PIN);
gpio_init(IRQ_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, IRQ_PIN);
reset_reader();
while (1) {
send_command(command, sizeof(command));
receive_response(rx_buffer, BUFFER_SIZE);
spi_i2s_data_transmit(SPI1, rx_buffer[0]);
spi_i2s_data_receive(SPI1);
}
}
```
这个程序使用的是GD32F103芯片的USART0串口和SPI1接口,其中USART0串口用于与读卡器通信,SPI1接口用于将读卡器的响应数据传输到主控芯片中。程序中的send_command()函数用于向读卡器发送指令,receive_response()函数用于接收读卡器的响应数据,reset_reader()函数用于复位读卡器。程序的主循环中,通过调用send_command()函数发送指令,然后调用receive_response()函数接收读卡器的响应数据,并将响应数据通过SPI1接口传输到主控芯片中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)