Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UART1 mapped to GPIO 14 15 is not stable #1601

Closed
Cheong2K opened this issue Aug 17, 2016 · 5 comments

Comments

@Cheong2K
Copy link
Contributor

commented Aug 17, 2016

I have a Bluetooth module (BCM43438) connected to GPIO 14 15 of my Pi Zero, I also make use of the UART1 to test the module, and found that it sometimes fails to load the driver. If it loads successfully, the BlueZ will work fine.

@pelwell

This comment has been minimized.

Copy link
Contributor

commented Aug 17, 2016

  1. UART1 is inferior to UART0, with smaller FIFOs and no flow control. Also, its source clock is the same as the VPU/GPU clock, which means that unless you force core_freq=250 the baud rate will change as the Pi enters and leaves turbo mode, meaning you will get garbage out.

  2. Try connecting a terminal emulator (e.g. putty) to port 14&15 and verify that no data is transmitted until hciattach is called. I've found the BCM43438 is sensitive to receiving random data before the HCI traffic.

@Cheong2K

This comment has been minimized.

Copy link
Contributor Author

commented Aug 18, 2016

Thank you for the information and you are right, we got garbage from the UART1. I think we will change to use UART0.

BTW, the Pi3 has the UART clock = 48000000 by default, is it possible to have it on the Pi Zero without adding init_uart_clock in /boot/config.txt?

@pelwell

This comment has been minimized.

Copy link
Contributor

commented Aug 18, 2016

I don't see why we couldn't standardise on a 48MHz clock - any increase in power usage would be tiny, and with a 16.6 divisor the minimum data rate with the higher clock is still about 45baud, which is is too low for anybody to want to use.

Any thoughts, @popcornmix?

@Cheong2K Cheong2K referenced this issue Aug 18, 2016
@pelwell

This comment has been minimized.

Copy link
Contributor

commented Aug 22, 2016

I'm going to close this issue and track the clock rate change progress in your issue in the firmware repo instead.

@pelwell pelwell closed this Aug 22, 2016
popcornmix added a commit to raspberrypi/firmware that referenced this issue Aug 23, 2016
kernel: overlays: added sc16is750 UART over I2C
See: raspberrypi/linux#1617

kernel: config: Add CONFIG_IPVLAN module
See: raspberrypi/linux#1612

kernel: config: Add CONFIG_VXLAN module
See: raspberrypi/linux#1614

firmware: platform: Make the default UART0 clock 48MHz for all Pis
See: raspberrypi/linux#1601
See: #643
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Aug 23, 2016
kernel: overlays: added sc16is750 UART over I2C
See: raspberrypi/linux#1617

kernel: config: Add CONFIG_IPVLAN module
See: raspberrypi/linux#1612

kernel: config: Add CONFIG_VXLAN module
See: raspberrypi/linux#1614

firmware: platform: Make the default UART0 clock 48MHz for all Pis
See: raspberrypi/linux#1601
See: raspberrypi/firmware#643
@Cheong2K

This comment has been minimized.

Copy link
Contributor Author

commented Aug 23, 2016

Excellent! Thank you.

mkreisl added a commit to xbianonpi/xbian-package-firmware that referenced this issue Sep 16, 2016
- kernel: config: Enable SENSORS_LM75
  See: #508

- kernel: config: Enable SERIAL_SC16IS7XX
  See: raspberrypi/linux#1594

- kernel: snd-bcm2835: Don't allow responses from VC to be interrupted by user signals
  See: raspberrypi/linux#1560

- kernel: Merge many vc4 changes from drm-vc4-next-2016-07-15
  See: raspberrypi/linux#1596

- kernel: drm/vc4: vc4 loops support
  See: raspberrypi/linux#1597

- kernel: Add cm3 dts file
  See: raspberrypi/linux#1595

- kernel: net: ethernet: enc28j60: add device tree support

- kernel: enc28j60: Fix race condition in enc28j60 driver
  See: raspberrypi/linux#1385

- firmware: platform: Don't swap audio L&R if using GPIOs 12&13
  See: http://github.com/raspberrypi/linux/issues/1473

