Skip to main content
UART(้€š็”จๅผ‚ๆญฅๆ”ถๅ‘ๅ™จ)ไฝฟ็”จ่ตทๅง‹ไฝๅ’Œๅœๆญขไฝ่€Œ้žๆ—ถ้’Ÿไฟกๅทๆฅๅผ‚ๆญฅไผ ่พ“ๆ•ฐๆฎใ€‚ๆŽฅๆ”ถ็ซฏ UART ไปฅ็งฐไธบๆณข็‰น็އ็š„็‰นๅฎš้ข‘็އ่ฏปๅ–ๆ•ฐๆฎไฝใ€‚

ๅ…ณ้”ฎๅ‚ๆ•ฐ

  • ๆณข็‰น็އ โ€” ้€šไฟก้€Ÿ็އ(ๆฏ็ง’ไฝๆ•ฐ)
  • ่ตทๅง‹/ๅœๆญขไฝ โ€” ๅธงๅฎš็•Œ็ฌฆ
  • ๅฅ‡ๅถๆ ก้ชŒไฝ โ€” ๅฏ้€‰็š„้”™่ฏฏๆฃ€ๆŸฅ
  • ๆ•ฐๆฎไฝ โ€” ๆฏๅธง 5โ€“9 ไฝ
  • ๆตๆŽง โ€” ้€š่ฟ‡ CTS/RTS ่ฟ›่กŒ็กฌไปถๆกๆ‰‹

ๅ„ๅญ็ณป็ปŸ็š„ไผ ่พ“ๆจกๅผ

ๆŽฅๅฃ็ป„ไปถ

่ฎพๅค‡ๆ ‘ๆบๆ–‡ไปถ

API

่ฝฏไปถ้…็ฝฎ

Linux ่ฎพๅค‡ๆ ‘็คบไพ‹

4 ็บฟ UART(ๅธฆๆตๆŽง):
GPIO pinctrl:
QUPAC ่ฎฟ้—ฎๆŽงๅˆถ:

ๅ†…ๆ ธ้…็ฝฎ

็ผ–่พ‘ kernel_platform/kernel/arch/arm64/configs/qcom_defconfig:
ๅœจ่ฎพๅค‡ๆ ‘ไธญๅฏ็”จ UART ่Š‚็‚น:

้ชŒ่ฏ

1

้ชŒ่ฏ UART ่ฎพๅค‡ๆณจๅ†Œ

2

้…็ฝฎ UART ่ฎพ็ฝฎ

3

่ฟ่กŒ็Žฏๅ›žๆต‹่ฏ•

ๆ‰“ๅผ€ไธคไธช SSH ็ปˆ็ซฏใ€‚็ปˆ็ซฏ 1(ๅ†™ๅ…ฅ):
็ปˆ็ซฏ 2(่ฏปๅ–):
้ข„ๆœŸ่พ“ๅ‡บ:Hello UART

่ฐƒ่ฏ•

ๅฏ็”จ่ฐƒ่ฏ•ๆ—ฅๅฟ—

็›‘ๆŽง UART ๆต้‡

ๆ•…้šœๆŽ’้™ค

  • ็กฎ่ฎค่ฎพๅค‡ๆ ‘็Šถๆ€ไธบ "ok"
  • ็กฎ่ฎคๅ†…ๆ ธ้…็ฝฎไธญๅŒ…ๅซ CONFIG_SERIAL_QCOM_GENI=y
  • ๆฃ€ๆŸฅ GPIO ๅผ•่„š้…็ฝฎๅ’Œ QUPAC ่ฎฟ้—ฎๆŽงๅˆถ่ฎพ็ฝฎ
  • ็กฎ่ฎคไธค็ซฏๆณข็‰น็އไธ€่‡ด
  • ๆฃ€ๆŸฅๆตๆŽง้…็ฝฎ(CTS/RTS)
  • ๅ…ˆไฝฟ็”จ็Žฏๅ›žๆจกๅผ่ฟ›่กŒๆต‹่ฏ•
  • ๅฏนไบŽ้ซ˜้€Ÿไผ ่พ“,ไปŽ FIFO ๆจกๅผๅˆ‡ๆขไธบ DMA ๆจกๅผ
  • ๆฃ€ๆŸฅไธญๆ–ญ็ปŸ่ฎกไฟกๆฏ:cat /proc/interrupts | grep uart
  • ๆฃ€ๆŸฅ็”ตๆบ็ฎก็†:cat /sys/kernel/debug/pm_genpd/pm_genpd_summary

่ฐƒ่ฏ•ๆฃ€ๆŸฅๆธ…ๅ•

  • ๅ†…ๆ ธ้…็ฝฎๅŒ…ๅซ CONFIG_SERIAL_QCOM_GENI=y
  • UART ่Š‚็‚น็š„่ฎพๅค‡ๆ ‘็Šถๆ€่ฎพ็ฝฎไธบ "ok"
  • GPIO ๅผ•่„šๅทฒๆญฃ็กฎ้…็ฝฎๅ’Œๆ˜ ๅฐ„
  • QUPAC ่ฎฟ้—ฎๆŽงๅˆถๅทฒๆญฃ็กฎ้…็ฝฎ
  • ไธค็ซฏๆณข็‰น็އไธ€่‡ด
  • ๆตๆŽง่ฎพ็ฝฎไธ€่‡ด
  • ่ฎพๅค‡ๆ–‡ไปถๆƒ้™ๆญฃ็กฎ

่ต„ๆบ