Auteur Topic: Waar zijn we nu mee bezig ? Microcontrollers  (gelezen 260079 keer)

Offline Geert

  • Forumlid
  • Berichten: 1.656
    • Homepage
  • Voornaam: Geert
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #825 Gepost op: 19 februari 2015, 19:55:08 pm »
Een PIC 16F887 met interne klok start altijd op met 4MHz. De software moet deze zelf op 8MHz zetten. In Assembler moet je dat zelf doen. In JAL weet ik dit niet?

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet In/Output

Offline conducteur

  • Forumlid
  • Berichten: 6.018
  • As a finishing touch, God created the dutch!
    • http://www.treinbaanrian.be
  • Voornaam: Rian
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #826 Gepost op: 19 februari 2015, 19:57:41 pm »
Ja inderdaad intussen zelf gevonden... RTFM!

Een simpel regeltje is voldoende:





OSCCON_IRCF=0b111


Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Offline PeterC

  • Forumlid
  • Berichten: 3.355
    • JAL pagina
  • Voornaam: Peter
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #827 Gepost op: 19 februari 2015, 20:28:55 pm »
...RTFM!

DE oplossing voor veel problemen  :) :) :)  ;)
Groetjes, Peter


Offline PeterC

  • Forumlid
  • Berichten: 3.355
    • JAL pagina
  • Voornaam: Peter
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #828 Gepost op: 19 februari 2015, 20:35:43 pm »
Een PIC 16F887 met interne klok start altijd op met 4MHz. De software moet deze zelf op 8MHz zetten. In Assembler moet je dat zelf doen. In JAL weet ik dit niet?

Ook in JAL (en andere hogere talen) moet je dergelijke settings nog zelf doen.  JAL heeft als voordeel boven PIC-assembler dat je je niets meer hoeft aan te trekken van bankswitching en dat complexe code eenvoudiger is te implementeren (en te lezen!).
Groetjes, Peter


Offline conducteur

  • Forumlid
  • Berichten: 6.018
  • As a finishing touch, God created the dutch!
    • http://www.treinbaanrian.be
  • Voornaam: Rian
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #829 Gepost op: 19 februari 2015, 23:13:14 pm »
Na eerst wat gesukkel met de uart die het niet deed... tjah rtfm.... Maar nu gaat het vooruit:


Het rechtse printje is de UART terminal, te gebruiken als tijdelijk bedieningspaneel / lcd om variabelen enzo naar toe te zenden. Gerecupereerd van m'n eindwerk...
Links: µPLC module (zie een ander draadje dat ergens nog hier zou moeten staan). Bedoeling is om gans het schaduwstation van m'n baantje te gaan aansturen met zo'n module.


De wissels worden al goed gezet indien een spoor bezet wordt gemeld,
Kan de wissels terug goed zetten door een druk op de knop van de terminal (zou graag ook deze module en andere via een netwerkje aansturen)


Nog heel veel te doen ook uiteraard...

Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Offline conducteur

  • Forumlid
  • Berichten: 6.018
  • As a finishing touch, God created the dutch!
    • http://www.treinbaanrian.be
  • Voornaam: Rian
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #830 Gepost op: 20 februari 2015, 18:45:07 pm »
Vandaag de relais toegevoegd... werkt bijna... ook 2 relais ingezet om het keerlusprobleem op te lossen.
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Offline PeterC

  • Forumlid
  • Berichten: 3.355
    • JAL pagina
  • Voornaam: Peter
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #831 Gepost op: 22 februari 2015, 20:51:56 pm »
Een ganse reeks WS2812B led's sturen via een I2C slave.  Ringbuffers sturen en µs timing...
Groetjes, Peter


Offline Geert

  • Forumlid
  • Berichten: 1.656
    • Homepage
  • Voornaam: Geert
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #832 Gepost op: 23 februari 2015, 22:05:52 pm »
LOCONET terugmelder voor 32 ingangen (massa detectie). Software al geschreven, in assembler voor een PIC 16F1519 op 16MHz. De software wordt nu getest met de simulator van MPLAB van Microchip. Ik probeer zoveel mogelijk hardware te gebruiken aanwezig in de µC. De basis van de software is onderstaande schema. De zwarte blokkjes is puur hardware, al of niet in de µC. Het blauwe deel is software interrupt gestuurd. Het purpere is de software voor de terugmelder in het MAIN programma.

Het is een vereenvoudigd programma, deze werkt nog enkel maar met een LOCONET waar enkel terugmelders en een MASTER als zender op zitten (hoop ik na de testen). Ontvangers waaronder MASTER, in principe geen probleem.