- firmware: hdmi: Increase muting before resolution change

- firmware: board_info: Add cm3-specific dtb file

- firmware: Ensure extended part of vg_spath is zeroed
  See: raspberrypi/linux#943

- kernel: config: Enable SERIAL_SC16IS7XX_SPI
  See: raspberrypi/linux#1594

- kernel: Added Overlay for Microchip MCP23S08/17 SPI gpio expanders
  See: raspberrypi/linux#1566

- kernel: BCM270X_DT: Add audio_pins to CM dtb
- kernel: BCM270X_DT: Don't enable UART0 in CM3 dtb

- kernel: overlays: Add audremap overlay
- kernel: overlays: Add swap_lr and enable_jack to audremap
  See: raspberrypi/linux#1473

- firmware: Raspi[Still|Vid]Yuv: Add option for just saving luma
  See: raspberrypi/userland#170

- firmware: RaspiVidYuv: Add option of saving RGB data

- firmware: Only change I2C/GPIO pin functions when needed

- firmware: platform: Redo the audio remapping logic
  See: raspberrypi/linux#1473

- kernel: overlays: added sc16is750 UART over I2C
  See: raspberrypi/linux#1617

- kernel: config: Add CONFIG_IPVLAN module
  See: raspberrypi/linux#1612

- kernel: config: Add CONFIG_VXLAN module
  See: raspberrypi/linux#1614

- firmware: platform: Make the default UART0 clock 48MHz for all Pis
  See: raspberrypi/linux#1601
  See: #643

- firmware: cacheasm: Enable workaround for unwanted sdram write after flush/invalidate
  See: raspberrypi/linux#943

- firmware: vchiq_arm: Fix return value of vchiq_initialise
  See: raspberrypi/userland#331

- firmware: Revert temp: Ensure extended part of vg_spath is zeroed
  See: raspberrypi/linux#943

- firmware: MMAL: Support MMAL_ENCODING_xxx_SLICE formats

- firmware: arm_display: Add bitmapped icons for warning conditions
  See: #367

- firmware: deinterlace: Avoid frame doubling with progressive frames
  See: http://forum.kodi.tv/showthread.php?tid=269814&pid=2412845#pid2412845

- kernel: config: Enable SENSORS_INA2XX module
  See: raspberrypi/linux#1632

- kernel: overlays: Add dpi18 overlay
  See: raspberrypi/linux#1634

- kernel: brcmfmac: do not use internal roaming engine by default
  See: http://projectable.me/optimize-my-pi-wi-fi/

- firmware: arm_display: Fix alpha of warning icons
  See: #367

- firmware: mmal: Advertise sliced formats in MMAL_PARAMETER_SUPPORTED_ENCODINGS
- firmware: IL Resize: Accept strides greater than the minimum

- firmware: vmcs_host: Poll for multiple dispmanx messages
- firmware: VCHI clients: Poll for messages until empty
  See: https://discourse.osmc.tv/t/april-update-causes-system-freezes/15361/183

- firmware: tvservice/cecservice: Make unexpected messages more fatal

- kernel: drm/vc4: Allow some more signals to be packed with uniform resets
  See: raspberrypi/linux#1636

- kernel: Rpi 4.4.y firmware kms
  See: raspberrypi/linux#1637

- firmware: tvservice/cecservice: We only care about unexpected message sizes

- firmware: khronos: Avoid starting khronos service when vc4-kms-v3d is active
- firmeare: arm_loader: Enable fake_vsync_isr when fkms overlay is used
  See: raspberrypi/linux#1637

- firmware: vcdbg: Add support for vchiq debugging
neuschaefer pushed a commit to neuschaefer/raspi-binary-firmware that referenced this issue Feb 27, 2017
kernel: overlays: added sc16is750 UART over I2C
See: raspberrypi/linux#1617

kernel: config: Add CONFIG_IPVLAN module
See: raspberrypi/linux#1612

kernel: config: Add CONFIG_VXLAN module
See: raspberrypi/linux#1614

firmware: platform: Make the default UART0 clock 48MHz for all Pis
See: raspberrypi/linux#1601
See: raspberrypi#643
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.