|
Gepost op maandag 10 Februari 2014 19:19:59 |
 |
Is hier al iets werkends uit gekomen door iemand? |
http://pascalbianca.blogspot.nl/ |
|
Gepost op dinsdag 18 Februari 2014 21:30:58 |
 |
Ik heb het volgende probleem waardoor ik niet verder kan met die PCF8563.
Sluit ik deze volgens schema aan met de SDA en SCL lijnen hangen de overige I2C Ic's vast en zodra ik deze omdraai werkt wel alles, maar zal de klok ic niet werken.
Waar zou dat aan kunnen liggen? |
http://pascalbianca.blogspot.nl/ |
|
Gepost op dinsdag 18 Februari 2014 22:06:06 |
 |
Per ongeluk dezelfde adressen? |
|
|
Gepost op woensdag 19 Februari 2014 06:43:53 |
 |
Volgens mij niet, tenminste denk ik dan toch.
Het adres van die PCF8563 staat vast volgens de datasheet
Two slave addresses are reserved for the PCF8563:
Read: A3h (10100011)
Write: A2h (10100010)
Die van beide I/O Expenders zijn.:
Symbol PCF8574AP_ADDR =$70
Symbol PCF8574P_ADDR =$40
Die van de EEProm is.:
Symbol 24C64LeesAdres = $A1
Dus bovenstaande even omgezet als ik geen fout heb gemaakt.:
PCF8574A_ADDR =$70 > 1110000
PCF8574P_ADDR =$40 > 1000000
PCF8574P_ADDR_lezen =$41 > 1000001
24C64LeesAdres = $A1 > 10100001
PCF8563 adres A3h zou dan zijn $A3 (10100011) [Bericht gewijzigd door pascalbianca op Woensdag 19 Februari 2014 06:56:43] |
http://pascalbianca.blogspot.nl/ |
|
Gepost op woensdag 19 Februari 2014 11:01:35 |
 |
Dan verwijs ik je naar CO;
http://www.circuitsonline.net/forum/view/118223 en
http://www.circuitsonline.net/forum/view/100451
Hiermee moet je de PCF8563 toch aan de praat krijgen? |
|
|
Gepost op woensdag 19 Februari 2014 13:16:14 |
 |
Zal eens kijken erna thx.
------
Automatische edit 2014-02-19 14:48:24, toevoeging:
Vond al de link bekend want de eerste link is van mij 
De 2de link word in die post van mij ook genoemd.
Maar dat verhelpt niet het probleem waarom mijn opstelling , zeg maar crashed, als ik de SDA en SCL van die PCF8563 aansluit op de overige I2C ic's, die wel gewoon werken. [Bericht gewijzigd door pascalbianca op Woensdag 19 Februari 2014 14:48:24] |
http://pascalbianca.blogspot.nl/ |
|
Gepost op woensdag 19 Februari 2014 17:17:56 |
 |
Dus toch!!
Dezelfde adressen 24C64 en PCF8563
Kijk maar eens naar de MSB 1010 en dat is gelijk aan de PCF8563,
dus je moet in het LSB van de 24C64 zodanig kiezen dat er geen conflict optreed.
Dus alle PDF files goed lezen. |
|
|
Gepost op woensdag 19 Februari 2014 18:36:20 |
 |
Uh ja als ik ergens het adres tabel van die 24C64 uit krijg gehaald wel ja, heb diverse pdf's doorzocht maar geen adressen tabel te vinden.
Wat ik had gevonden was alleen op alles met ground.
Zelf 1 gevonden die bestemd is om weg te schrijven, hier zelf alle lees adressen bij gezet, inlezen gaat nu weer dus even die andere ic testen. [Bericht gewijzigd door pascalbianca op Woensdag 19 Februari 2014 18:50:45] |
http://pascalbianca.blogspot.nl/ |
|
Gepost op woensdag 19 Februari 2014 18:53:54 |
 |
Dan zet je Ax van 24C64 maar eens aan de plus '1' dus,
dus gnd op die plek onderbreken, anders krijg je sluiting.
In de Bas-file Ax op '1' zetten ipv. '0'
Ax is bv. A3,A2 de A1 en A0 aansluitingen kun je niet gebruiken,
die zijn al toegekend, vwb. jou problemen met I2C.
|
|
|
Gepost op woensdag 19 Februari 2014 19:00:08 |
 |
Ik heb alle 3 poorten (A0-A1-A2) op de +5V gezet waardoor het adres nu i.p.v.$A1 nu $AF word en het probleem is opgelost loopt niet meer vast.
Nu eens kijken of ik hem aan de praat krijg want dat is ook al een hele puzzel zag ik. |
http://pascalbianca.blogspot.nl/ |
|
Gepost op donderdag 20 Februari 2014 19:33:54 |
 |
