xm32e5 pcf8574

Rodzina procesorów bogatszych w wiele nowych rozwiązań i dlatego warto po nie sięgnąć.
krolikbest
Posty: 23
Rejestracja: 10 maja 2022, 13:25

xm32e5 pcf8574

Post autor: krolikbest » 16 maja 2022, 14:05

Witam,
próbuję skomunikować xmega32e5 z lcd (sterownik hd44780) z zainstalowanym konwerterem i2c pcf8574. LCD pod Uno działa. Pod xmegę jakoś mi to nie teges.. Napisałem prosty skaner i2c czy w ogóle mi wykrywa lcd-ka. I wykrywa. Kod skanera:
  1. $regfile = "xm32e5def.dat"
  2. $crystal = 32000000 '32MHz
  3. $hwstack = 64
  4. $swstack = 40
  5. $framesize = 40
  6.  
  7. Config Osc = Enabled , 32mhzosc = Enabled 'We use internal 32MHz
  8. Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 'Internal 32MHz, no prescaler
  9.  
  10. dim twi_start as byte
  11. Dim Adrs As Word
  12. Dim Row As Word
  13.  
  14. Config Com1 = 9600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
  15. Open "COM1:" For Binary As #1
  16.  
  17. Config Scl = Portc.1
  18. Config Sda = Portc.0
  19. Open "twic" For Binary As #2
  20. Config I2cdelay = 10
  21. Config Twic=100000
  22.  
  23. I2Cinit #2
  24.  
  25. For Adrs = 0 To 254 Step 2
  26.  I2cstart #2
  27.  I2cwbyte Adrs, #2
  28.  If Err = 0 Then                                            '0 device / 1 not device
  29.    Print #1, "Found addr " ; Hex(Adrs) ; " " ; Adrs
  30.  End If
  31.  I2cstop #2
  32. Next Adrs
  33. Print #1,"-----"
  34. End
Program do lcd tak wygląda:
  1. $regfile = "xm32e5def.dat"
  2. $crystal = 32000000 '32MHz
  3. $hwstack = 80
  4. $swstack = 60
  5. $framesize = 60
  6.  
  7. $lib "bl_Lcd_i2c.lib"
  8.  
  9. Config Osc =enabled , 32mhzosc = Enabled
  10. Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
  11.  
  12. dim twi_start as byte
  13. Dim _lcd_e As Byte
  14. Dim Backlight As Byte
  15.  
  16. Config Scl = Portc.1
  17. Config Sda = Portc.0
  18. Open "twic" For Binary As #2
  19. Config I2cdelay = 10
  20. Config Twic=100000
  21.  
  22. I2Cinit #2
  23.  
  24. Const Pcf_d4 = 4
  25. Const Pcf_d5 = 5
  26. Const Pcf_d6 = 6
  27. Const Pcf_d7 = 7
  28. Const Pcf_rs = 0
  29. Const Pcf_rw = 1
  30. Const Pcf_e1 = 2
  31. Const Pcf8574_lcd = &H4E                                     'Defines the address of the I/O expander for LCD
  32.  
  33. Backlight_on Alias &H08
  34. Backlight_off Alias &H00
  35. Backlight = Backlight_on
  36.  
  37. _lcd_e = 128
  38.  
  39. cls
  40. Locate 1 , 1
  41. Lcd "Dystans"
  42.  
  43. end
Sprzętowo sda, scl rezystorami podciągnięte pod 3v3. Skaner wykrywa adres &H4E, ale dołączony program do wyświetlenia czegokolwiek już nic nie pokazuje.. Może znowu coś przeoczyłem?

Pozdrawiam,
Marcin
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: xm32e5 pcf8574

Post autor: niveasoft » 16 maja 2022, 14:25

Lepiej użyj tej biblioteki -> https://www.mcselec.com/index2.php?opti ... ic&t=14773
Jest już dołączana do Bascom "lcd_i2c_PCF8574.LIB" więc powinieneś ją mieć. Link jest do przykładu użycia. Można mieć więcej LCD na raz.
Nie pamiętam czy czasem nie jest potrzebne "init_lcd" bo cls tam automatycznie chyba nie inicjuje.
Zawsze też potrzebne jest "Config Lcd = X x Y bo sa różne adresowania linii.
krolikbest
Posty: 23
Rejestracja: 10 maja 2022, 13:25

