Mehrere x-nucleo-IHM02A1 L6470 Schrittmotor mit mbed libraray

OP #5237810
Lesenswert?
• ▲
▼
Hallo,

das ist mein 1. Post ... bitte um Nachsicht.

Versuche schon seit geraumer Zeit mittels der L6470 Treiber auf dem 
IHM02A1 Board (2x in dasy chain Konfiguration) Schrittmotoren zu 
verwenden (auf einem Nucleo-L476RG)
Funktioniert mit einem Board und 2 Motoren auch alles wie erwartet.

Nun versuche ich aber 2 weitere IHM02A1 Boards hinzuzufügen und habe 
große Probleme. Habe die CS-Jumper auf verschiedene Pins gestellt und 
dazu noch den Clock PIN geändert damit er nicht mit der LED in Konflikt 
gerät)

Leider funktioniert nur das zuerst initalisierte Board (Object). Bei 
jedem weiteren bleibt MISO/MOSI LOW bzw HIGH. Siehe auch angehängte 
sigrok screenshots.

Keine Ahnung ob es an meinen Mangelhaften C/C++ oder Hardware 
Kenntnissen liegt. Hier ist meine (gekürzte) Version abgeleitet aus dem 
Hello World Beispiel:

Hoffe jemand kann mir auf die Sprünge helfen.
1
/* mbed specific header files. */
2
#include "mbed.h"
3

4
/* Helper header files. */
5
#include "DevSPI.h"
6

7
/* Expansion Board specific header files. */
8
#include "XNucleoIHM02A1.h"
9

10
#define maxBoards 3
11
XNucleoIHM02A1 *x_nucleo_ihm02a1[maxBoards];
12
PinName const board_CS[4] = {D5,D2,A2,D10};
13

14
L6470 **motors[maxBoards];
15

16
int main()
17
{
18
  DevSPI dev_spi(D11, D12, D13); // MISO,MOSI,SCK
19
    
20
    DigitalOut active(D6);
21
    active=false;
22

23
    /* Initializing Motor Control Expansion Boards. */
24
    for (b = 0; b<maxBoards; ++b) {
25
        active=true;
26
        x_nucleo_ihm02a1[b] = new XNucleoIHM02A1(&init[0], &init[1], A4, A5, D4, board_CS[b], &dev_spi);
27
        active=false;
28
        pcTerminal.printf("Board %d %d (%d) initalized\r\n",b,board_CS[b],x_nucleo_ihm02a1[b]);
29
        motors[b] = x_nucleo_ihm02a1[b]->get_components();
30
        for (m=0; m<2; ++m) {
31
            motors[b][m]->hard_hiz(); // shutdown H-bridge
32
            result = motors[b] [m] -> get_status();
33
            pcTerminal.printf("  Init B:%d M:%d Result:%d\r\n",b,m,result);
34
//            wait(1);
35
        }
36
//        wait(2);
37
    }
38

39
// Move all Motors forward   
40

41
        for (b=0; b<maxBoards; ++b) {
42
            for (m=0; m<2; ++m) {
43
                pcTerminal.printf("Board %d Motor %d Steps %d",b,m,STEPS_1);
44
                motors[b][m]->move(StepperMotor::FWD, STEPS_1);
45
                motors[b][m]->wait_while_active();
46
                motors[b][m]->hard_hiz();
47
                result = motors[b][m] -> get_status();
48
                pcTerminal.printf(" Result: %d\r\n",result);
49
                wait(1);
50
            }
51
        }
52

53
// Move all Motors backward   
54
        
55
         for (b=0; b<maxBoards; ++b) {
56
            for (m=0; m<2; ++m) {
57
                pcTerminal.printf("Board %d Motor %d Steps -%d",b,m,STEPS_1);
58
                motors[b][m]->move(StepperMotor::BWD, STEPS_1);
59
                motors[b][m]->wait_while_active();
60
                motors[b][m]->hard_hiz();
61
                result = motors[b][m] -> get_status();
62
                pcTerminal.printf(" Result: %d\r\n",result);
63
                wait(1);
64
            }
65
        }
66
           
67
        /* Printing to the console. */
68
        pcTerminal.printf("terminate.\r\n");
69
     
70

71
    
72
}
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.