Heeft iemand hier al eens mee gewerkt want geen enkele code die ik via google kan vinden werkt namelijk.
|
http://pascalbianca.blogspot.nl/ |
|
Gepost op donderdag 20 Februari 2014 20:18:30 |
 |
Je had de componenten eerst toch apart al aan de praat? |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op donderdag 20 Februari 2014 20:49:32 |
 |
alle ja behalve die rtc niet, die crashte steeds maar met behulp van @Henk nu niet meer. |
http://pascalbianca.blogspot.nl/ |
|
Gepost op zaterdag 22 Februari 2014 11:44:15 |
 |
Van die PCF8563 staat alles in de datasheet http://www.nxp.com/documents/data_sheet/PCF8563.pdf
Een instructie bestaat uit 2 adresbytes en 1 databyte.
Voor de eerste adresbyte:
Quote | I2C-bus slave address: read A3h and write A2h |
De 2e adresbyte kan je op p7 van de datasheet vinden. |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op zaterdag 22 Februari 2014 12:41:49 |
 |
Op CO staan er voorbeelden ik dacht dat Pascal daar wel verder mee kon komen. [Bericht gewijzigd door Henk (NL) op Zaterdag 22 Februari 2014 12:42:14] |
|
|
Gepost op zaterdag 22 Februari 2014 16:03:03 |
 |
Thx. @Stynus, zal eens erna kijken.
@Henk, nee die werken niet, ik heb ondertussen een beetje hulp gekregen van Frits van Picbasic.nl.
------
Automatische edit 2014-02-22 18:40:44, toevoeging:
Nou ze zeggen dat het makkelijk is maar dus echt niet, begin langzaam mijn haren uit te trekken, geen een voorbeeld werkt , ik kan nog niet eens zeggen of die ic werkt ja of nee.
De code die ik gebruik om te testen zou de huidige waarden die in de ic zit uitlezen en op het beeldscherm zetten, maar wat ik ook doe of probeer of test, ik krijg steeds dezelfde waarden te zien en ik weet ook nog niet eens of die van die ic komt want trek ik die eruit krijg ik nog die waarden. [Bericht gewijzigd door pascalbianca op Zaterdag 22 Februari 2014 18:40:44] |
http://pascalbianca.blogspot.nl/ |
|
Gepost op zaterdag 22 Februari 2014 19:52:16 |
 |
Quote | begin langzaam mijn haren uit te trekken, geen een voorbeeld werkt |
Ook deze RTC kent een STOP dwz. dat de klok is gestopt.
Of die al of niet stuk is kun je met jouw scoop bekijken.
Meten is weten, beter dan haren uit te trekken, nietwaar.
De pin volgorde volgt uit de PDF. |
|
|
Gepost op zaterdag 22 Februari 2014 20:31:15 |
 |
Pascal, post dan even de code dat niet werkt. Anders is het heel moeilijk te zeggen wat er mis gaat... |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op zaterdag 22 Februari 2014 22:59:10 |
 |
Ik heb mijn code virtueel ook getest in Proteus 8 maar die geeft idem precies hetzelfde aan als in mijn project.

