Hallo Zusammen, momentan versuche ich mit meinem STM32F4 einen DAC8552 DAC via SPI anzusteuern. Leider ziemlich erfolglos. Daher wollte ich fragen, ob jemand von euch schonmal vor dem selben Problem stand. Soweit ich es am Oszi sehe läuft die Übertragung korrekt. Nur der DAC zeigt keine Reaktion. Vielleicht wisst ihr, ob ich was übersehen habe. Die Verkabelung stimmt und er wird mit 3,3V versorgt. Selbst bei dem einfachen Codeschnipsel unten passiert nichts, obwohl der DAC die volle Spannung ausgeben soll... //SPI Init hspi3.Instance = SPI3; hspi3.Init.Mode = SPI_MODE_MASTER; hspi3.Init.Direction = SPI_DIRECTION_2LINES; hspi3.Init.DataSize = SPI_DATASIZE_8BIT; hspi3.Init.CLKPolarity = SPI_POLARITY_LOW; hspi3.Init.CLKPhase = SPI_PHASE_1EDGE; hspi3.Init.NSS = SPI_NSS_SOFT; hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi3.Init.TIMode = SPI_TIMODE_DISABLE; hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi3.Init.CRCPolynomial = 10; bytes[3]; //instruction byte bytes[0] = 0x10; // load new data to DAC A //data byte bytes[1] = 0xFF; bytes[2] = 0xFF; //send spi data HAL_GPIO_WritePin(SPI_CS1_GPIO_Port, SPI_CS1_Pin, GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi3, (uint8_t *)&bytes, 3, 100); HAL_GPIO_WritePin(SPI_CS1_GPIO_Port, SPI_CS1_Pin, GPIO_PIN_SET);
Hallöchen.. Teste gerade einen DAC8552 an einem STM32F103C8T6 und habe festgestellt, dass die Polarität vom Clock-Signal high sein muss. Dann sollte es funktionieren.
1 | hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH; |
Gruß Rolf
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.