Re: xm32e5 pcf8574

Post autor: krolikbest » 16 maja 2022, 14:27

Dzięki za podpowiedź. Jutro powalczę.

Pozdrawiam,
Marcin
krolikbest
Posty: 23
Rejestracja: 10 maja 2022, 13:25

Re: xm32e5 pcf8574

Post autor: krolikbest » 17 maja 2022, 10:52

Wygląda na to, że korzystając z tej biblioteki przy obsłudze xmega nie skompiluje programu. Załaczam kod, może sie komus uda.
  1. $regfile = "xm32e5def.dat"
  2. $crystal = 32000000 '32MHz
  3. $hwstack = 80
  4. $swstack = 60
  5. $framesize = 60
  6.  
  7. $lib "lcd_i2c_PCF8574.Lib"
  8.  
  9. Config Osc =enabled , 32mhzosc = Enabled
  10. Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
  11.  
  12. dim twi_start as byte
  13.  
  14. Config Twic=100000
  15. Config Scl = Portc.1
  16. Config Sda = Portc.0
  17. Open "twic" For Binary As #2
  18. Config I2cdelay = 10
  19.  
  20. I2Cinit #2
  21.  
  22. Dim Pcf8574_lcd As Byte : Pcf8574_lcd = &H4E             'PCF8574 slave address. (&H40,&H42,&H44,&H46,&H48,&H4A,&H4C,&H4E)
  23. Dim Backlight As Byte : Backlight = 1                    'LCD backlight control. (0: off, 1: on)
  24.  
  25. Config Lcd = 16x2                                        'Set the LCD to 20 characters and 4 lines
  26.  
  27. Initlcd
  28.  
  29. Locate 1 , 1
  30. Lcd "Dystans"
  31.  
  32. end
Z poważaniem,
Marcin
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: xm32e5 pcf8574

Post autor: niveasoft » 17 maja 2022, 11:16

Coś musieli popsuć w 2085 bo kompiluje się i działa pod 2084.
Nie wiem czy masz poprzednie wersje. U siebie instaluję je w osobnych folderach i zawsze mogę testować na poprzednich.
To trochę dziwne bo pluje się o Lbyte i Hbyte albo o które od wersji 2075 są wewnętrznymi zmiennymi Bascom`a, albo o TWI_ADDR co opisują w linkowanym przeze mnie temacie na MCS.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
krolikbest
Posty: 23
Rejestracja: 10 maja 2022, 13:25

Re: xm32e5 pcf8574

Post autor: krolikbest » 17 maja 2022, 11:39

No właśnie zonk jest bo mam wersje 2085...
I jak tu downgrade zrobić, albo napisać do suportu?

Z poważaniem,
Marcin

-------------
Mam jeszcze 2082, zainstalowałem, też błędy: TWI_CH, HByte, LByte
Ostatnio zmieniony 17 maja 2022, 11:43 przez krolikbest, łącznie zmieniany 1 raz.
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: xm32e5 pcf8574

Post autor: niveasoft » 17 maja 2022, 11:42

Już napisałem ;)

Dopisałem nawet te gwiazdki w bibliotece, ale to nic nie wniosło.

Mogę Tobie podlinkować wersję 2084. Przy instalacji najlepiej dodać sobie numer wersji i zawsze tak robię. Te pokazane to mam na Win10 a na starym Win7 to mam od 2085 wszystkie ahahahaha :D
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
krolikbest
Posty: 23
Rejestracja: 10 maja 2022, 13:25

Re: xm32e5 pcf8574

Post autor: krolikbest » 17 maja 2022, 11:46

Jak możesz udostępnić 2084, to byłoby fajnie.

Pozdrawiam,
Marcin
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: xm32e5 pcf8574

Post autor: niveasoft » 17 maja 2022, 11:49

Sprawdź pocztę ;)
Już go miałem na GoogleDrive bo komuś podsyłałem. W pierwszej wersji 2085 był problem z zapisem stringów do eeprom. Działało w 2084 a w 2085 nie. To juz poprawiono i obecnie aktualna jest wersja 2085.005
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: xm32e5 pcf8574

Post autor: niveasoft » 17 maja 2022, 11:57

Jak tak zerknąłem do tej biblioteki w 2084 to ona chyba nie miała w ogóle obsługi Xmeg więc to dalej może nie działać.
ODPOWIEDZ