Exemplos de Raspberry PI RP2350 SDK PICO - Acesso antecipado
RP2350 Instruções
Tudo abaixo desta seção é do estoque Pico-Exemplos, então ignore os URLs etc., mas geralmente as instruções são as mesmas.
O padrão do Pico SDK continua a ser construído para o RP2040 (pico_platform = rp2040); portanto, para construir para o RP2350, você precisa passar -DPICO_PLATFORM=rp2350
para cmake (ou -DPICO_PLATFORM=rp2350-riscv
para risc -v).
A maioria, mas nem todos os exemplos, atualmente trabalha no RP2350, no entanto, você poderá fazer uma compilação completa com qualquer uma das plataformas acima (pico_platform = host, no entanto, atualmente falha em alguns exemplos)
Para compilação RISC-V, você deve pegar um compilador daqui: https://www.embecosm.com/resources/tool-chain-carloads/#riscv-stable
Documentos originais de pico-amostras
Começando
Consulte Introdução ao Raspberry Pi Pico e o ReadMe no Pico-SDK para obter informações sobre como estar em funcionamento.
Primeiros exemplos
App | Descrição | Link para uf2 pré -construído |
---|
hello_serial | O Programa Obrigatório do Hello World for Pico (Saída sobre versão serial) | |
hello_usb | O Programa Obrigatório do Hello World for Pico (saída de saída sobre USB) | https://rptl.io/pico-hello-usb |
piscar | Piscar um LED ligado e desligado. Trabalha em ambas as placas com LEDs regulares e pico W | https://rptl.io/picoblink |
Blink_simple | Piscar um LED ligado e desligado. Não funciona no Pico W. | https://rptl.io/picoblink |
picow_blink | Pisca o LED PICO W em bordo (que é conectado através do chip Wi-Fi). | http://rptl.io/pico-wblink |
ADC
App | Descrição |
---|
hello_adc | Exiba a tensão de uma entrada ADC. |
joystick_display | Exiba uma entrada do Joystick X/Y com base em duas entradas ADC. |
adc_console | Uma concha interativa para brincar com o ADC. Inclui exemplo do modo de captura de corrida livre. |
Onboard_temperature | Exiba o valor do sensor de temperatura a bordo. |
microfone_adc | Leia os valores analógicos de um microfone e plote a amplitude do som medida. |
dma_capture | Use o DMA para capturar muitas amostras do ADC. |
read_vsys | Demonstra como ler o VSYS para obter a tensão da fonte de alimentação. |
Bootloaders (somente RP2350)
App | Descrição |
---|
Enc_BootLoader | Um carregador de inicialização que descriptografa os binários do flash para o SRAM. Veja o ReadMe separado para obter mais informações |
Relógios
App | Descrição |
---|
hello_48mhz | Altere a frequência do relógio do sistema para 48 MHz durante a execução. |
hello_gpout | Use as saídas do relógio de propósito geral (GPOUT) para direcionar divisões de relógios internos em saídas do GPIO. |
hello_resus | Habilite o recurso Relógio ressuscite, "acidentalmente", pare o relógio do sistema e mostre como nos recuperamos. |
retached_clk_peri | Desconecte o relógio periférico e varie o relógio do sistema. |
Cmake
App | Descrição |
---|
build_variants | Construa duas versão do mesmo aplicativo com configurações diferentes |
DCP
App | Descrição |
---|
hello_dcp | Use o coprocessador de precisão dupla diretamente no Assembler. |
DMA
App | Descrição |
---|
hello_dma | Use o DMA para copiar dados na memória. |
Control_blocks | Crie uma lista de blocos de controle, para programar uma sequência mais longa de transferências de DMA para o UART. |
canal_irq | Use um manipulador de IRQ para reconfigurar um canal DMA, a fim de direcionar continuamente os dados através de uma máquina de estado PIO. |
Sniff_crc | Use a capacidade 'Sniff' do mecanismo DMA para calcular um CRC32 em um buffer de dados. |
Hstx
App | Descrição |
---|
DVI_OUT_HSTX_ENCODER RP2350 | Use o HSTX para produzir um sinal DVI com 3: 3: 2 RGB |
Clarão
App | Descrição |
---|
cache_perfctr | Leia e limpe os contadores de desempenho do cache. Mostre como eles são afetados por diferentes tipos de leituras de flash. |
Nuke | Obliterar o conteúdo do flash. Um exemplo de um binário NO_FLASH (UF2 carregado diretamente no SRAM e é executado no local). Um utilidade útil para arrastar e soltar para o seu pico, se necessário. |
programa | Apague um setor flash, programe uma página flash e leia os dados de volta. |
xip_stream | Dados de fluxo usando o hardware XIP Stream, que permitem que os dados sejam DMAs em segundo plano enquanto executa o código do Flash. |
SSI_DMA | DMA diretamente da interface flash (relatório contínuo de SCK) para obter o desempenho máximo de leitura em massa. |
RUNTIME_FLASH_PERMISSIONS | Demonstra a adição de partições no tempo de execução para alterar as permissões flash |
Freertos
Esses exemplos exigem que você defina o FREERTOS_KERNEL_PATH
para apontar para o kernel Freertos. Consulte https://github.com/freertos/freertos-kernel
App | Descrição |
---|
hello_freertos | Exemplos que demonstram como executam freertos e tarefas em 1 ou 2 núcleos. |
Gpio
App | Descrição |
---|
hello_7segment | Use o GPIOS para dirigir uma tela LED de sete segmentos. |
hello_gpio_irq | Registre um manipulador de interrupção para ser executado quando um GPIO for alterado. |
dht_sensor | Use o GPIO para Bitbang o protocolo serial para um sensor de temperatura/umidade DHT. |
Veja também: piscar, piscando um LED preso a um GPIO.
Divisor HW
App | Descrição |
---|
hello_divider | Mostre como acessar diretamente os divisores inteiros de hardware, caso a injeção do AEABI esteja desativada. |
I2c
App | Descrição |
---|
BUS_SCAN | Digitalize o barramento i2C em busca de dispositivos e exiba resultados. |
BMP280_I2C | Leia e converta dados de temperatura e pressão de um sensor BMP280, conectado a um barramento I2C. |
LCD_1602_I2C | Exiba algum texto em uma tela LCD genérica de 16x2 de caracteres, via i2c. |
lis3dh_i2c | Leia a aceleração e o valor da temperatura de um sensor Lis3dh via i2c |
MCP9808_I2C | Leia a temperatura, defina limites e levante alertas quando os limites forem superados. |
MMA8451_I2C | Leia a aceleração a partir de um acelerômetro MMA8451 e definição de faixa e precisão para os dados. |
MPL3115A2_I2C | Interface com um altímetro MPL3115A2, explorando interrupções e recursos avançados da placa, via i2c. |
MPU6050_I2C | Leia os valores de aceleração e taxa angular de um acelerômetro/giroscópio MPU6050, anexado a um barramento I2C. |
SSD1306_I2C | Converta e exiba um bitmap em uma tela OLED 128x32 ou 128x64 SSD1306 acionada |
PA1010D_I2C | Leia os dados de localização do GPS, analisam e exibam dados via i2c. |
PCF8523_I2C | Leia os valores da hora e da data de um relógio em tempo real. Defina o horário e os alarmes atuais nele. |
HT16K33_I2C | Dirija um segmento de 4 dígitos 14 LED com um HT16K33. |
Slave_MEM_I2C | Exemplo de escravo i2c, onde o escravo implementa uma memória de 256 bytes |
Interpolador
App | Descrição |
---|
hello_interp | Um pacote de pequenos exemplos, mostrando como acessar o hardware interpolador local-local e usar a maioria de seus recursos. |
Multicore
App | Descrição |
---|
hello_multicore | Inicie uma função no segundo núcleo, imprima algumas mensagens em cada núcleo e passe os dados de um lado para o outro através da caixa de correio Fifos. |
multicore_fifo_irqs | Em cada núcleo, registre -se e interrompa o manipulador para a caixa de correio Fifos. Mostre como a interrupção dispara quando esse núcleo recebe uma mensagem. |
multicore_runner | Configure o segundo núcleo para aceitar e execute qualquer ponteiro de função empurrado para o seu FIFO da caixa de correio. Empurre alguns pedaços de código e recupere as respostas. |
multicore_doorbell | Reivindica duas campainhas para sinalizar entre os núcleos. Conte quantos IRQs de campainha ocorrem no segundo núcleo e usa campainhas para coordenar a saída. |
OTP
App | Descrição |
---|
hello_otp | Demonstre leitura e escrita do OTP no RP2350, juntamente com alguns dos recursos do OTP (correção de erros e bloqueio de página). |
Placa pico
App | Descrição |
---|
Blinky | Piscar "Olá, mundo" no código Morse no LED de Pico |
botão | Use o botão Bootsel do Pico como uma entrada regular de botão, suspendendo temporariamente o acesso do flash. |
Pico W Networking
Esses exemplos são para o pico w e estão disponíveis apenas para PICO_BOARD=pico_w
App | Descrição |
---|
picow_access_point | Inicia um ponto de acesso Wi -Fi e Fields DHCP solicitações. |
picow_blink | Pisca o LED a bordo (que é conectado através do chip wifi). |
picow_blink_slow_clock | Pisca o LED a bordo (que é conectado através do chip wifi) com um relógio mais lento do sistema para mostrar como reconfigurar a comunicação com o chip wifi nessas circunstâncias |
picow_iperf_server | Executa um servidor "iperf" para teste de velocidade WiFi. |
picow_ntp_client | Conecta -se a um servidor NTP para buscar e exibir a hora atual. |
picow_tcp_client | Um cliente TCP simples. Você pode executar o Python_test_tcp_server.py para que ele se conecte. |
picow_tcp_server | Um servidor TCP simples. Você pode usar o python_test_tcp_client.py para se conectar a ele. |
picow_tls_client | Demonstra como fazer uma solicitação HTTPS usando TLS. |
picow_tls_verify | Demonstra como fazer uma solicitação HTTPS usando o TLS com verificação de certificado. |
picow_wifi_scan | Varredura para redes Wi -Fi e imprime os resultados. |
picow_udp_beacon | Um transmissor UDP simples. |
picow_httpd | Executa um aplicativo de teste do servidor HTTP LWIP |
Exemplos de Freertos
Estes são exemplos de integração da rede Pico W sob Freertos e exigem que você defina o FREERTOS_KERNEL_PATH
para apontar para o kernel Freertos. Consulte https://github.com/freertos/freertos-kernel
App | Descrição |
---|
picow_freertos_iperf_server_nosys | Executa um servidor "iperf" para testes de velocidade WiFi em Freertos no modo NO_SYS = 1. O LED está piscando em outra tarefa |
picow_freertos_iperf_server_sys | Executa um servidor "iperf" para testes de velocidade do WiFi no modo Freertos no modo NO_SYS = 0 (ou seja, integração Freertos completa). O LED está piscando em outra tarefa |
picow_freertos_ping_nosys | Executa o aplicativo LWIP-CONTRIB/APPS/PING no modo Freertos no modo NO_SYS = 1. |
picow_freertos_ping_sys | Executa o aplicativo LWIP-CONTRIB/APPS/PING no modo Freertos no modo NO_SYS = 0 (ou seja, integração Freertos completa). O aplicativo de teste usa a API de soquete LWIP neste caso. |
picow_freertos_ntp_client_socket | Conecta -se a um servidor NTP usando a API de soquete LWIP com o modo Freertos no modo NO_SYS = 0 (ou seja, Freertos Integration). |
pico_freertos_httpd_nosys | Executa um aplicativo de teste do servidor HTTP LWIP no Freertos no modo NO_SYS = 1. |
pico_freertos_httpd_sys | Executa um aplicativo de teste do servidor HTTP LWIP no modo Freertos no modo NO_SYS = 0 (ou seja, integração Freertos completa). |
Pico W Bluetooth
Esses exemplos são para o pico w e estão disponíveis apenas para PICO_BOARD=pico_w
. São exemplos da pilha Blue Kitchen Bluetooth, veja aqui uma descrição completa.
Por padrão, os exemplos Bluetooth são construídos apenas em um "modo" apenas ( plano de fundo , pesquisa ou Freertos ), com o padrão sendo o fundo . Isso pode ser alterado pela passagem -DBTSTACK_EXAMPLE_TYPE=poll
etc. para CMake
, ou todos os exemplos podem ser construídos (que podem ser lentos) passando -DBTSTACK_EXAMPLE_TYPE=all
as versões Freertos só podem ser construídas se FREERTOS_KERNEL_PATH
estiver definido.
Os exemplos Bluetooth que usam áudio exigem código em pico-extras. Pass -DPICO_EXTRAS_PATH=${HOME}/pico-extras
na linha de comando cmake ou defina PICO_EXTRAS_PATH=${HOME}/pico-extras
em seu ambiente e reencontro o cmake para incluí-los na construção.
App | Descrição |
---|
picow_bt_example_a2dp_sink_demo | A2DP Sink - Receba fluxo de áudio e reprodução de controle. |
picow_bt_example_a2dp_source_demo | A2DP Fonte - Stream Audio e Control Volume. |
picow_bt_example_ancs_client_demo | LE ANCS Client - Serviço de notificação da Apple. |
picow_bt_example_att_delayed_Response | Le Peripheral - Resposta tardia. |
picow_bt_example_audio_duplex | Motorista de áudio - Audio para a frente da fonte para afundar. |
picow_bt_example_avrcp_browsing_client | Navegação AVRCP - Procure players de mídia e informações de mídia. |
picow_bt_example_dut_mode_classic | Teste - Ativar dispositivo em teste (DUT.C) para clássico. |
picow_bt_example_gap_dediced_bonding | Ligação de gap |
picow_bt_example_gap_inquiry | Gap Classic Inquiry. |
picow_bt_example_gap_le_advertisements | Scanner de anúncios de lacuna. |
picow_bt_example_gap_link_keys | GAP Link Key Management (Classic.c). |
picow_bt_example_gatt_battery_query | GATT Battery Service Client. |
picow_bt_example_gatt_browser | GATT Client - Descubra serviços primários. |
picow_bt_example_gatt_counter | Servidor Gatt - Contador de batimentos cardíacos sobre Gatt. |
picow_bt_example_gatt_device_information_query | Cliente de serviço de informações do dispositivo Gatt. |
picow_bt_example_gatt_heart_rate_client | Cliente de sensor de frequência cardíaca GATT. |
picow_bt_example_gatt_streamer_server | Desempenho - Dados de transmissão sobre Gatt (Server.c). |
picow_bt_example_hfp_ag_demo | HFP AG - Gateway de áudio. |
picow_bt_example_hfp_hf_demo | HFP HF - Mãos livres. |
picow_bt_example_hid_host_demo | HID Host Classic. |
picow_bt_example_hid_keyboard_demo | HID Keyboard Classic. |
picow_bt_example_hid_mouse_demo | HID Mouse Classic. |
picow_bt_example_hog_boot_host_demo | HID HID HOST LE. |
picow_bt_example_hog_host_demo | HID HOST LE. |
picow_bt_example_hog_keyboard_demo | HID Teclado LE. |
picow_bt_example_hog_mouse_demo | HID Mouse Le. |
picow_bt_example_hsp_ag_demo | HSP AG - Gateway de áudio. |
picow_bt_example_hsp_hs_demo | HSP HS - fone de ouvido. |
picow_bt_example_le_credit_based_flow_control_mode_client | LE Credit baseado em crédito com base no modo de controle de fluxo-envie dados sobre o L2CAP. |
picow_bt_example_le_credit_based_flow_control_mode_server | LE Credit baseado no servidor de modo de controle de fluxo-receba dados sobre o L2CAP. |
picow_bt_example_led_counter | Olá mundo - piscando um LED sem Bluetooth. |
picow_bt_example_le_mitm | Ferramenta Le Man-in-the-Middle. |
picow_bt_example_le_streamer_client | Desempenho - Dados de fluxo sobre Gatt (client.c). |
picow_bt_example_mod_player | Driver de áudio - Toque a música mod dos anos 80. |
picow_bt_example_nordic_spp_le_counter | Servidor de batimentos cardíacos do tipo Le Nordic SPP. |
picow_bt_example_nordic_spp_le_streamer | Servidor de streamer do tipo SPP de Le Nordic. |
picow_bt_example_sdp_general_query | Cliente SDP - Consulta registros SDP remotos. |
picow_bt_example_sdp_rfcomm_query | Cliente SDP - Consulta RFComm SDP Record. |
picow_bt_example_sine_player | Driver de áudio - jogue seno. |
picow_bt_example_sm_pairing_central | LE CENTRAL - Métodos de emparelhamento de testes. |
picow_bt_example_sm_pairing_peripheral | Métodos de emparelhamento de testes Le Peripheral. |
picow_bt_example_spp_and_gatt_counter | Modo duplo - spp e le contador. |
picow_bt_example_spp_and_gatt_streamer | Modo duplo - SPP e LE Frexer. |
picow_bt_example_spp_counter | SPP Server - Contador de batimentos cardíacos sobre RFComm. |
picow_bt_example_spp_flowControl | SPP Server - Controle de fluxo RFCOMM. |
picow_bt_example_spp_streamer_client | Desempenho - Dados de fluxo sobre spp (client.c). |
picow_bt_example_spp_streamer | Desempenho - Dados de transmissão sobre SPP (Server.c). |
picow_bt_example_ublox_spp_le_counter | Servidor de batimentos cardíacos do tipo Le U-Blox SPP. |
Alguns exemplos independentes de Bluetooth (sem todo o exemplo comum de infraestrutura de construção) também estão disponíveis:
App | Descrição |
---|
picow_ble_temp_sensor | Lê do sensor de temperatura a bordo e envia notificações via BLE |
picow_ble_temp_sensor_with_wifi | O mesmo que acima, mas também se conecta ao Wi-Fi e inicia um servidor "iperf" |
picow_ble_temp_reader | Conecta -se a um dos "sensores" acima e lê a temperatura |
Pio
App | Descrição |
---|
hello_pio | Exemplo absolutamente mínimo mostrando como controlar um LED empurrando valores para um PIO FIFO. |
APA102 | Padrão do arco -íris em uma série de LEDs RGB endereçáveis APA102. |
Clocked_input | Mudança nos dados seriais, amostragem com um relógio externo. |
diferencial_manchester | Envie e receba serial codificado diferencial de Manchester (BMC). |
Hub75 | Exiba uma imagem em uma matriz LED de 128x64 hub75 rgb. |
i2c | Digitalize um ônibus I2C. |
ir_nec | Enviando e recebendo códigos de IR (infravermelho) usando o PIO. |
LOGIC_ANALYSER | Use PIO e DMA para capturar um traço lógico de alguns GPIOs, enquanto uma unidade PWM os está dirigindo. |
manchester_encoding | Envie e receba a série codificada por Manchester. |
Onewire | Uma biblioteca para interface com dispositivos de 1 fio, com um exemplo para o sensor de temperatura DS18B20. |
pio_blink | Configure algumas máquinas de estado PIO para piscar LEDs em diferentes frequências, de acordo com a contagem de atrasos empurrada para seus FIFOs. |
pwm | Modulação de largura de pulso no PIO. Use -o para desaparecer gradualmente o brilho de um LED. |
spi | Use o PIO para apagar, programar e ler um chip flash SPI externo. Um segundo exemplo executa um teste de loopback com todas as quatro combinações CPHA/CPOL. |
onda quadrada | Dirija uma onda quadrada rápida em um GPIO. Este exemplo acessa diretamente o PIO de baixo nível, em vez de usar as funções SDK. |
Squarewave_div_sync | Gera uma onda quadrada em três GPIOs e sincroniza o divisor em todas as máquinas de estado |
ST7789_LCD | Configure o PIO para uma saída serial de 62,5 Mbps e use -a para exibir uma imagem giratória em um LCD em série ST7789. |
quadrature_encoder | Um codificador de quadratura usando PIO para manter contagens independentes da CPU. |
quadrature_encoder_substep | Medição de velocidade de alta resolução usando um codificador de quadratura padrão |
uart_rx | Implemente o componente de recebimento de uma porta serial do UART. Anexe -o ao braço sobressalente UART para vê -lo receber caracteres. |
uart_tx | Implemente o componente de transmissão de uma porta serial uart e imprima o Hello World. |
WS2812 | Exemplos de LEDs RGB endereçáveis WS2812 de condução. |
adição | Adicione dois números inteiros juntos usando o PIO. Apenas cerca de 8 bilhões de vezes mais lento que o Cortex-M0+. |
Pwm
App | Descrição |
---|
hello_pwm | Exemplo mínimo de condução da saída PWM em GPIOs. |
led_fade | Desaparecer um LED entre baixo e alto brilho. Um manipulador de interrupção atualiza o nível de saída do PWM Slice cada vez que o contador envolve. |
medir_duty_cycle | Aciona uma saída PWM em uma variedade de ciclos de serviço e usa outra fatia de PWM no modo de entrada para medir o ciclo de trabalho. |
Reiniciar
App | Descrição |
---|
hello_reset | Realize uma redefinição dura em alguns periféricos e, em seguida, traga -os de volta. |
Rtc
App | Descrição |
---|
hello_rtc | Defina uma data/hora no RTC e imprima repetidamente o horário atual, 10 vezes por segundo, para mostrá -lo atualizando. |
RTC_ALARM | Defina um alarme no RTC para acionar uma interrupção em uma data/hora de 5 segundos no futuro. |
RTC_ALARM_REPEAT | Aceção de uma interrupção do RTC uma vez por minuto. |
SHA-256
App | Descrição |
---|
hello_sha256 | Demonstra como usar a biblioteca Pico_Sha256 para calcular uma soma de verificação usando o hardware no RP2350 |
mbedtls_sha256 | Demonstra o uso da aceleração de hardware SHA-256 em mbedtls |
Spi
App | Descrição |
---|
BME280_SPI | Anexe um sensor de temperatura/umidade/pressão BME280 via SPI. |
MPU9250_SPI | Anexe um acelerômetro/gyoscópio MPU9250 via SPI. |
spi_dma | Use DMA para transferir dados de e para o SPI simultaneamente. O SPI está configurado para loopback. |
spi_flash | Apague, programe e leia um dispositivo flash serial conectado a um dos controladores SPI. |
spi_master_slave | Demonstre a comunicação SPI como mestre e escravo. |
max7219_8x7seg_spi | Anexando um max7219 dirigindo uma tela de segmento de 8 dígitos 7 via SPI |
max7219_32x8_spi | Anexando um max7219 dirigindo uma tela LED de 32x8 via SPI |
Sistema
App | Descrição |
---|
boot_info | Demonstre como ler e interpretar informações de inicialização do sistema. |
hello_double_tap | Um LED piscar com a biblioteca pico_bootsel_via_double_reset vinculada. Isso entra no carregador de inicialização USB quando detecta o sistema sendo redefinido duas vezes em sucessão rápida, que é útil para placas com um botão de redefinição, mas sem botão de bootsel. |
rand | Demonstre como usar as funções do número aleatório do pico. |
estreito_io_write | Demonstre os efeitos de gravações de 8 e 16 bits em um registro de IO de 32 bits. |
exclusivo_board_id | Leia o ID exclusivo de 64 bits do Flash externo, que serve como um identificador exclusivo para a placa. |
Timer
App | Descrição |
---|
hello_timer | Defina retornos de chamada no cronômetro do sistema, que se repetem em intervalos regulares. Cancele o cronômetro quando terminarmos. |
periódico_sampler | Exemplo de GPIOs em um retorno de chamada do timer e empurre as amostras para uma fila segura para simultaneidade. Dados pop da fila no código em execução em primeiro plano. |
Timer_lowlevel | Exemplo de acesso direto ao hardware do timer. Geralmente não é recomendado, pois o SDK pode usar o timer para tempo limite de IO. |
Uart
App | Descrição |
---|
hello_uart | Imprima algum texto de uma das portas seriais UART, sem passar pelo stdio . |
lcd_uart | Exibir texto e símbolos em uma tela LCD de 16x02 RGB via UART |
uart_advanced | Use outros recursos UART, como interrupções RX, fluxo de controle de hardware e formatos de dados que não sejam 8N1. |
Universal
Estes são exemplos de como construir binários universais que são executados no RP2040 e RP2350 ARM & RISC-V. Isso exige que você defina PICO_ARM_TOOLCHAIN_PATH
e PICO_RISCV_TOOLCHAIN_PATH
para os caminhos apropriados, para garantir que você tenha compiladores para ambas as arquiteturas.
App | Descrição |
---|
piscar | O mesmo que o exemplo piscar, mas universal. |
Hello_Universal | O Programa Obrigatório do Hello World for Pico (USB e saída serial). No RP2350, ele reiniciará para a outra arquitetura após cada 10 impressões. |
Nuke_Universal | O mesmo que o exemplo da bomba, mas universal. No RP2350, funciona como um binário SRAM embalado, então é escrito para piscar e copiado para SRAM pelo bootloader |
Dispositivo USB
Exemplos TinyusB
A maioria dos exemplos de dispositivos USB vem diretamente do diretório de exemplos de dispositivos TinyUSB aqui. Aqueles que são suportados em dispositivos RP2040 são automaticamente incluídos como parte dos pico-Exemplos construídos como alvos denominados tinyusb_dev_<example_name>
, por exemplo, https://github.com/hathach/tinyusb/tree/master/examples/device/hid_composite é construído como tinyusb_dev_hid_composite
.
No momento da redação deste artigo, esses exemplos estão disponíveis:
- tinyusb_dev_audio_4_channel_mic
- tinyusb_dev_audio_test
- tinyusb_dev_board_test
- tinyusb_dev_cdc_dual_ports
- tinyusb_dev_cdc_msc
- tinyusb_dev_dfu
- tinyusb_dev_dfu_runtime
- tinyusb_dev_dynamic_configuration
- tinyusb_dev_hid_composite
- tinyusb_dev_hid_generic_inout
- tinyusb_dev_hid_multiple_interface
- tinyusb_dev_midi_test
- tinyusb_dev_msc_dual_lun
- tinyusb_dev_net_lwip_webserver
- tinyusb_dev_uac2_headset
- tinyusb_dev_usbtmc
- tinyusb_dev_video_capture
- tinyusb_dev_webusb_serial
Embora esses exemplos demonstrem habilmente como usar o TinyUSB no modo de dispositivo, seus CMakeLists.txt
são configurados de uma maneira adaptada à maneira como o TinyUSB cria seus exemplos em sua árvore de origem.
Para um exemplo melhor de como configurar CMakeLists.txt
para usar o TinyUSB no modo de dispositivo com o Raspberry Pi SDK, veja abaixo:
Exemplo de construção do SDK
App | Descrição |
---|
dev_hid_composite | Uma cópia do exemplo do dispositivo TinyUSB com o mesmo nome, mas com um cmakelists.txt que demonstra como adicionar uma dependência das bibliotecas de dispositivos Tinyusb com o Raspberry Pi Pico SDK |
Exemplo de baixo nível
App | Descrição |
---|
dev_lowlevel | Um loopback em massa USB implementado com acesso direto ao hardware USB (sem tinyusb) |
Host USB
Todos os exemplos do host USB vêm diretamente do diretório de exemplos de host TinyUSB aqui. Aqueles que são suportados em dispositivos RP2040 são automaticamente incluídos como parte dos pico-Exemplos construídos como alvos denominados tinyusb_host_<example_name>
, por exemplo, https://github.com/hathach/tinyusb/tree/master/examples/host/cdc_msc_hid é construído como tinyusb_host_cdc_msc_hid
.
No momento da redação deste artigo, há apenas um exemplo de host disponível:
Modo duplo USB
O Modo Dual USB usa o PIO como um controlador de host USB e o controlador de dispositivo USB RP2040 como um controlador de dispositivo. Todos os exemplos duplos USB vêm diretamente do diretório de exemplos duplos Tinyusb aqui. Aqueles que são suportados em dispositivos RP2040 são automaticamente incluídos como parte dos formados por Pico-Exemplos como alvos denominados tinyusb_dual_<example_name>
, por exemplo, https://github.com/hathach/tinyusb/tree/master/exames/dual/host_hid_device como tinyusb_dual_host_hid_to_device_cdc
.
No momento da redação deste artigo, há apenas um exemplo duplo disponível:
- tinyusb_dual_host_hid_to_device_cdc
Watchdog
App | Descrição |
---|
hello_watchdog | Defina o cronômetro de vigilância e deixe expirar. Detecte a reinicialização e pare. |