Peer to Peer ontvangst/zenden  is een optie voor later. Nu moet ik het adres van de 32 melders nog in assembler invoeren (een adres program drukknop is al voorzien) Ook de priority delay van elke µC is nog vast maar kan voor elke µC in assembler anders ingesteld worden.

Geert

Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet In/Output

Offline loebaske

  • Forumlid
  • Berichten: 8.389
  • www.miaa.be
  • Voornaam: eric
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #833 Gepost op: 24 februari 2015, 08:12:37 am »
Is het dit dat ik nodig heb Geert??

Offline Geert

  • Forumlid
  • Berichten: 1.656
    • Homepage
  • Voornaam: Geert
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #834 Gepost op: 24 februari 2015, 08:36:50 am »
Is het dit dat ik nodig heb Geert??

als je met een intellibox basic je baan aanstuurt, dan is Loconet de enige manier, dacht ik, om terugmelders in te lezen.

Als dit ontwerp met massa detectie ooit werkt..., dan pas ik het Loconet communicatie toe op stroomdetectie.

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet In/Output

Offline PeterC

  • Forumlid
  • Berichten: 3.355
    • JAL pagina
  • Voornaam: Peter
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #835 Gepost op: 24 februari 2015, 19:10:16 pm »
LOCONET terugmelder voor 32 ingangen (massa detectie)...

Geert, wat ik je wil meegeven ivm LocoNet terugmelders: er bestaat geen LocoNet opcode waarmee de status van een terugmelder kan worden opgevraagd (voor de status van een wissel, sein ed wel).  Een centrale en treinbesturingsprogramma wil wel de status van al de melders weten voor er automatisch wordt gereden.
 
Zonder 'speciale' trucjes moet die centrale wachten tot de terugmelder een opcode stuurt dat de toestand aan één van zijn poorten is gewijzigd, niet echt praktisch.
Een trucje die vaak wordt gebruikt bij terugmelders is om <OPC_GPON> in de gaten te houden.  Verschijnt die opcode op de bus, geeft de terugmelder de status van elke afzonderlijke melder na elkaar weer:

[Rx - 83 7C]  Global Power ON.
[Rx - B2 00 40 0D]  Sensor S1 () is Lo.  (BDL16 #1, DS1; DS54/64/SE8c #1, AuxA/A1/DS01)
[Rx - B2 00 60 2D]  Sensor S2 () is Lo.  (BDL16 #1, DS2; DS54/64/SE8c #1, SwiA/S1/DS02)
[Rx - B2 01 40 0C]  Sensor S3 () is Lo.  (BDL16 #1, DS3; DS54/64/SE8c #1, AuxB/A2/DS03)
[Rx - B2 01 60 2C]  Sensor S4 () is Lo.  (BDL16 #1, DS4; DS54/64/SE8c #1, SwiB/S2/DS04)
[Rx - B2 02 40 0F]  Sensor S5 () is Lo.  (BDL16 #1, DS5; DS54/64/SE8c #1, AuxC/A3/DS05)
[Rx - B2 02 60 2F]  Sensor S6 () is Lo.  (BDL16 #1, DS6; DS54/64/SE8c #1, SwiC/S3/DS06)
[Rx - B2 03 40 0E]  Sensor S7 () is Lo.  (BDL16 #1, DS7; DS54/64/SE8c #1, AuxD/A4/DS07)
[Rx - B2 03 60 2E]  Sensor S8 () is Lo.  (BDL16 #1, DS8; DS54/64/SE8c #1, SwiD/S4/DS08)
[Rx - B2 04 40 09]  Sensor S9 () is Lo.  (BDL16 #1, DS9; DS54/64/SE8c #2, AuxA/A1/DS01)
[Rx - B2 04 60 29]  Sensor S10 () is Lo.  (BDL16 #1, DS10; DS54/64/SE8c #2, SwiA/S1/DS02)
[Rx - B2 05 40 08]  Sensor S11 () is Lo.  (BDL16 #1, DS11; DS54/64/SE8c #2, AuxB/A2/DS03)
[Rx - B2 05 60 28]  Sensor S12 () is Lo.  (BDL16 #1, DS12; DS54/64/SE8c #2, SwiB/S2/DS04)
[Rx - B2 06 40 0B]  Sensor S13 () is Lo.  (BDL16 #1, DS13; DS54/64/SE8c #2, AuxC/A3/DS05)
[Rx - B2 06 60 2B]  Sensor S14 () is Lo.  (BDL16 #1, DS14; DS54/64/SE8c #2, SwiC/S3/DS06)
[Rx - B2 07 40 0A]  Sensor S15 () is Lo.  (BDL16 #1, DS15; DS54/64/SE8c #2, AuxD/A4/DS07)

Bij heel wat aangesloten melders genereert dat wel wat trafiek op het net.

Modernere melders (oa die van Digitrax zelf) reageren op een sequentie  van codes die door de centrale worden verstuurd.  Rocrail en JMRI doen dat ook:

[Tx - B0 78 27 10]  Interrogate LocoNet Turnouts/Sensors with bits a/c/b of 1/0/0; addresses...
33-40, 97-104, 161-168, 225-232, 289-296, 353-360, 417-424, 481-488,
545-552, 609-616, 673-680, 737-744, 801-808, 865-872, 929-936, 993-1000,
1057-1064, 1121-1128, 1185-1192, 1249-1256, 1313-1320, 1377-1384, 1441-1448, 1505-1512,
1569-1576, 1633-1640, 1697-1704, 1761-1768, 1825-1832, 1889-1896, 1953-1960, 2017-2024
[Tx - B0 79 27 11]  Interrogate LocoNet Turnouts/Sensors with bits a/c/b of 1/0/1; addresses...
41-48, 105-112, 169-176, 233-240, 297-304, 361-368, 425-432, 489-496,
553-560, 617-624, 681-688, 745-752, 809-816, 873-880, 937-944, 1001-1008,
1065-1072, 1129-1136, 1193-1200, 1257-1264, 1321-1328, 1385-1392, 1449-1456, 1513-1520,
1577-1584, 1641-1648, 1705-1712, 1769-1776, 1833-1840, 1897-1904, 1961-1968, 2025-2032
[Tx - B0 7A 27 12]  Interrogate LocoNet Turnouts/Sensors with bits a/c/b of 1/1/0; addresses...
49-56, 113-120, 177-184, 241-248, 305-312, 369-376, 433-440, 497-504,
561-568, 625-632, 689-696, 753-760, 817-824, 881-888, 945-952, 1009-1016,
1073-1080, 1137-1144, 1201-1208, 1265-1272, 1329-1336, 1393-1400, 1457-1464, 1521-1528,
1585-1592, 1649-1656, 1713-1720, 1777-1784, 1841-1848, 1905-1912, 1969-1976, 2033-2040
[Tx - B0 7B 27 13]  Interrogate LocoNet Turnouts/Sensors with bits a/c/b of 1/1/1; addresses...
57-64, 121-128, 185-192, 249-256, 313-320, 377-384, 441-448, 505-512,
569-576, 633-640, 697-704, 761-768, 825-832, 889-896, 953-960, 1017-1024,
1081-1088, 1145-1152, 1209-1216, 1273-1280, 1337-1344, 1401-1408, 1465-1472, 1529-1536,
1593-1600, 1657-1664, 1721-1728, 1785-1792, 1849-1856, 1913-1920, 1977-1984, 2041-2048
[Tx - B0 78 07 30]  Interrogate LocoNet Turnouts/Sensors with bits a/c/b of 0/0/0; addresses...
1-8, 65-72, 129-136, 193-200, 257-264, 321-328, 385-392, 449-456,
513-520, 577-584, 641-648, 705-712, 769-776, 833-840, 897-904, 961-968,
1025-1032, 1089-1096, 1153-1160, 1217-1224, 1281-1288, 1345-1352, 1409-1416, 1473-1480,
1537-1544, 1601-1608, 1665-1672, 1729-1736, 1793-1800, 1857-1864, 1921-1928, 1985-1992
[Tx - B0 79 07 31]  Interrogate LocoNet Turnouts/Sensors with bits a/c/b of 0/0/1; addresses...
9-16, 73-80, 137-144, 201-208, 265-272, 329-336, 393-400, 457-464,
521-528, 585-592, 649-656, 713-720, 777-784, 841-848, 905-912, 969-976,
1033-1040, 1097-1104, 1161-1168, 1225-1232, 1289-1296, 1353-1360, 1417-1424, 1481-1488,
1545-1552, 1609-1616, 1673-1680, 1737-1744, 1801-1808, 1865-1872, 1929-1936, 1993-2000
[Tx - B0 7A 07 32]  Interrogate LocoNet Turnouts/Sensors with bits a/c/b of 0/1/0; addresses...
17-24, 81-88, 145-152, 209-216, 273-280, 337-344, 401-408, 465-472,
529-536, 593-600, 657-664, 721-728, 785-792, 849-856, 913-920, 977-984,
1041-1048, 1105-1112, 1169-1176, 1233-1240, 1297-1304, 1361-1368, 1425-1432, 1489-1496,
1553-1560, 1617-1624, 1681-1688, 1745-1752, 1809-1816, 1873-1880, 1937-1944, 2001-2008
[Tx - B0 7B 07 33]  Interrogate LocoNet Turnouts/Sensors with bits a/c/b of 0/1/1; addresses...
25-32, 89-96, 153-160, 217-224, 281-288, 345-352, 409-416, 473-480,
537-544, 601-608, 665-672, 729-736, 793-800, 857-864, 921-928, 985-992,
1049-1056, 1113-1120, 1177-1184, 1241-1248, 1305-1312, 1369-1376, 1433-1440, 1497-1504,
1561-1568, 1625-1632, 1689-1696, 1753-1760, 1817-1824, 1881-1888, 1945-1952, 2009-2016

Op het LocoNet-Hackers forum is daar enige tijd geleden een hoop uitleg over gegeven.  Als je interesse hebt, zal ik de mails eens opsnorren en je via PM doorsturen.
Groetjes, Peter


Offline Harm

  • Forumlid
  • Berichten: 35
  • Voornaam: Harm
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #836 Gepost op: 27 februari 2015, 16:27:28 pm »
Ondertussen "bijna" klaar  ;D

Ik heb van de 4096 beschikbare program words er nog maar 748 vrij
Voor de waterpeil en voorraadwatertanks zal ik een tweede PIC moeten gaan gebruiken.

Het afstellen van de gaskraan en de afstand van de vonk elektrodes:
 https://www.youtube.com/watch?v=JXYZi1KcEWo

Geheel automatisch laten opstarten op gas, laten overgaan op wasbenzine en dan de vlam regelen afhankelijk van de druk:
 https://www.youtube.com/watch?v=VNcZBWMNnyU

verder nog een test van de veiligheid.
Door een te groot vuur zakt bij het opengaan van de veiligheid de druk te weinig en moet ik wat helpen met de stoomafsluiter.
Later komt er een (reeds eerder berekende) tweede veiligheid bij:
 https://www.youtube.com/watch?v=7bpZUpBS8Dk

groet van Harm


Offline Harm

  • Forumlid
  • Berichten: 35
  • Voornaam: Harm
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #837 Gepost op: 01 april 2015, 14:42:06 pm »
Van narigheid maar van de 16F883 overgestapt naar de 16F887, dan heb ik weer ruimte om wat programwords bij te voegen.
De kleine PIC zat vol  ::)

Gelukkig spreekt die exact dezelfde taal als de kleine.
Overzetten ging dus heel wat soepeler dan de wisseling van 88 naar 883.

Offline raf

  • Forumlid
  • Berichten: 4.538
  • Voornaam: raf
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #838 Gepost op: 01 april 2015, 16:17:42 pm »
zwijg me van om zetten he Harm
een 12F628 en een 16f628 spreken ook niet dezelfde taal
voor het schaduw station wil ik die kleintjes gebruiken omdat er toch geen signalen mee gestuurd moeten worden
je ziet ze toch niet staan
buiten 1 led die aangeeft dat de processor werkt is er niets naar buiten zichtbaar uitgevoerd
alleen ze spreken niet het zelfde chinees

gr raf
Na 5 herseninfarcten kan het raar zijn wat ik schrijf .Dat is niet mijn fout maar je bril kuisen kan helpen en eens twee keer overlezen .Versta je het nog niet kan ik altijd de Ierse versie er nog van geven die leest misschien iets makkelijker

Offline PeterC

  • Forumlid
  • Berichten: 3.355
    • JAL pagina
  • Voornaam: Peter
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #839 Gepost op: 01 april 2015, 19:46:13 pm »
...Gelukkig spreekt die exact dezelfde taal als de kleine...

...een 12F628 en een 16f628 spreken ook niet dezelfde taal...

Toch even een rechtzetting: ze spreken allen identiek dezelfde taal want ze hebben dezelfde instructieset.  Alleen bij de 18F (en hogere) versies is die instructieset uitgebreid.  Ze spreken dezelfde taal, alleen zijn de benamingen van hun interne componenten anders.

Johnny en Marina in Vlaanderen spreken hetzelfde Nederlands als Joop en Truus in Nederland.  Alleen gaat Johnny een Jupiler uit de frigo halen en Joop een Heineken (oa GPIO.X versus PortX.Y).

Eén goede raad: lees tenminste de datasheets alvorens aan iets te beginnen en heel veel (mogelijke) problemen zijn op voorhand al opgelost.  Raad van iemand die regelmatig 200 à 400 pagina's saaie lectuur doorneemt (saai op het eerste zicht maar vaak boeiend door de vele ontdekkingen/mogelijkheden die opduiken in die lectuur)...

...En vooral: blijven verder doen!
Groetjes, Peter