Gast
#1957259
Bin gerade frisch verliebt: http://www.st.com/internet/mcu/product/250173.jsp Datenblatt ist verfügbar und status ist immerhin schon "preview" - mal schauen, wie lange wir noch warten müssen...
|
Anzeige
|
Neues bei ST: STM32F217
Gast
#1957259
Bin gerade frisch verliebt: http://www.st.com/internet/mcu/product/250173.jsp Datenblatt ist verfügbar und status ist immerhin schon "preview" - mal schauen, wie lange wir noch warten müssen...
Gast
#1957280
Hannes S. schrieb: > Datenblatt ist verfügbar und status ist immerhin schon "preview" - mal > schauen, wie lange wir noch warten müssen... Ich habe weniger Ansprüche, eine laufende I2C Peripherie bei den STM-Cpus wäre schon etwas .... Ich habs mal in die Übersicht vom Artikel STM32 rein geschrieben.
Gast
#1957448
Gerd : > Ich habe weniger Ansprüche, eine laufende I2C Peripherie bei den > STM-Cpus wäre schon etwas .... Was läuft denn nicht bei dem I2C im STM32 ? Hatte bisher noch keine Probleme, ob mit INT/DMA oder polling.
Gast
#1958415
@Steffen: Bitte den promblemlosen I2C + Int (ohne DMA) Quellcode mal zeigen. Ich glaube nicht das die I2C-Einheit bugfrei ist. Diverse Quellen reinitialsieren die gesamte Hardware nach jedem I2C Transfer, vor allem kombinierte Read/Write Zugriffe bringen Probleme. Beitrag "STM32 I2C Bus bleibt hängen" http://www.jiangsheng.tk/56.html http://svn.openpilot.org/blame.php?repname=OpenPilot&path=%2Ftrunk%2Fflight%2FPiOS%2FSTM32F10x%2Fpios_i2c.c&rev=1350&peg=1350
Gast
#1958460
Die kurze Beschreibung aus der Errata:
Man soll als I2C Master die DMA benutzen, es sei denn man will nur ein Byte empfangen. Für einen Sensor der evtl. nur 2 Bytes empfängt und 2 Bytes sendet ein ganz schöner Overhead und der DMA Channel ist für diese Zeit nicht für eine andere Peripherie nutzbar. Oder der I2C Interrupt soll benutzt werden, aber nur mit der höchsten Priorität. Sprich, das System hängt oder "stört" den I2C Interrupt und bei jeden Byte das gesendet oder empfangen wird schlägt ein Interrupt auf. Oder man schaltet alle Interrupts aus und macht ein auf Pollen .... Die I2C Peripherie ist in Verbindung mit einem Real-Time-Kern nur bedingt benutzbar.
Gast
#1958528
@Stm32User : > Bitte den promblemlosen I2C + Int (ohne DMA) Quellcode mal zeigen. so einfach zeigen kann ich das nicht, da ich den I2C unter CMX ( RTOS ) laufen lasse. Ich benutze dabei einige Events im CMX und das muss man erstmal trennen. Ich habe an dem Bus einen EEPROM und ein Display, wobei ich das Display über DMA beschreibe und den EEPROM im INT-Betrieb. Die Software läuft seit 2 Jahren in Laborgeräten ohne Probleme. Das Bsp. von ST im INT-Betrieb war leider ( oder ist noch ? ) falsch und da habe ich schon eine Weile geraucht, um den Fehler zu finden. @ Gerd: > Die I2C Peripherie ist in Verbindung mit einem Real-Time-Kern nur > bedingt benutzbar. Wie oben schon geschrieben läuft der I2C zusammen mit CMX ohne Probleme. Leider ist es richtig, das der I2C-INT in der höchsten Priorität laufen muss, stört bei meiner Applikation aber nicht, da nur selten in den EEPROM geschrieben wird. Ich wollte schon lange mal den EEPROM auf DMA umstellen, hatte aber leider dazu noch keine Zeit. Versuchen kann ich mal, eine Applikation hier reinzustellen. Muss das aber erstmal aus dem System ( CMX ) trennen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|