Hierbij de code.
Het stukje dat een ledje doet blinken is van mij , dit is om te kijken of de ic werkt en die optelling van a idem, de rest komt van Frits zijn pagina.
Code |
Device 18F4550
Xtal 20
'Tris . 76543210 Register volgorde
;TRISB = %11011100
TRISA=%00000000
;TRISB=%11111111
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
Declare All_Digital = TRUE
;PORTA=0ORTB=0
;PORTC=0ORTD=0
;PORTE=0
Declare LCD_DTPort = PORTD
Declare LCD_RSPin = PORTC.7;PORTC.7
Declare LCD_ENPin = PORTE.0
Declare LCD_RWPin = PORTC.2 ;PORTC.6
Declare LCD_CS1Pin = PORTE.1
Declare LCD_CS2Pin = PORTE.2
Declare LCD_Type = Graphic
Declare Internal_Font = On
Declare Font_Addr = 0
High PORTB.5 'rst pin oftwel reset pin
Declare GLCD_STROBE_DELAY = 5
Declare Optimiser_Level 3
'Set ports for I2C
;Declare SCL_Pin = PORTB.1
;Declare SDA_Pin = PORTB.0 ;Alias voor de SDA (Data) lijn
;!!!!!!!!BOVENSTAANDE SDA EN SCL DECKLARES WAT MET BUSIN WORD GEBRUIKT!!!!!!!!!!!!!!!!!!!!!!!
;!!!!!!!!IS VERVALLEN OMDAT HBusIn WORD GEBRUIKT DIE HARDWAREMATIG DE POORTEN AL AANWIJST!!!!
Declare Hbus_Bitrate 400 ' Bits per second 100, 400, 1000 etc.
;The standard speed For the I2C bus is 100KHz. Some devices use a higher bus speed of
;400KHz. The above Declare allows the I2C bus speed To be increased Or decreased. Use this
;Declare with caution, As too High a Bit rate may exceed the Device's specs, which will result in
;intermittent transactions, Or in some cases, no transactions At all. The datasheet For the Device
;used will inform you of its bus speed. The default Bit rate is the standard 100KHz.
;Declare Slow_Bus On
Dim Uur As Byte
Dim Seconde As Byte
Dim Minuut As Byte
Dim Datum As Byte
Dim Maand As Byte
Dim Dag As Byte
Dim Var1 As Byte
Dim RTC_Data[4] As Byte ;Wordt gebruikt bij overdracht DCF-tijd naar PCF8583 RTC IC
Dim a As Dword
Symbol PCF8583r = %10100011 ;Adres om PCF8583 uit te lezen (r = read)
Symbol PCF8583w = %10100010 ;Adres om naar PCF8583 te schrijven (w = write)
Symbol PCF8574A_ADDR =$70 ;$70 is schrijf $71 is lezen
; 76543210
HBusOut PCF8583w,0,[%00000000] ; Reset RTC
Clear
DelayMS 200 'stabilizza LCD
Cls
RTC_Read: ;PCF8583 uitlezen
HBusOut PCF8583w, $00, [%00000000] ;Start counting (bit 7 op '0' gezet)
GoSub WerkingIC
DelayMS 500
a = a+1
HBusIn $A3h , $02, [Seconde, Minuut, Uur, Datum, Maand] ;Datum bevat datum + jaar / Maand bevat dag + maand
; Jaar = HBUSIN EE24C512r, EE_Jaarta ;Lees uit 24C512 EEPROM het viertal van het jaar (04, 08, 12, 16, enz.)
; Jaar = Jaar + ((Datum & %11000000) >> 6) ;Filter 'Jaar' (0-3) uit 'Datum' en tel dat bij het zojuist uitgelezen jaartal
Datum = Datum & %00111111 ;Verwijder het jaar (0-3) uit 'Datum'
Dag = (Maand & %11100000) >> 5 ;Filter (maskeer) 'Dag' (0-6) uit 'Maand'
Maand = Maand & %00011111 ;Verwijder het weekdag (0-6) uit 'Maand'
;De ontvangen tijdsdata meteen omzetten van BCD naar decimaal
Seconde = ((Seconde >> 4) * 10) + (Seconde & 15)
Minuut = ((Minuut >> 4) * 10) + (Minuut & 15)
Uur = ((Uur >> 4) * 10) + (Uur & 15)
Datum = ((Datum >> 4) * 10) + (Datum & 15)
Maand = ((Maand >> 4) * 10) + (Maand & 15)
; Dag = ((Dag >> 4) * 10) + (Dag & 15) ;Dag telt maar t/m 7, 7dec = 7hex = 7bcd, geen omzetting nodig dus
; Jaar = ((Jaar >> 4) * 10) + (Jaar & 15) ;PCF8583 heeft geen echt jaartal, alleen 0-3 waarbij 0 schrikkeljaar is
Print At 3,12, Dec a ; kijk of ic wel iets doet
Print At 1,1, "Minuut ", Dec Minuut
Print At 2,1, "Datum ", Dec Datum ;(februari telt dan door tot 29)
Print At 3,1, "Dag ", Dec Dag
Print At 4,1, "Maand ",Dec Maand
Print At 5,1, "Uur ", Dec Uur
Print At 6,1, "Seconde ",Dec Seconde
; IF HBUSIN EE24C512r, EE_Snipperdag > 0 THEN Dag = Snipperdag ;Snipperdag (of vakantie)
;RETURN
GoTo RTC_Read
WerkingIC:
HBusOut PCF8574A_ADDR, [%11111111] ; ;Start Lezen van I2C
DelayMS 100
HBusOut PCF8574A_ADDR, [%11111101] ; ;Start Lezen van I2C
DelayMS 250
Return
|
|
http://pascalbianca.blogspot.nl/ |
|
Gepost op zaterdag 22 Februari 2014 23:03:47 |
 |
Code |
HBusIn $A3h , $02, [Seconde, Minuut, Uur, Datum, Maand] ;
|
Dat gaat zo dus niet werken, eerst moet de h achter de 3 al weg. Verder is het 1 byte opvragen per keer.
Code |
HBusIn $A3 , $02, [Seconde]
HBusIn $A3 , $03, [Minuut]
...
|
[Bericht gewijzigd door Stynus op Zaterdag 22 Februari 2014 23:04:06] |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
« 1 3 » |
|
|