Gast
#6418957
Kennt sich hier jemand mit dem SWD Protokoll aus? Welche Polarität hat Clock: CPOL=0, also im Ruhezustand 0 und clock ist 0-1 oder CPOL=1, also im Ruhezustand 1 und clock ist 1-0 ? Ich habe unterschiedliche Angaben gefunden, z.B. ist hier ein buntes Diagramm mit CPOL=0: https://www.cnblogs.com/shangdawei/p/4748751.html In der Black Magic Probe wird mit positiven Pulsen gearbeitet (schon seit dem Urcode von vor 10 Jahren) und der SWD Decoder von Saleae zeigt auch nur richtig bei positiven Pulsen an. Dagegen arbeitet DAP Link von ARM mit negativen Pulsen, oder auch diese Mbed Implementierung: https://os.mbed.com/users/va009039/code/SWD//file/794d2801ff94/SWD.cpp/ https://github.com/ARMmbed/DAPLink/blob/f28bbfd7b39bcad07aa451dde74ddc180734b04b/source/daplink/cmsis-dap/SW_DP.c oder der Beispielcode für EFM32: https://www.cnblogs.com/shangdawei/p/4753040.html ich bin sehr verwirrt... Hintergrund ist: ich habe eine BMP mit Ethernet gebaut und die funktioniert gut mit STM32F1 und F4, aber beim H7 hakt es. Es gibt ständig verschiedene Protokollfehler. Beim low level analysieren bin ich jetzt auf diesen Unterschied in der Polarität gestossen. Die BMP Software selber ist für den F1 geschrieben, mit einem Bluepill kann ich den H7 auch programmieren und debuggen. BMP kann also nicht schlecht sein. Bei meiner Portierung laufen im Moment mehr Debugausgaben über die serielle und Ethernet Interrupts kommen dazu. Aber wenn das Protokoll richtig implementiert ist sollten Ints nicht stören, es erfolgen ja immer Reaktionen auf den clock den der Host selber produziert.